On Mon, Apr 03, 2017 at 07:14:22PM +0300, Michael S. Tsirkin wrote: > On Mon, Apr 03, 2017 at 04:18:23PM +0200, Christoph Hellwig wrote: > > Mike, > > > > can you try the patch below? > > > > --- > > >From fe41a30b54878cc631623b7511267125e0da4b15 Mon Sep 17 00:00:00 2001 > > From: Christoph Hellwig <h...@lst.de> > > Date: Mon, 3 Apr 2017 14:51:35 +0200 > > Subject: virtio_pci: don't use shared irq for virtqueues > > > > Reimplement the shared irq feature manually, as we might have a larger > > number of virtqueues than the core shared interrupt code can handle > > in threaded interrupt mode. > > > > Signed-off-by: Christoph Hellwig <h...@lst.de> > > --- > > drivers/virtio/virtio_pci_common.c | 142 > > +++++++++++++++++++++---------------- > > drivers/virtio/virtio_pci_common.h | 1 + > > 2 files changed, 83 insertions(+), 60 deletions(-) > > Well the original patch this is trying to fix is > 07ec51480b5eb1233f8c1b0f5d7a7c8d1247c507 which dropped just 40 lines > with documentation. It did this by re-using error handling to switch > from per-vq to non-per-vq mode. Now this has separate flows for errors > and per-vq non-per-vq switch and (I think, as a result) is adding 140 > lines which doesn't make me very happy.
The above adds 23 lines. We could entangle both loops again, but I'm not sure it's going to buy us much.