[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for-7.2 1/5] hw/nvme: fix aio cancel in format
From: |
Keith Busch |
Subject: |
Re: [PATCH for-7.2 1/5] hw/nvme: fix aio cancel in format |
Date: |
Tue, 22 Nov 2022 10:18:44 -0700 |
On Tue, Nov 22, 2022 at 09:13:44AM +0100, Klaus Jensen wrote:
> There are several bugs in the async cancel code for the Format command.
>
> Firstly, cancelling a format operation neglects to set iocb->ret as well
> as clearing the iocb->aiocb after cancelling the underlying aiocb which
> causes the aio callback to ignore the cancellation. Trivial fix.
>
> Secondly, and worse, because the request is queued up for posting to the
> CQ in a bottom half, if the cancellation is due to the submission queue
> being deleted (which calls blk_aio_cancel), the req structure is
> deallocated in nvme_del_sq prior to the bottom half being schedulued.
>
> Fix this by simply removing the bottom half, there is no reason to defer
> it anyway.
I thought for sure I'd find a reason defered execution was needed, but
hey, it looks perfectly fine with this change!
> diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
> index ac3885ce5079..26b53469328f 100644
> --- a/hw/nvme/ctrl.c
> +++ b/hw/nvme/ctrl.c
> @@ -5756,14 +5756,15 @@ typedef struct NvmeFormatAIOCB {
> uint8_t pil;
> } NvmeFormatAIOCB;
I think you can remove the QEMUBH member from the above struct with this
patch.
Otherwise looks good.
Reviewed-by: Keith Busch <kbusch@kernel.org>
- [PATCH for-7.2 0/5] hw/nvme: aio cancel fixes, Klaus Jensen, 2022/11/22
- [PATCH for-7.2 1/5] hw/nvme: fix aio cancel in format, Klaus Jensen, 2022/11/22
- Re: [PATCH for-7.2 1/5] hw/nvme: fix aio cancel in format,
Keith Busch <=
- [PATCH for-7.2 3/5] hw/nvme: fix aio cancel in zone reset, Klaus Jensen, 2022/11/22
- [PATCH for-7.2 4/5] hw/nvme: fix aio cancel in dsm, Klaus Jensen, 2022/11/22
- [PATCH for-7.2 2/5] hw/nvme: fix aio cancel in flush, Klaus Jensen, 2022/11/22
- [PATCH for-7.2 5/5] hw/nvme: remove copy bh scheduling, Klaus Jensen, 2022/11/22