[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87sfort5fz.fsf@redhat.com>
Date: Mon, 30 May 2022 17:18:08 +0200
From: Cornelia Huck <cohuck@...hat.com>
To: Jason Wang <jasowang@...hat.com>, mst@...hat.com,
jasowang@...hat.com, virtualization@...ts.linux-foundation.org,
linux-kernel@...r.kernel.org
Cc: tglx@...utronix.de, peterz@...radead.org, paulmck@...nel.org,
maz@...nel.org, pasic@...ux.ibm.com, eperezma@...hat.com,
lulu@...hat.com, sgarzare@...hat.com, xuanzhuo@...ux.alibaba.com,
Vineeth Vijayan <vneethv@...ux.ibm.com>,
Peter Oberparleiter <oberpar@...ux.ibm.com>,
linux-s390@...r.kernel.org
Subject: Re: [PATCH V6 8/9] virtio: harden vring IRQ
On Fri, May 27 2022, Jason Wang <jasowang@...hat.com> wrote:
> This is a rework on the previous IRQ hardening that is done for
> virtio-pci where several drawbacks were found and were reverted:
>
> 1) try to use IRQF_NO_AUTOEN which is not friendly to affinity managed IRQ
> that is used by some device such as virtio-blk
> 2) done only for PCI transport
>
> The vq->broken is re-used in this patch for implementing the IRQ
> hardening. The vq->broken is set to true during both initialization
> and reset. And the vq->broken is set to false in
> virtio_device_ready(). Then vring_interrupt() can check and return
> when vq->broken is true. And in this case, switch to return IRQ_NONE
> to let the interrupt core aware of such invalid interrupt to prevent
> IRQ storm.
>
> The reason of using a per queue variable instead of a per device one
> is that we may need it for per queue reset hardening in the future.
>
> Note that the hardening is only done for vring interrupt since the
> config interrupt hardening is already done in commit 22b7050a024d7
> ("virtio: defer config changed notifications"). But the method that is
> used by config interrupt can't be reused by the vring interrupt
> handler because it uses spinlock to do the synchronization which is
> expensive.
>
> Cc: Thomas Gleixner <tglx@...utronix.de>
> Cc: Peter Zijlstra <peterz@...radead.org>
> Cc: "Paul E. McKenney" <paulmck@...nel.org>
> Cc: Marc Zyngier <maz@...nel.org>
> Cc: Halil Pasic <pasic@...ux.ibm.com>
> Cc: Cornelia Huck <cohuck@...hat.com>
> Cc: Vineeth Vijayan <vneethv@...ux.ibm.com>
> Cc: Peter Oberparleiter <oberpar@...ux.ibm.com>
> Cc: linux-s390@...r.kernel.org
> Signed-off-by: Jason Wang <jasowang@...hat.com>
> ---
> drivers/s390/virtio/virtio_ccw.c | 4 ++++
> drivers/virtio/virtio.c | 15 ++++++++++++---
> drivers/virtio/virtio_mmio.c | 5 +++++
> drivers/virtio/virtio_pci_modern_dev.c | 5 +++++
> drivers/virtio/virtio_ring.c | 11 +++++++----
> include/linux/virtio_config.h | 20 ++++++++++++++++++++
> 6 files changed, 53 insertions(+), 7 deletions(-)
Reviewed-by: Cornelia Huck <cohuck@...hat.com>
Powered by blists - more mailing lists