[vfio-users] USB ASIO DAC buffer underruns on Windows guest

Paige Thompson erratic at yourstruly.sx
Tue Dec 25 16:52:28 UTC 2018


Hi, 

I have a very long standing problem that I've recently been trying to root cause and document. As near as I can tell the problem is rooted somewhere in Windows itself and/or the virtio drivers for Windows. I believe it must be one of the windows virtio drivers because: 

- Both of my DACs work perfectly fine connected to a Windows laptop running Windows on metal 
- A Linux guest with the same VM configuration doesn't have this problem when using either of my DACs to play back audio 
- I've been able to eliminate the problem intermittently on Windows (It was working fine yesterday until a large batch of Windows Updates were installed.) 

Even so, I want to know who out there has tried getting a USB audio DAC to work with a Windows Guest on KVM/QEMU? I'm using a USB3.0 pcie card that is passed through to the guest, I haven't been able to get it to work any other way really. 

I've sifted through everything I can possibly for KVM/QEMU to make this work. In the process I even figured out how to get Q35 to work with my AMD r9 390 card by virtue of wanting to see if it would solve my problem however it did not. If I had some other USB audio devices to try I would but I don't. It'd be nice to find out what others have done to get one to work as well as it does on bare metal. I think I'm close but I'm not sure. 

Here is my work log, with a description of what I've tried starting from the top and towards the end in comments things I have tried changing along the way: https://gitlab.com/snippets/1789874

Most recently I tried reinstalling Windows and using virtio-scsi as the issue seemed to be related to disk I/O on the host. It was working really well without any problems at all until windows installed more updates. In previous attempts I addeed things like isolcpus, hugepages, increasing the global, emulator, and iothread periods, forcing the timer to tsc native, etc. I think all of these things in combination has helped but I'm trying to elliminate the problem completely. Today I tested it under OpenSuse on linux and that didn't suck at all; works perfectly on a linux guest. 





More information about the vfio-users mailing list