Hi
I am using the latest qemu-2.5.0-rc2 with vhost-user(with
multi-queue, with 3 queues) to test multi-queue feature with vhost-user. In the guest vm, multi-queue feature flag is
not getting enabled .
On the backend, the backend(user space
switch) is receving SET_VRING_ADDR message only for the first queue, but set
VRING_ENABLE message is recevied for all the 6 rings(or 3 queues).
On the guest vm, "Multi-queue" feature( bit 22) is not enabled in the host features(0x409f0024), due to this guest is not enabling multi-queue.
Is the vhost-user with multi-queue is fully implemented in the qemu-2.5.0-rc2?.
Thanks
Jana
-------------------------------------------------------------------------
Pls find the qemu command line and logs :
guest vm command line:
../qemu-system-x86_64 -enable-kvm -gdb tcp::1336,server,nowait -m 256M -monitor tcp::52001,server,nowait,nodelay -object memory-backend-file,size=256M,id=ram0,prealloc=yes,mem-path=/mnt/hugetlbfs,share=on
-numa node,memdev=ram0 -mem-prealloc -smp 6 -chardev
socket,id=char1,path=./p1 -netdev vhost-user,id=guest0,chardev=char1,queues=3 -device virtio-net-pci,mq=on,vectors=8,mac=00:30:48:DB:5E:01,netdev=guest0
-vnc :8 -serial telnet::50001,server,nowait -serial
telnet::50011,server,nowait -daemonize -append ipaddr=192.168.122.3
gw=192.168.122.1 hugepages=1 hw_clock=0 -kernel ./test_image -drive
if=virtio,id=hdr0,file=./test_disk,aio=native
log on the guest vm:
: Matches inside the NETPROBE....
2: VirtioNet: Initializing VIRTIO PCI NET status :1 : pcioaddr:c000
2: VirtioNet: HOSTfeatures :409f0024: capabilitie:40 guestfeatures:100024 mask_features:7000ff
2:[5] MacAddress, 2:[16] Status, 2:[17] ControlVq, 2:[18] RxMode, 2:[19] VLanFilter, 2:[20] RxModeExtra, 2:
2: msi vector start :101 num:8
2: create Kernel vmap: msix :ffffffffd0501000-ffffffffd0502000 size:0M
2: msix table :ffffffffd0501000 bar addr:febd1000 baroffset:1
2: Kernel Adding to LEAF: private page paddr: febd1004 vaddr: ffffffffd0501004
2: addr:ffffffffd0501004 -> Lindex ( 1ff : 1ff : 82 :101 )
2: 3: addr:ffffffffd0501004 -> Lindexloc ( ff8 : ff8 : 410 :808 )
2: 0: MSIX data :165 address:fee00008
2: 1: MSIX data :166 address:fee00008
2: 2: MSIX data :167 address:fee00008
2: 3: MSIX data :168 address:fee00008
2: 4: MSIX data :169 address:fee00008
2: 5: MSIX data :16a address:fee00008
2: 6: MSIX data :16b address:fee00008
2: 7: MSIX data :16c address:fee00008
2:MSIX... Configured ISR vector:101 numvector:8 ctrl:8007
2: VIRTIONET: pioaddr:c018 MAC address : 0 :30 :48 :db :1820000005e
:ffffffff00000001 mis_vector:ffffffff00000065 : max_vqs:1
2: VIRTIONET: initializing MAX VQ's:1
log of user space switch:
./vhost ./p1 ./p2 0
<port1-file>: ./p1 <port2-file>: ./p2
................................................................................
Cmd: VHOST_USER_GET_FEATURES (0x1)
Flags: 0x1
u64: 0x500000000
Processing message: VHOST_USER_GET_FEATURES
_get_features
New3333 MQ feature as enabled: SIZE: 8 value:40000000
................................................................................
Cmd: VHOST_USER_GET_protocol_FEATURES (0xf)
Flags: 0x1
u64: 0x40000000
Processing message: VHOST_USER_GET_protocol_FEATURES
_get_proto_features
New3333 MQ PROTOCOL feature as enabled: SIZE: 8 value:1
................................................................................
Cmd: VHOST_USER_NOTDEFINED2 (0x10)
Flags: 0x1
u64: 0x1
Processing message: VHOST_USER_NOTDEFINED2
_set_features
set protocol features SIZE: 8 value:1
................................................................................
Cmd: VHOST_USER_GET_QNUMBER (0x11)
Flags: 0x1
u64: 0x1
Processing message: VHOST_USER_GET_QNUMBER
_get_qnumber
New3333 qnumber as enabled: SIZE: 8 value:3
................................................................................
Cmd: VHOST_USER_SET_OWNER (0x3)
Flags: 0x1
Processing message: VHOST_USER_SET_OWNER
_set_owner
................................................................................
Cmd: VHOST_USER_GET_FEATURES (0x1)
Flags: 0x1
u64: 0x3
Processing message: VHOST_USER_GET_FEATURES
_get_features
New3333 MQ feature as enabled: SIZE: 8 value:40000000
................................................................................
Cmd: VHOST_USER_SET_VRING_CALL (0xd)
Flags: 0x1
u64: 0x0
Processing message: VHOST_USER_SET_VRING_CALL
_set_vring_call
Got callfd 0x6
................................................................................
Cmd: VHOST_USER_SET_VRING_CALL (0xd)
Flags: 0x1
u64: 0x1
Processing message: VHOST_USER_SET_VRING_CALL
_set_vring_call
Got callfd 0x7
................................................................................
Cmd: VHOST_USER_GET_FEATURES (0x1)
Flags: 0x1
u64: 0x1
Processing message: VHOST_USER_GET_FEATURES
_get_features
New3333 MQ feature as enabled: SIZE: 8 value:40000000
................................................................................
Cmd: VHOST_USER_GET_protocol_FEATURES (0xf)
Flags: 0x1
u64: 0x40000000
Processing message: VHOST_USER_GET_protocol_FEATURES
_get_proto_features
New3333 MQ PROTOCOL feature as enabled: SIZE: 8 value:1
................................................................................
Cmd: VHOST_USER_NOTDEFINED2 (0x10)
Flags: 0x1
u64: 0x1
Processing message: VHOST_USER_NOTDEFINED2
_set_features
set protocol features SIZE: 8 value:1
................................................................................
Cmd: VHOST_USER_GET_FEATURES (0x1)
Flags: 0x1
u64: 0x1
Processing message: VHOST_USER_GET_FEATURES
_get_features
New3333 MQ feature as enabled: SIZE: 8 value:40000000
................................................................................
Cmd: VHOST_USER_SET_VRING_CALL (0xd)
Flags: 0x1
u64: 0x2
Processing message: VHOST_USER_SET_VRING_CALL
_set_vring_call
Got callfd 0x8
................................................................................
Cmd: VHOST_USER_SET_VRING_CALL (0xd)
Flags: 0x1
u64: 0x3
Processing message: VHOST_USER_SET_VRING_CALL
_set_vring_call
Got callfd 0x9
................................................................................
Cmd: VHOST_USER_GET_FEATURES (0x1)
Flags: 0x1
u64: 0x3
Processing message: VHOST_USER_GET_FEATURES
_get_features
New3333 MQ feature as enabled: SIZE: 8 value:40000000
................................................................................
Cmd: VHOST_USER_GET_protocol_FEATURES (0xf)
Flags: 0x1
u64: 0x40000000
Processing message: VHOST_USER_GET_protocol_FEATURES
_get_proto_features
New3333 MQ PROTOCOL feature as enabled: SIZE: 8 value:1
................................................................................
Cmd: VHOST_USER_NOTDEFINED2 (0x10)
Flags: 0x1
u64: 0x1
Processing message: VHOST_USER_NOTDEFINED2
_set_features
set protocol features SIZE: 8 value:1
................................................................................
Cmd: VHOST_USER_GET_FEATURES (0x1)
Flags: 0x1
u64: 0x1
Processing message: VHOST_USER_GET_FEATURES
_get_features
New3333 MQ feature as enabled: SIZE: 8 value:40000000
................................................................................
Cmd: VHOST_USER_SET_VRING_CALL (0xd)
Flags: 0x1
u64: 0x4
Processing message: VHOST_USER_SET_VRING_CALL
_set_vring_call
Got callfd 0xa
................................................................................
Cmd: VHOST_USER_SET_VRING_CALL (0xd)
Flags: 0x1
u64: 0x5
Processing message: VHOST_USER_SET_VRING_CALL
_set_vring_call
Got callfd 0xb
................................................................................
Cmd: VHOST_USER_VRING_ENABLE (0x12)
Flags: 0x1
u64: 0x100000000
Processing message: VHOST_USER_VRING_ENABLE
_vring_enable
SET vring enable: SIZE: 8 value:0
................................................................................
Cmd: VHOST_USER_VRING_ENABLE (0x12)
Flags: 0x1
u64: 0x100000001
Processing message: VHOST_USER_VRING_ENABLE
_vring_enable
SET vring enable: SIZE: 8 value:1
................................................................................
Cmd: VHOST_USER_VRING_ENABLE (0x12)
Flags: 0x1
u64: 0x2
Processing message: VHOST_USER_VRING_ENABLE
_vring_enable
SET vring enable: SIZE: 8 value:2
................................................................................
Cmd: VHOST_USER_VRING_ENABLE (0x12)
Flags: 0x1
u64: 0x3
Processing message: VHOST_USER_VRING_ENABLE
_vring_enable
SET vring enable: SIZE: 8 value:3
................................................................................
Cmd: VHOST_USER_VRING_ENABLE (0x12)
Flags: 0x1
u64: 0x4
Processing message: VHOST_USER_VRING_ENABLE
_vring_enable
SET vring enable: SIZE: 8 value:4
................................................................................
Cmd: VHOST_USER_VRING_ENABLE (0x12)
Flags: 0x1
u64: 0x5
Processing message: VHOST_USER_VRING_ENABLE
_vring_enable
SET vring enable: SIZE: 8 value:5
................................................................................
Cmd: VHOST_USER_SET_VRING_CALL (0xd)
Flags: 0x1
u64: 0x0
Processing message: VHOST_USER_SET_VRING_CALL
_set_vring_call
Got callfd 0xc
................................................................................
Cmd: VHOST_USER_SET_VRING_CALL (0xd)
Flags: 0x1
u64: 0x1
Processing message: VHOST_USER_SET_VRING_CALL
_set_vring_call
Got callfd 0xd
................................................................................
Cmd: VHOST_USER_SET_FEATURES (0x2)
Flags: 0x1
u64: 0x40000000
Processing message: VHOST_USER_SET_FEATURES
_set_features
set protocol features SIZE: 8 value:40000000
................................................................................
Cmd: VHOST_USER_SET_MEM_TABLE (0x5)
Flags: 0x1
nregions: 2
region:
gpa = 0x0
size = 655360
ua = 0x7fb705600000
region:
gpa = 0x0
size = 786432
ua = 0xff40000
Processing message: VHOST_USER_SET_MEM_TABLE
_set_mem_table
Temporay FIX .... :0x10000000 guest addr:(nil) userspace_addr:0x7fb705600000 mmap_addr:0x7f03d5600000
Got memory.nregions 1
................................................................................
Cmd: VHOST_USER_SET_VRING_NUM (0x8)
Flags: 0x1
state: 0 256
Processing message: VHOST_USER_SET_VRING_NUM
_set_vring_num
................................................................................
Cmd: VHOST_USER_SET_VRING_BASE (0xa)
Flags: 0x1
state: 0 0
Processing message: VHOST_USER_SET_VRING_BASE
_set_vring_base
................................................................................
Cmd: VHOST_USER_SET_VRING_ADDR (0x9)
Flags: 0x1
addr:
idx = 0
flags = 0x0
dua = 0x7fb70ac90000
uua = 0x7fb70ac92000
aua = 0x7fb70ac91000
lga = 0x5692000
Processing message: VHOST_USER_SET_VRING_ADDR
_set_vring_addr
................................................................................
Cmd: VHOST_USER_SET_VRING_KICK (0xc)
Flags: 0x1
u64: 0x0
Processing message: VHOST_USER_SET_VRING_KICK
_set_vring_kick
Got kickfd 0x10
................................................................................
Cmd: VHOST_USER_SET_VRING_NUM (0x8)
Flags: 0x1
state: 1 256
Processing message: VHOST_USER_SET_VRING_NUM
_set_vring_num
................................................................................
Cmd: VHOST_USER_SET_VRING_BASE (0xa)
Flags: 0x1
state: 1 0
Processing message: VHOST_USER_SET_VRING_BASE
_set_vring_base
................................................................................
Cmd: VHOST_USER_SET_VRING_ADDR (0x9)
Flags: 0x1
addr:
idx = 1
flags = 0x0
dua = 0x7fb70acbc000
uua = 0x7fb70acbe000
aua = 0x7fb70acbd000
lga = 0x56be000
Processing message: VHOST_USER_SET_VRING_ADDR
_set_vring_addr
................................................................................
Cmd: VHOST_USER_SET_VRING_KICK (0xc)
Flags: 0x1
u64: 0x1
Processing message: VHOST_USER_SET_VRING_KICK
_set_vring_kick
Got kickfd 0x11
Listening for kicks on 0x11
Got LATEST KICK 1
PORT1: 0: AAvail(0x7f03dac91000) inx:128 flag:1 Used(0x7f03dac92000)idx:0 flag:0 diff:128 desc:(0x7f03dac90000)
PORT1: 1: AAvail(0x7f03dacbd000) inx:0 flag:1 Used(0x7f03dacbe000)idx:0 flag:0 diff:0 desc:(0x7f03dacbc000)