In the QEMU 2.3.0 , The memory regions published to user space application is limited address space, not the complete memory regions of quest vm, due to this , the user level app cannot decode all the memory block addresses. This is needed for reading the packet from virtio ring.
Is there any configuration in qemu to overcome the above or it is bug in virtio-user?.
Test details:
Qemu cmd line:
/opt/qemu.2.3.0/bin/qemu-system-x86_64 -enable-kvm -gdb tcp::1336,server,nowait
-monitor tcp::51008,server,nowait,nodelay -m 256M -mem-path /hugetlbfs -mem-prealloc
-smp 2 -chardev backend=socket,id=ch1,path=/opt_src/port1 -netdev vhost-user,id=guest0,chardev=ch1 -device virtio-net-pci,mac=00:30:48:DB:5E:01,netdev=guest0,mq=on,vectors=8 -vnc :8 -serial telnet::50008,server,nowait -daemonize -append net_send_int_disable=1 ipaddr=192.168.122.3 gw=192.168.122.1 nic_intr_off=1 netbh_tightloop=0 page_cache=1 -kernel /opt_src/jiny/jiny_image.bin -drive if=virtio,id=hdr0,file=/opt_src/jiny/disk
In the below message
The below is message recevied at the user level application from vhost-user(qemu), the size is only 655k. but needed is 256M(size of memory or shared memory size of hugetlb). I have Temporarly hardcoded the size in the app by changing the size to 256M from 655K. so that network packet address can able to decode from the virtio ring.
Cmd: VHOST_USER_SET_MEM_TABLE (0x5)
flags: 0x1
regions: 2
region:
gpa = 0x0
size = 655360
ua = 0x2aaaaac00000
region:
gpa = 0x0
size = 786432
ua = 0xff40000
Thanks