* State of contrib/vhost-user-input?
@ 2023-10-23 16:18 Alex Bennée
2023-10-23 23:14 ` Stefan Hajnoczi
2023-10-24 11:36 ` Marc-André Lureau
0 siblings, 2 replies; 5+ messages in thread
From: Alex Bennée @ 2023-10-23 16:18 UTC (permalink / raw)
To: Marc-André Lureau, Stefan Hajnoczi, Michael S. Tsirkin
Cc: Leo Yan, qemu-devel
Hi,
I'm trying to get the contrib/vhost-user-input working but it exits
during the boot up sequence:
➜ gdb --args ./vhost-user-input -p /dev/input/event22 -s /tmp/mouse.sock
GNU gdb (GDB) 15.0.50.20231012-git
<snip>
Reading symbols from ./vhost-user-input...
(gdb) b map_ring
Breakpoint 1 at 0x7634c: file ../../subprojects/libvhost-user/libvhost-user.c, line 618.
(gdb) r
Starting program: /home/alex/lsrc/qemu.git/builds/arm.debug/contrib/vhost-user-input/vhost-user-input -p /dev/input/event22 -s /tmp/mouse.sock
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff7afb6c0 (LWP 3807698)]
================ Vhost user message ================
Request: VHOST_USER_GET_FEATURES (1)
Flags: 0x1
Size: 0
Sending back to guest u64: 0x0000000175000000
================ Vhost user message ================
Request: VHOST_USER_GET_PROTOCOL_FEATURES (15)
Flags: 0x1
Size: 0
================ Vhost user message ================
Request: VHOST_USER_SET_PROTOCOL_FEATURES (16)
Flags: 0x1
Size: 8
u64: 0x0000000000008e2b
================ Vhost user message ================
Request: VHOST_USER_GET_QUEUE_NUM (17)
Flags: 0x1
Size: 0
================ Vhost user message ================
Request: VHOST_USER_GET_MAX_MEM_SLOTS (36)
Flags: 0x1
Size: 0
u64: 0x0000000000000020
================ Vhost user message ================
Request: VHOST_USER_SET_BACKEND_REQ_FD (21)
Flags: 0x9
Size: 0
Fds: 6
Got backend_fd: 6
================ Vhost user message ================
Request: VHOST_USER_SET_OWNER (3)
Flags: 0x1
Size: 0
================ Vhost user message ================
Request: VHOST_USER_GET_FEATURES (1)
Flags: 0x1
Size: 0
Sending back to guest u64: 0x0000000175000000
================ Vhost user message ================
Request: VHOST_USER_SET_VRING_CALL (13)
Flags: 0x1
Size: 8
Fds: 7
u64: 0x0000000000000000
Got call_fd: 7 for vq: 0
================ Vhost user message ================
Request: VHOST_USER_SET_VRING_ERR (14)
Flags: 0x1
Size: 8
Fds: 8
u64: 0x0000000000000000
================ Vhost user message ================
Request: VHOST_USER_SET_VRING_CALL (13)
Flags: 0x1
Size: 8
Fds: 9
u64: 0x0000000000000001
Got call_fd: 9 for vq: 1
================ Vhost user message ================
Request: VHOST_USER_SET_VRING_ERR (14)
Flags: 0x1
Size: 8
Fds: 10
u64: 0x0000000000000001
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_GET_CONFIG (24)
Flags: 0x1
Size: 148
================ Vhost user message ================
Request: VHOST_USER_SET_FEATURES (2)
Flags: 0x1
Size: 8
u64: 0x0000000170000000
================ Vhost user message ================
Request: VHOST_USER_SET_VRING_NUM (8)
Flags: 0x1
Size: 8
State.index: 0
State.num: 64
================ Vhost user message ================
Request: VHOST_USER_SET_VRING_BASE (10)
Flags: 0x1
Size: 8
State.index: 0
State.num: 0
================ Vhost user message ================
Request: VHOST_USER_SET_VRING_ADDR (9)
Flags: 0x1
Size: 40
vhost_vring_addr:
index: 0
flags: 0
desc_user_addr: 0x00007f283491a000
used_user_addr: 0x00007f283491a4c0
avail_user_addr: 0x00007f283491a400
log_guest_addr: 0x0000000100b1a4c0
Thread 1 "vhost-user-inpu" hit Breakpoint 1, map_ring (dev=0x7fffffffdd60, vq=0x555555609ea0) at ../../subprojects/libvhost-user/libvhost-user.c:618
warning: Source file is more recent than executable.
618 vq->vring.desc = qva_to_va(dev, vq->vra.desc_user_addr);
(gdb) s
qva_to_va (dev=0x7fffffffdd60, qemu_addr=139810657378304) at ../../subprojects/libvhost-user/libvhost-user.c:231
231 for (i = 0; i < dev->nregions; i++) {
(gdb) p dev->nregions
$1 = 0
(gdb) n
240 return NULL;
(gdb)
241 }
(gdb) c
Continuing.
Setting virtq addresses:
vring_desc at (nil)
vring_used at (nil)
vring_avail at (nil)
** (vhost-user-input:3807669): CRITICAL **: 17:16:14.554: Invalid vring_addr message
[Thread 0x7ffff7afb6c0 (LWP 3807698) exited]
[Inferior 1 (process 3807669) exited with code 01]
(gdb) q
Which looks like libvhost-user is expecting
VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS to be negotiated and the
resulting VHOST_USER_ADD_MEM_REG to be sent. How is this meant to work
if the protocol feature isn't negotiated?
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: State of contrib/vhost-user-input? 2023-10-23 16:18 State of contrib/vhost-user-input? Alex Bennée @ 2023-10-23 23:14 ` Stefan Hajnoczi 2023-10-24 11:36 ` Marc-André Lureau 1 sibling, 0 replies; 5+ messages in thread From: Stefan Hajnoczi @ 2023-10-23 23:14 UTC (permalink / raw) To: Alex Bennée, Gerd Hoffmann Cc: Marc-André Lureau, Stefan Hajnoczi, Michael S. Tsirkin, Leo Yan, qemu-devel On Mon, 23 Oct 2023 at 09:29, Alex Bennée <alex.bennee@linaro.org> wrote: > > > Hi, CCing Gerd for vhost-user-input. > > I'm trying to get the contrib/vhost-user-input working but it exits > during the boot up sequence: > > ➜ gdb --args ./vhost-user-input -p /dev/input/event22 -s /tmp/mouse.sock > GNU gdb (GDB) 15.0.50.20231012-git > <snip> > Reading symbols from ./vhost-user-input... > (gdb) b map_ring > Breakpoint 1 at 0x7634c: file ../../subprojects/libvhost-user/libvhost-user.c, line 618. > (gdb) r > Starting program: /home/alex/lsrc/qemu.git/builds/arm.debug/contrib/vhost-user-input/vhost-user-input -p /dev/input/event22 -s /tmp/mouse.sock > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". > [New Thread 0x7ffff7afb6c0 (LWP 3807698)] > ================ Vhost user message ================ > Request: VHOST_USER_GET_FEATURES (1) > Flags: 0x1 > Size: 0 > Sending back to guest u64: 0x0000000175000000 > ================ Vhost user message ================ > Request: VHOST_USER_GET_PROTOCOL_FEATURES (15) > Flags: 0x1 > Size: 0 > ================ Vhost user message ================ > Request: VHOST_USER_SET_PROTOCOL_FEATURES (16) > Flags: 0x1 > Size: 8 > u64: 0x0000000000008e2b > ================ Vhost user message ================ > Request: VHOST_USER_GET_QUEUE_NUM (17) > Flags: 0x1 > Size: 0 > ================ Vhost user message ================ > Request: VHOST_USER_GET_MAX_MEM_SLOTS (36) > Flags: 0x1 > Size: 0 > u64: 0x0000000000000020 > ================ Vhost user message ================ > Request: VHOST_USER_SET_BACKEND_REQ_FD (21) > Flags: 0x9 > Size: 0 > Fds: 6 > Got backend_fd: 6 > ================ Vhost user message ================ > Request: VHOST_USER_SET_OWNER (3) > Flags: 0x1 > Size: 0 > ================ Vhost user message ================ > Request: VHOST_USER_GET_FEATURES (1) > Flags: 0x1 > Size: 0 > Sending back to guest u64: 0x0000000175000000 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_CALL (13) > Flags: 0x1 > Size: 8 > Fds: 7 > u64: 0x0000000000000000 > Got call_fd: 7 for vq: 0 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_ERR (14) > Flags: 0x1 > Size: 8 > Fds: 8 > u64: 0x0000000000000000 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_CALL (13) > Flags: 0x1 > Size: 8 > Fds: 9 > u64: 0x0000000000000001 > Got call_fd: 9 for vq: 1 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_ERR (14) > Flags: 0x1 > Size: 8 > Fds: 10 > u64: 0x0000000000000001 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_SET_FEATURES (2) > Flags: 0x1 > Size: 8 > u64: 0x0000000170000000 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_NUM (8) > Flags: 0x1 > Size: 8 > State.index: 0 > State.num: 64 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_BASE (10) > Flags: 0x1 > Size: 8 > State.index: 0 > State.num: 0 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_ADDR (9) > Flags: 0x1 > Size: 40 > vhost_vring_addr: > index: 0 > flags: 0 > desc_user_addr: 0x00007f283491a000 > used_user_addr: 0x00007f283491a4c0 > avail_user_addr: 0x00007f283491a400 > log_guest_addr: 0x0000000100b1a4c0 > > Thread 1 "vhost-user-inpu" hit Breakpoint 1, map_ring (dev=0x7fffffffdd60, vq=0x555555609ea0) at ../../subprojects/libvhost-user/libvhost-user.c:618 > warning: Source file is more recent than executable. > 618 vq->vring.desc = qva_to_va(dev, vq->vra.desc_user_addr); > (gdb) s > qva_to_va (dev=0x7fffffffdd60, qemu_addr=139810657378304) at ../../subprojects/libvhost-user/libvhost-user.c:231 > 231 for (i = 0; i < dev->nregions; i++) { > (gdb) p dev->nregions > $1 = 0 > (gdb) n > 240 return NULL; > (gdb) > 241 } > (gdb) c > Continuing. > Setting virtq addresses: > vring_desc at (nil) > vring_used at (nil) > vring_avail at (nil) > > ** (vhost-user-input:3807669): CRITICAL **: 17:16:14.554: Invalid vring_addr message > > [Thread 0x7ffff7afb6c0 (LWP 3807698) exited] > [Inferior 1 (process 3807669) exited with code 01] > (gdb) q > > Which looks like libvhost-user is expecting > VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS to be negotiated and the > resulting VHOST_USER_ADD_MEM_REG to be sent. How is this meant to work > if the protocol feature isn't negotiated? > > -- > Alex Bennée > Virtualisation Tech Lead @ Linaro > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: State of contrib/vhost-user-input? 2023-10-23 16:18 State of contrib/vhost-user-input? Alex Bennée 2023-10-23 23:14 ` Stefan Hajnoczi @ 2023-10-24 11:36 ` Marc-André Lureau 2023-10-24 14:32 ` Alex Bennée 1 sibling, 1 reply; 5+ messages in thread From: Marc-André Lureau @ 2023-10-24 11:36 UTC (permalink / raw) To: Alex Bennée; +Cc: Stefan Hajnoczi, Michael S. Tsirkin, Leo Yan, qemu-devel Hi Alex On Mon, Oct 23, 2023 at 8:34 PM Alex Bennée <alex.bennee@linaro.org> wrote: > > > Hi, > > I'm trying to get the contrib/vhost-user-input working but it exits > during the boot up sequence: > > ➜ gdb --args ./vhost-user-input -p /dev/input/event22 -s /tmp/mouse.sock > GNU gdb (GDB) 15.0.50.20231012-git > <snip> > Reading symbols from ./vhost-user-input... > (gdb) b map_ring > Breakpoint 1 at 0x7634c: file ../../subprojects/libvhost-user/libvhost-user.c, line 618. > (gdb) r > Starting program: /home/alex/lsrc/qemu.git/builds/arm.debug/contrib/vhost-user-input/vhost-user-input -p /dev/input/event22 -s /tmp/mouse.sock > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". > [New Thread 0x7ffff7afb6c0 (LWP 3807698)] > ================ Vhost user message ================ > Request: VHOST_USER_GET_FEATURES (1) > Flags: 0x1 > Size: 0 > Sending back to guest u64: 0x0000000175000000 > ================ Vhost user message ================ > Request: VHOST_USER_GET_PROTOCOL_FEATURES (15) > Flags: 0x1 > Size: 0 > ================ Vhost user message ================ > Request: VHOST_USER_SET_PROTOCOL_FEATURES (16) > Flags: 0x1 > Size: 8 > u64: 0x0000000000008e2b > ================ Vhost user message ================ > Request: VHOST_USER_GET_QUEUE_NUM (17) > Flags: 0x1 > Size: 0 > ================ Vhost user message ================ > Request: VHOST_USER_GET_MAX_MEM_SLOTS (36) > Flags: 0x1 > Size: 0 > u64: 0x0000000000000020 > ================ Vhost user message ================ > Request: VHOST_USER_SET_BACKEND_REQ_FD (21) > Flags: 0x9 > Size: 0 > Fds: 6 > Got backend_fd: 6 > ================ Vhost user message ================ > Request: VHOST_USER_SET_OWNER (3) > Flags: 0x1 > Size: 0 > ================ Vhost user message ================ > Request: VHOST_USER_GET_FEATURES (1) > Flags: 0x1 > Size: 0 > Sending back to guest u64: 0x0000000175000000 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_CALL (13) > Flags: 0x1 > Size: 8 > Fds: 7 > u64: 0x0000000000000000 > Got call_fd: 7 for vq: 0 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_ERR (14) > Flags: 0x1 > Size: 8 > Fds: 8 > u64: 0x0000000000000000 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_CALL (13) > Flags: 0x1 > Size: 8 > Fds: 9 > u64: 0x0000000000000001 > Got call_fd: 9 for vq: 1 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_ERR (14) > Flags: 0x1 > Size: 8 > Fds: 10 > u64: 0x0000000000000001 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_GET_CONFIG (24) > Flags: 0x1 > Size: 148 > ================ Vhost user message ================ > Request: VHOST_USER_SET_FEATURES (2) > Flags: 0x1 > Size: 8 > u64: 0x0000000170000000 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_NUM (8) > Flags: 0x1 > Size: 8 > State.index: 0 > State.num: 64 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_BASE (10) > Flags: 0x1 > Size: 8 > State.index: 0 > State.num: 0 > ================ Vhost user message ================ > Request: VHOST_USER_SET_VRING_ADDR (9) > Flags: 0x1 > Size: 40 > vhost_vring_addr: > index: 0 > flags: 0 > desc_user_addr: 0x00007f283491a000 > used_user_addr: 0x00007f283491a4c0 > avail_user_addr: 0x00007f283491a400 > log_guest_addr: 0x0000000100b1a4c0 > > Thread 1 "vhost-user-inpu" hit Breakpoint 1, map_ring (dev=0x7fffffffdd60, vq=0x555555609ea0) at ../../subprojects/libvhost-user/libvhost-user.c:618 > warning: Source file is more recent than executable. > 618 vq->vring.desc = qva_to_va(dev, vq->vra.desc_user_addr); > (gdb) s > qva_to_va (dev=0x7fffffffdd60, qemu_addr=139810657378304) at ../../subprojects/libvhost-user/libvhost-user.c:231 > 231 for (i = 0; i < dev->nregions; i++) { > (gdb) p dev->nregions > $1 = 0 > (gdb) n > 240 return NULL; > (gdb) > 241 } > (gdb) c > Continuing. > Setting virtq addresses: > vring_desc at (nil) > vring_used at (nil) > vring_avail at (nil) > > ** (vhost-user-input:3807669): CRITICAL **: 17:16:14.554: Invalid vring_addr message > > [Thread 0x7ffff7afb6c0 (LWP 3807698) exited] > [Inferior 1 (process 3807669) exited with code 01] > (gdb) q > > Which looks like libvhost-user is expecting > VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS to be negotiated and the > resulting VHOST_USER_ADD_MEM_REG to be sent. How is this meant to work > if the protocol feature isn't negotiated? How did you start QEMU ? Did you forget to use shared memory ? We should probably add some error at QEMU level when vhost-user devices are used without shared memory! ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: State of contrib/vhost-user-input? 2023-10-24 11:36 ` Marc-André Lureau @ 2023-10-24 14:32 ` Alex Bennée 2023-10-24 15:20 ` Alex Bennée 0 siblings, 1 reply; 5+ messages in thread From: Alex Bennée @ 2023-10-24 14:32 UTC (permalink / raw) To: Marc-André Lureau Cc: Stefan Hajnoczi, Michael S. Tsirkin, Leo Yan, qemu-devel Marc-André Lureau <marcandre.lureau@redhat.com> writes: > Hi Alex > > On Mon, Oct 23, 2023 at 8:34 PM Alex Bennée <alex.bennee@linaro.org> wrote: >> >> >> Hi, >> >> I'm trying to get the contrib/vhost-user-input working but it exits >> during the boot up sequence: >> >> ➜ gdb --args ./vhost-user-input -p /dev/input/event22 -s /tmp/mouse.sock >> GNU gdb (GDB) 15.0.50.20231012-git >> <snip> >> Reading symbols from ./vhost-user-input... >> (gdb) b map_ring >> Breakpoint 1 at 0x7634c: file ../../subprojects/libvhost-user/libvhost-user.c, line 618. >> (gdb) r >> Starting program: /home/alex/lsrc/qemu.git/builds/arm.debug/contrib/vhost-user-input/vhost-user-input -p /dev/input/event22 -s /tmp/mouse.sock >> [Thread debugging using libthread_db enabled] >> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". >> [New Thread 0x7ffff7afb6c0 (LWP 3807698)] >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_FEATURES (1) >> Flags: 0x1 >> Size: 0 >> Sending back to guest u64: 0x0000000175000000 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_PROTOCOL_FEATURES (15) >> Flags: 0x1 >> Size: 0 >> ================ Vhost user message ================ >> Request: VHOST_USER_SET_PROTOCOL_FEATURES (16) >> Flags: 0x1 >> Size: 8 >> u64: 0x0000000000008e2b >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_QUEUE_NUM (17) >> Flags: 0x1 >> Size: 0 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_MAX_MEM_SLOTS (36) >> Flags: 0x1 >> Size: 0 >> u64: 0x0000000000000020 >> ================ Vhost user message ================ >> Request: VHOST_USER_SET_BACKEND_REQ_FD (21) >> Flags: 0x9 >> Size: 0 >> Fds: 6 >> Got backend_fd: 6 >> ================ Vhost user message ================ >> Request: VHOST_USER_SET_OWNER (3) >> Flags: 0x1 >> Size: 0 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_FEATURES (1) >> Flags: 0x1 >> Size: 0 >> Sending back to guest u64: 0x0000000175000000 >> ================ Vhost user message ================ >> Request: VHOST_USER_SET_VRING_CALL (13) >> Flags: 0x1 >> Size: 8 >> Fds: 7 >> u64: 0x0000000000000000 >> Got call_fd: 7 for vq: 0 >> ================ Vhost user message ================ >> Request: VHOST_USER_SET_VRING_ERR (14) >> Flags: 0x1 >> Size: 8 >> Fds: 8 >> u64: 0x0000000000000000 >> ================ Vhost user message ================ >> Request: VHOST_USER_SET_VRING_CALL (13) >> Flags: 0x1 >> Size: 8 >> Fds: 9 >> u64: 0x0000000000000001 >> Got call_fd: 9 for vq: 1 >> ================ Vhost user message ================ >> Request: VHOST_USER_SET_VRING_ERR (14) >> Flags: 0x1 >> Size: 8 >> Fds: 10 >> u64: 0x0000000000000001 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_GET_CONFIG (24) >> Flags: 0x1 >> Size: 148 >> ================ Vhost user message ================ >> Request: VHOST_USER_SET_FEATURES (2) >> Flags: 0x1 >> Size: 8 >> u64: 0x0000000170000000 >> ================ Vhost user message ================ >> Request: VHOST_USER_SET_VRING_NUM (8) >> Flags: 0x1 >> Size: 8 >> State.index: 0 >> State.num: 64 >> ================ Vhost user message ================ >> Request: VHOST_USER_SET_VRING_BASE (10) >> Flags: 0x1 >> Size: 8 >> State.index: 0 >> State.num: 0 >> ================ Vhost user message ================ >> Request: VHOST_USER_SET_VRING_ADDR (9) >> Flags: 0x1 >> Size: 40 >> vhost_vring_addr: >> index: 0 >> flags: 0 >> desc_user_addr: 0x00007f283491a000 >> used_user_addr: 0x00007f283491a4c0 >> avail_user_addr: 0x00007f283491a400 >> log_guest_addr: 0x0000000100b1a4c0 >> >> Thread 1 "vhost-user-inpu" hit Breakpoint 1, map_ring (dev=0x7fffffffdd60, vq=0x555555609ea0) at ../../subprojects/libvhost-user/libvhost-user.c:618 >> warning: Source file is more recent than executable. >> 618 vq->vring.desc = qva_to_va(dev, vq->vra.desc_user_addr); >> (gdb) s >> qva_to_va (dev=0x7fffffffdd60, qemu_addr=139810657378304) at ../../subprojects/libvhost-user/libvhost-user.c:231 >> 231 for (i = 0; i < dev->nregions; i++) { >> (gdb) p dev->nregions >> $1 = 0 >> (gdb) n >> 240 return NULL; >> (gdb) >> 241 } >> (gdb) c >> Continuing. >> Setting virtq addresses: >> vring_desc at (nil) >> vring_used at (nil) >> vring_avail at (nil) >> >> ** (vhost-user-input:3807669): CRITICAL **: 17:16:14.554: Invalid vring_addr message >> >> [Thread 0x7ffff7afb6c0 (LWP 3807698) exited] >> [Inferior 1 (process 3807669) exited with code 01] >> (gdb) q >> >> Which looks like libvhost-user is expecting >> VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS to be negotiated and the >> resulting VHOST_USER_ADD_MEM_REG to be sent. How is this meant to work >> if the protocol feature isn't negotiated? > > > How did you start QEMU ? Did you forget to use shared memory ? I had: -m 8192 \ -object memory-backend-memfd,id=mem,size=8G,share=on \ Alongside: -device virtio-gpu-pci \ -device qemu-xhci -device usb-kbd \ -kernel ~/lsrc/linux.git/builds/arm64/arch/arm64/boot/Image.gz -append 'console=ttyAMA0 root=/dev/sda2' \ -display gtk,gl=on \ -chardev socket,id=mouse2,path=/tmp/mouse.sock -device vhost-user-input-pci,chardev=mouse2 I even double checked with the generic device I was working with: -chardev socket,id=mouse2,path=/tmp/mouse.sock -device vhost-user-device-pci,chardev=mouse2,virtio-id=18,config_size=136,num_vqs=2 > We should probably add some error at QEMU level when vhost-user devices > are used without shared memory! That would certainly be a good idea. -- Alex Bennée Virtualisation Tech Lead @ Linaro ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: State of contrib/vhost-user-input? 2023-10-24 14:32 ` Alex Bennée @ 2023-10-24 15:20 ` Alex Bennée 0 siblings, 0 replies; 5+ messages in thread From: Alex Bennée @ 2023-10-24 15:20 UTC (permalink / raw) To: Alex Bennée Cc: Marc-André Lureau, Stefan Hajnoczi, Michael S. Tsirkin, Leo Yan, qemu-devel Alex Bennée <alex.bennee@linaro.org> writes: > Marc-André Lureau <marcandre.lureau@redhat.com> writes: > >> Hi Alex >> >> On Mon, Oct 23, 2023 at 8:34 PM Alex Bennée <alex.bennee@linaro.org> wrote: >>> >>> >>> Hi, >>> >>> I'm trying to get the contrib/vhost-user-input working but it exits >>> during the boot up sequence: >>> <snip> >>> Which looks like libvhost-user is expecting >>> VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS to be negotiated and the >>> resulting VHOST_USER_ADD_MEM_REG to be sent. How is this meant to work >>> if the protocol feature isn't negotiated? >> >> >> How did you start QEMU ? Did you forget to use shared memory ? > > I had: > > -m 8192 \ > -object memory-backend-memfd,id=mem,size=8G,share=on \ > > Alongside: > > -device virtio-gpu-pci \ > -device qemu-xhci -device usb-kbd \ > -kernel ~/lsrc/linux.git/builds/arm64/arch/arm64/boot/Image.gz > -append 'console=ttyAMA0 root=/dev/sda2' \ > -display gtk,gl=on \ > -chardev socket,id=mouse2,path=/tmp/mouse.sock -device vhost-user-input-pci,chardev=mouse2 > > I even double checked with the generic device I was working with: > > -chardev socket,id=mouse2,path=/tmp/mouse.sock -device > vhost-user-device-pci,chardev=mouse2,virtio-id=18,config_size=136,num_vqs=2 Ahh but not the magic: -numa node,memdev=mem > >> We should probably add some error at QEMU level when vhost-user devices >> are used without shared memory! > > That would certainly be a good idea. Where would the best place to do this check be? -- Alex Bennée Virtualisation Tech Lead @ Linaro ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-10-24 15:21 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-10-23 16:18 State of contrib/vhost-user-input? Alex Bennée 2023-10-23 23:14 ` Stefan Hajnoczi 2023-10-24 11:36 ` Marc-André Lureau 2023-10-24 14:32 ` Alex Bennée 2023-10-24 15:20 ` Alex Bennée
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.