Adding some background to the question, to make it understandable:

This is with respect to NVMe protocol - Along with an I/O command, if required, metadata too can be sent/received to/from the device. This metadata can be sent as part of an extended LBA ([data block + metadata]) OR it can be sent in a separate buffer ([data block, data block, ..], [metadata]).

We are working on NVMe driver in linux kernel 4.13.10. We want to test an NVMe I/O commands with separate metadata. We send the command using IOCTL, and along the command we send the buffer to be used by driver to be sent to controller for metadata. The driver uses blk_execute_rq to submit the command to the block layer.

This implementation works properly for normal commands, but when used with separate metadata, it crashes at blk_mq_start_request.

closed as unclear what you're asking by Jeff Schaller, Rui F Ribeiro, thrig, schily, RalfFriedl Oct 29 '18 at 17:34

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Welcome on the Unix SE! What do you think, what are our chances to debug a kernel driver knowing a rough description of it? – user259412 Oct 31 '18 at 7:56

Browse other questions tagged or ask your own question.