diff options
Diffstat (limited to 'results/classifier/118/none/1333688')
| -rw-r--r-- | results/classifier/118/none/1333688 | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/results/classifier/118/none/1333688 b/results/classifier/118/none/1333688 new file mode 100644 index 000000000..8a5ca4f70 --- /dev/null +++ b/results/classifier/118/none/1333688 @@ -0,0 +1,90 @@ +device: 0.497 +network: 0.484 +PID: 0.461 +vnc: 0.365 +VMM: 0.333 +ppc: 0.299 +socket: 0.278 +kernel: 0.258 +register: 0.234 +hypervisor: 0.230 +graphic: 0.222 +virtual: 0.221 +arm: 0.217 +architecture: 0.206 +risc-v: 0.206 +i386: 0.191 +TCG: 0.168 +x86: 0.168 +debug: 0.149 +boot: 0.147 +performance: 0.136 +semantic: 0.132 +KVM: 0.131 +peripherals: 0.131 +files: 0.124 +permissions: 0.123 +user-level: 0.109 +mistranslation: 0.108 +assembly: 0.079 + +vhost-user: VHOST_USER_SET_MEM_TABLE doesn't contain all regions + + + +vhost-user implementation doesn't provide information about all memory regions, +and in some cases client is not able to map buffer memory as he is missing +memory region information for specific address. + +Same thing is implemented properly for vhost-net. Below gdb outputs are +showing memory regions information provided to the vhost-net and vhost-user. + + + +==== memory regions information provided to vhost-net ==== + +(gdb) p/x hdev->mem->regions[0] +$21 = { + guest_phys_addr = 0x100000000, + memory_size = 0xc0000000, + userspace_addr = 0x2aab6ac00000, + flags_padding = 0x0 +} +(gdb) p/x hdev->mem->regions[1] +$22 = { + guest_phys_addr = 0xfffc0000, + memory_size = 0x40000, + userspace_addr = 0x7ffff4a00000, + flags_padding = 0x0 +} +(gdb) p/x hdev->mem->regions[2] +$23 = { + guest_phys_addr = 0x0, + memory_size = 0xa0000, + userspace_addr = 0x2aaaaac00000, + flags_padding = 0x0 +} +(gdb) p/x hdev->mem->regions[3] +$24 = { + guest_phys_addr = 0xc0000, + memory_size = 0xbff40000, + userspace_addr = 0x2aaaaacc0000, + flags_padding = 0x0 +} +(gdb) + + +==== memory regions information provided to vhost-user ==== + +(gdb) p/x msg.memory.nregions +$28 = 0x1 +(gdb) p/x msg.memory.regions[0] +$29 = { + guest_phys_addr = 0x0, + memory_size = 0x180000000, + userspace_addr = 0x2aaaaac00000 +} +(gdb) + +Problem fixed in qemu commit 3fd74b84. + |