[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] xhci migration breakage
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] xhci migration breakage |
Date: |
Thu, 30 Mar 2017 18:42:42 +0100 |
User-agent: |
Mutt/1.8.0 (2017-02-23) |
* Gerd Hoffmann (address@hidden) wrote:
> Hi,
>
> > I guess maybe there's a kick needed pre/post migrate?
>
> Sure, but it is there already (post_load arms kick_timer for active
> endpoints), so it isn't *that* simple.
>
> Looking at this I have no idea offhand, guess I have to schedule some
> debugging for tomorrow. Keep me posted in case you continue digging.
OK, I don't know any of this code, but my poking about so far is:
source
....
xhci: setup packet pid 0x69 addr 1 ep 1
address@hidden:usb_xhci_ep_kick slotid 1, epid 4, streamid 0
xhci: set epctx: 35497080 state=1 dequeue=0000000230cf2f61
address@hidden:usb_xhci_xfer_start 0x7f302931fef0: slotid 1, epid 4, streamid 0
xhci_submit(slotid=1,epid=4)
xhci: setup packet pid 0xe1 addr 1 ep 2
address@hidden:usb_xhci_ep_kick slotid 1, epid 3, streamid 0
xhci: set epctx: 35497060 state=1 dequeue=0000000230cf3331
address@hidden:usb_xhci_xfer_start 0x7f302931fef0: slotid 1, epid 3, streamid 0
xhci_submit(slotid=1,epid=3)
xhci: setup packet pid 0x69 addr 1 ep 1
inputs_connect: inputs channel client create
red_dispatcher_set_cursor_peer:
(qemu) migra
migrate migrate_cancel migrate_incoming
migrate_set_cache_size migrate_set_capability migrate_set_downtime
migrate_set_parameter migrate_set_speed migrate_start_postcopy
(qemu) migrate_set_speed 1G
(qemu) migrate tcp:0:4444
usb-storage msd pre_save 0x7f3044627960 sig=0 tag=0
(qemu) q
dest:
(qemu) red_dispatcher_loadvm_commands:
usb-storage msd post_load 0x7f45f510ee50 sig=0 tag=0
I added these as debug on the 'usb-storage' vmsd element; but
the signature/tag being 0 I assume they're not the culprit.
(qemu) c
(qemu) address@hidden:usb_xhci_ep_kick slotid 1, epid 1, streamid 0
xhci: set epctx: 35497020 state=1 dequeue=0000000035499231
address@hidden:usb_xhci_xfer_start 0x7f45f556a800: slotid 1, epid 1, streamid 0
xhci: setup packet pid 0x69 addr 1 ep 0
address@hidden:usb_xhci_ep_kick slotid 1, epid 3, streamid 0
xhci: set epctx: 35497060 state=1 dequeue=0000000230cf3331
address@hidden:usb_xhci_xfer_start 0x7f45f556a800: slotid 1, epid 3, streamid 0
xhci_submit(slotid=1,epid=3)
xhci: setup packet pid 0x69 addr 1 ep 1
xhci: set epctx: 35497060 state=2 dequeue=0000000230cf3331
address@hidden:usb_xhci_ep_kick slotid 1, epid 4, streamid 0
xhci: set epctx: 35497080 state=1 dequeue=0000000230cf2f61
address@hidden:usb_xhci_xfer_start 0x7f45f556a800: slotid 1, epid 4, streamid 0
xhci_submit(slotid=1,epid=4)
xhci: setup packet pid 0xe1 addr 1 ep 2
qemu-system-x86_64: usb-msd: Bad signature 53425300
given the bottom byte is 0 - is anything supposed to poison these things when
they're finished with them?
The backtrace (where I added an assert) shows it is coming off the timer
(Note I think this is a different run from that above):
#3 0x00007feba72c91f2 in __GI___assert_fail (address@hidden "0",
address@hidden "/root/1436616/qemu/hw/usb/dev-storage.c", address@hidden,
address@hidden <__PRETTY_FUNCTION__.30660> "usb_msd_handle_data") at
assert.c:101
#4 0x00007febabad00e1 in usb_msd_handle_data (dev=0x7febae693e50,
p=0x7febaeaef808)
at /root/1436616/qemu/hw/usb/dev-storage.c:429
#5 0x00007febabab2b58 in usb_handle_packet (dev=<optimized out>,
address@hidden)
at /root/1436616/qemu/hw/usb/core.c:412
#6 0x00007febabacae27 in xhci_kick_epctx (epctx=<optimized out>,
xfer=<optimized out>, xhci=<optimized out>)
at /root/1436616/qemu/hw/usb/hcd-xhci.c:2103 <- right at the end of
xhci_submit
#7 0x00007febabacae27 in xhci_kick_epctx (epctx=<optimized out>,
xfer=<optimized out>, xhci=<optimized out>)
at /root/1436616/qemu/hw/usb/hcd-xhci.c:2112 right at end of
xhci_fire_transfer
#8 0x00007febabacae27 in xhci_kick_epctx (epctx=0x7febaec395a0, streamid=0)
at /root/1436616/qemu/hw/usb/hcd-xhci.c:2240
#9 0x00007febabb4c8b9 in timerlist_run_timers (timer_list=0x7febad2ad790) at
/root/1436616/qemu/qemu-timer.c:540
#10 0x00007febabb4cb20 in qemu_clock_run_all_timers (type=<optimized out>) at
/root/1436616/qemu/qemu-timer.c:551
#11 0x00007febabb4cb20 in qemu_clock_run_all_timers () at
/root/1436616/qemu/qemu-timer.c:665
#12 0x00007febabb4bae7 in main_loop_wait (nonblocking=<optimized out>) at
/root/1436616/qemu/main-loop.c:516
#13 0x00007febab8855e2 in main () at /root/1436616/qemu/vl.c:1888
#14 0x00007febab8855e2 in main (argc=<optimized out>, argv=<optimized out>,
envp=<optimized out>)
at /root/1436616/qemu/vl.c:4630
Dave
> cheers,
> Gerd
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK