I have been attempting to get passed through sound cards working and have been encountering issues.  Apart from the extra complication of windows, I've been testing with a real-time audio app like yoshimi, and I get audio lag/glitches.  I've been tracking down the causes of these glitches and have found several things that contribute.  So far, on two setups I have, I've found:

 *  >1ms long SMIs on a GA-990FX motherboard, caused exclusively by
   parallel disk writes (I am running a 5-disk array on it)
 * The linux radeon driver (on the host) occasionally locking up a core
   for 10-35ms at a time (I think this has been fixed since the 4.19
   series)
 * When console messages get sent to a serial port, it locks up a core
   for the duration of the message. (This is a known problem that is
   still being worked on)
 * qemu's emulated (uhci) USB seems to hold up a vCPU for a few ms
   somewhere in the guest's interrupt handler

I've been able to track these down with some combination of

- the SMI (hwlat) detector in ftrace
- the irqsoff tracer in ftrace
- cyclictest
- guesswork

I have found workarounds for the above, however I am still having trouble with one box - I get glitches every minute or two. My investigation is so far stuck at hits from the irqsoff tracer that contain lines like this:

alsa-sin-31611     1d...    0us#: _raw_spin_lock_irq
alsa-sin-31611     1d... 4448us : snd_pcm_group_unlock_irq

So, questions:

- when I get output like the above from an irqsoff trace, how do I probe further?

- are there any other tools that could help with debugging these sorts of problems?

- I understand that for IRQs to get routed properly from host to guest, the device needs to have a per-device (per-function?) IRQ status bit that can be used to aid in routing.  How do I confirm that the device in question has this bit?

- how do I check that IRQs are being routed to the guest optimally?  What do I watch out for?  How do I check if it's using irqfd?

- does MSI really help?  Will it save any more more than, say, 100us in IRQ response latency?

(I am able to swap in a sound card that works; I have a cheap USB dongle that hasn't given me any problems yet.  I still want to see what options I have though.)


_______________________________________________
vfio-users mailing list
vfio-users@redhat.com
https://www.redhat.com/mailman/listinfo/vfio-users

Reply via email to