The problem may be in int_guest_commpage() - it returns false.
From gdb debugging session:
(gdb) p addr $1 = (void *) 0xb7ffd000 (gdb) p want $2 = (void *) 0xffff0000 (gdb) n 398 if (addr != want) { (gdb) p qemu_host_page_size $3 = 4096 (gdb) l 393 394 if (addr == MAP_FAILED) { 395 perror("Allocating guest commpage"); 396 exit(EXIT_FAILURE); 397 } 398 if (addr != want) { 399 return false; 400 } 401 402 /* Set kernel helper versions; rest of page is 0. */ (gdb)
The problem may be in int_guest_ commpage( ) - it returns false.
From gdb debugging session:
(gdb) p addr
$1 = (void *) 0xb7ffd000
(gdb) p want
$2 = (void *) 0xffff0000
(gdb) n
398 if (addr != want) {
(gdb) p qemu_host_page_size
$3 = 4096
(gdb) l
393
394 if (addr == MAP_FAILED) {
395 perror("Allocating guest commpage");
396 exit(EXIT_FAILURE);
397 }
398 if (addr != want) {
399 return false;
400 }
401
402 /* Set kernel helper versions; rest of page is 0. */
(gdb)