* Re: [RFC 0/1] nvme: Add NVMe LBA Fault Injection [not found] <20240116232728.3392996-1-alan.adamson@oracle.com> @ 2024-01-18 7:24 ` Christoph Hellwig 2024-01-18 17:02 ` alan.adamson 0 siblings, 1 reply; 9+ messages in thread From: Christoph Hellwig @ 2024-01-18 7:24 UTC (permalink / raw) To: Alan Adamson; +Cc: linux-nvme, kbusch, hch, sagi, linux-block On Tue, Jan 16, 2024 at 03:27:27PM -0800, Alan Adamson wrote: > It has been requested that the NVMe fault injector be able to inject faults when accessing > specific Logical Block Addresses (LBA). Curious, but who has requested this? Because injecting errors really isn't the drivers job. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 0/1] nvme: Add NVMe LBA Fault Injection 2024-01-18 7:24 ` [RFC 0/1] nvme: Add NVMe LBA Fault Injection Christoph Hellwig @ 2024-01-18 17:02 ` alan.adamson 2024-01-19 4:48 ` Keith Busch 2024-01-23 9:05 ` Christoph Hellwig 0 siblings, 2 replies; 9+ messages in thread From: alan.adamson @ 2024-01-18 17:02 UTC (permalink / raw) To: Christoph Hellwig; +Cc: linux-nvme, kbusch, sagi, linux-block On 1/17/24 11:24 PM, Christoph Hellwig wrote: > On Tue, Jan 16, 2024 at 03:27:27PM -0800, Alan Adamson wrote: >> It has been requested that the NVMe fault injector be able to inject faults when accessing >> specific Logical Block Addresses (LBA). > Curious, but who has requested this? Because injecting errors really > isn't the drivers job. It's an application (database) that is requesting it for their error handling testing. Alan ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 0/1] nvme: Add NVMe LBA Fault Injection 2024-01-18 17:02 ` alan.adamson @ 2024-01-19 4:48 ` Keith Busch 2024-01-23 9:05 ` Christoph Hellwig 1 sibling, 0 replies; 9+ messages in thread From: Keith Busch @ 2024-01-19 4:48 UTC (permalink / raw) To: alan.adamson; +Cc: Christoph Hellwig, linux-nvme, sagi, linux-block On Thu, Jan 18, 2024 at 09:02:43AM -0800, alan.adamson@oracle.com wrote: > > On 1/17/24 11:24 PM, Christoph Hellwig wrote: > > On Tue, Jan 16, 2024 at 03:27:27PM -0800, Alan Adamson wrote: > > > It has been requested that the NVMe fault injector be able to inject faults when accessing > > > specific Logical Block Addresses (LBA). > > Curious, but who has requested this? Because injecting errors really > > isn't the drivers job. > > > It's an application (database) that is requesting it for their error > handling testing. Going out on a limb here... This seems so obscure to burden a driver to synthesize. Could we just give a hook for a bpf override and you can totally go for whatever scenario you can imagine with a script? --- diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 50818dbcfa1ae..df87a63335aa8 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -381,9 +381,22 @@ static inline void nvme_end_req_zoned(struct request *req) } } +#ifdef CONFIG_BPF_KPROBE_OVERRIDE +static noinline blk_status_t nvme_req_status(struct nvme_request *req) +{ + return nvme_error_status(req->status); +} +ALLOW_ERROR_INJECTION(nvme_req_status, ERRNO); +#else +static inline blk_status_t nvme_req_status(struct nvme_request *req) +{ + return nvme_error_status(req->status); +} +#endif + static inline void nvme_end_req(struct request *req) { - blk_status_t status = nvme_error_status(nvme_req(req)->status); + blk_status_t status = nvme_req_status(nvme_req(req)); if (unlikely(nvme_req(req)->status && !(req->rq_flags & RQF_QUIET))) nvme_log_error(req); -- ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [RFC 0/1] nvme: Add NVMe LBA Fault Injection 2024-01-18 17:02 ` alan.adamson 2024-01-19 4:48 ` Keith Busch @ 2024-01-23 9:05 ` Christoph Hellwig 2024-01-23 17:25 ` alan.adamson 1 sibling, 1 reply; 9+ messages in thread From: Christoph Hellwig @ 2024-01-23 9:05 UTC (permalink / raw) To: alan.adamson; +Cc: Christoph Hellwig, linux-nvme, kbusch, sagi, linux-block On Thu, Jan 18, 2024 at 09:02:43AM -0800, alan.adamson@oracle.com wrote: > > On 1/17/24 11:24 PM, Christoph Hellwig wrote: >> On Tue, Jan 16, 2024 at 03:27:27PM -0800, Alan Adamson wrote: >>> It has been requested that the NVMe fault injector be able to inject faults when accessing >>> specific Logical Block Addresses (LBA). >> Curious, but who has requested this? Because injecting errors really >> isn't the drivers job. > > > It's an application (database) that is requesting it for their error > handling testing. Well, how about they then insert it into the real or virtual hardware. The Linux nvme driver isn't really an error injection framework. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 0/1] nvme: Add NVMe LBA Fault Injection 2024-01-23 9:05 ` Christoph Hellwig @ 2024-01-23 17:25 ` alan.adamson 2024-01-24 9:04 ` Christoph Hellwig 0 siblings, 1 reply; 9+ messages in thread From: alan.adamson @ 2024-01-23 17:25 UTC (permalink / raw) To: Christoph Hellwig; +Cc: linux-nvme, kbusch, sagi, linux-block On 1/23/24 1:05 AM, Christoph Hellwig wrote: > On Thu, Jan 18, 2024 at 09:02:43AM -0800, alan.adamson@oracle.com wrote: >> On 1/17/24 11:24 PM, Christoph Hellwig wrote: >>> On Tue, Jan 16, 2024 at 03:27:27PM -0800, Alan Adamson wrote: >>>> It has been requested that the NVMe fault injector be able to inject faults when accessing >>>> specific Logical Block Addresses (LBA). >>> Curious, but who has requested this? Because injecting errors really >>> isn't the drivers job. >> >> It's an application (database) that is requesting it for their error >> handling testing. > Well, how about they then insert it into the real or virtual hardware. > The Linux nvme driver isn't really an error injection framework. > Sorry if you receive multiple of these, I'm having email/sending issues. I get it, but there is already an injection framework in place for nvme. Is there no plan to improve it? Alan ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 0/1] nvme: Add NVMe LBA Fault Injection 2024-01-23 17:25 ` alan.adamson @ 2024-01-24 9:04 ` Christoph Hellwig 2024-01-24 16:52 ` alan.adamson 0 siblings, 1 reply; 9+ messages in thread From: Christoph Hellwig @ 2024-01-24 9:04 UTC (permalink / raw) To: alan.adamson; +Cc: Christoph Hellwig, linux-nvme, kbusch, sagi, linux-block On Tue, Jan 23, 2024 at 09:25:51AM -0800, alan.adamson@oracle.com wrote: > I get it, but there is already an injection framework in place for nvme. Is > there no plan to improve it? Injecting fake I/O error really isn't the driver job. For block I/O we could do it the block layer or DM, but that's not something to add to random drivers. Error injection makes sense for testing the driver itself, not applications. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 0/1] nvme: Add NVMe LBA Fault Injection 2024-01-24 9:04 ` Christoph Hellwig @ 2024-01-24 16:52 ` alan.adamson 2024-01-24 16:59 ` Keith Busch 0 siblings, 1 reply; 9+ messages in thread From: alan.adamson @ 2024-01-24 16:52 UTC (permalink / raw) To: Christoph Hellwig; +Cc: linux-nvme, kbusch, sagi, linux-block On 1/24/24 1:04 AM, Christoph Hellwig wrote: > On Tue, Jan 23, 2024 at 09:25:51AM -0800, alan.adamson@oracle.com wrote: >> I get it, but there is already an injection framework in place for nvme. Is >> there no plan to improve it? > Injecting fake I/O error really isn't the driver job. For block > I/O we could do it the block layer or DM, but that's not something > to add to random drivers. Error injection makes sense for testing > the driver itself, not applications. Thanks, I'll look at the block layer for this. Do you think adding error injection to qemu-nvme makes sense? Alan ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 0/1] nvme: Add NVMe LBA Fault Injection 2024-01-24 16:52 ` alan.adamson @ 2024-01-24 16:59 ` Keith Busch 2024-01-24 17:11 ` alan.adamson 0 siblings, 1 reply; 9+ messages in thread From: Keith Busch @ 2024-01-24 16:59 UTC (permalink / raw) To: alan.adamson; +Cc: Christoph Hellwig, linux-nvme, sagi, linux-block On Wed, Jan 24, 2024 at 08:52:54AM -0800, alan.adamson@oracle.com wrote: > > Thanks, I'll look at the block layer for this. Do you think adding error > injection to qemu-nvme makes sense? I frequently added custom error injection to qemu, though it was always pretty hacky so I never upstreamed anything. Klaus may be interested in getting a feature like that integrated upstream if you're able to put something together. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 0/1] nvme: Add NVMe LBA Fault Injection 2024-01-24 16:59 ` Keith Busch @ 2024-01-24 17:11 ` alan.adamson 0 siblings, 0 replies; 9+ messages in thread From: alan.adamson @ 2024-01-24 17:11 UTC (permalink / raw) To: Keith Busch; +Cc: Christoph Hellwig, linux-nvme, sagi, linux-block On 1/24/24 8:59 AM, Keith Busch wrote: > On Wed, Jan 24, 2024 at 08:52:54AM -0800, alan.adamson@oracle.com wrote: >> Thanks, I'll look at the block layer for this. Do you think adding error >> injection to qemu-nvme makes sense? > I frequently added custom error injection to qemu, though it was always > pretty hacky so I never upstreamed anything. Klaus may be interested in > getting a feature like that integrated upstream if you're able to put > something together. Thanks, I'll put something together. Alan ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-01-24 17:11 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20240116232728.3392996-1-alan.adamson@oracle.com>
2024-01-18 7:24 ` [RFC 0/1] nvme: Add NVMe LBA Fault Injection Christoph Hellwig
2024-01-18 17:02 ` alan.adamson
2024-01-19 4:48 ` Keith Busch
2024-01-23 9:05 ` Christoph Hellwig
2024-01-23 17:25 ` alan.adamson
2024-01-24 9:04 ` Christoph Hellwig
2024-01-24 16:52 ` alan.adamson
2024-01-24 16:59 ` Keith Busch
2024-01-24 17:11 ` alan.adamson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox