Re: [RFC PATCH 3/3] nvme: add the "debug" host driver
From: Chaitanya Kulkarni <hidden>
Date: 2022-02-04 07:58:30
Also in:
dm-devel, linux-fsdevel, linux-nvme, linux-scsi
On 2/3/22 22:28, Damien Le Moal wrote:
On 2/4/22 12:12, Chaitanya Kulkarni wrote:quoted
quoted
quoted
quoted
One can instantiate scsi devices with qemu by using fake scsi devices, but one can also just use scsi_debug to do the same. I see both efforts as desirable, so long as someone mantains this.Why do you think both efforts are desirable ?When testing code using the functionality, it is far easier to get said functionality doing a simple "modprobe" rather than having to setup a VM. C.f. running blktests or fstests.
agree on simplicity but then why do we have QEMU implementations for the NVMe features (e.g. ZNS, NVMe Simple Copy) ? we can just build memoery backed NVMeOF test target for NVMe controller features. Also, recognizing the simplicity I proposed initially NVMe ZNS fabrics based emulation over QEMU (I think I still have initial state machine implementation code for ZNS somewhere), those were "nacked" for the right reason, since we've decided go with QEMU and use that as a primary platform for testing, so I failed to understand what has changed.. since given that QEMU already supports NVMe simple copy ...
So personally, I also think it would be great to have a kernel-based emulation of copy offload. And that should be very easy to implement with the fabric code. Then loopback onto a nullblk device and you get a quick and easy to setup copy-offload device that can even be of the ZNS variant if you want since nullblk supports zones.
One can do that with creating null_blk based NVMeOF target namespace, no need to emulate simple copy memory backed code in the fabrics with nvme-loop.. it is as simple as inserting module and configuring ns with nvmetcli once we have finalized the solution for copy offload. If you remember, I already have patches for that...
quoted
NVMe ZNS QEMU implementation proved to be perfect and works just fine for testing, copy offload is not an exception.quoted
quoted
quoted
For instance, blktests uses scsi_debug for simplicity. In the end you decide what you want to use.Can we use the nvme-loop target instead?I am advocating for this approach as well. It presentas a virtual nvme controller already.It does that assuming underlying block device such as null_blk or QEMU implementation supports required features not to bloat the the NVMeOF target. -ck
-ck