On 11/26/21 01:58, John Garry wrote:
How about these:
a. allow block driver to specify size of reserved request PDU separately
to regular requests, so we can use something like this for rsvd commands:
struct scsi_rsvd_cmnd {
struct scsi_device *sdev;
}
And fix up SCSI iter functions and LLDs to deal with it.
b. provide block layer API to provide just same as is returned from
blk_mq_unique_tag(), but no request is provided. This just gives what we
need but would be disruptive in scsi layer and LLDs.
c. as alternative to b., send all rsvd requests through the block layer,
but can be very difficult+disruptive for users
*For polling rsvd commands on a poll queue (which we will need for
hisi_sas driver and maybe others for poll mode support), we would need
to send the request through the block layer, but block layer polling
requires a request with a bio, which is a problem.
How about postponing these changes until a patch is ready that converts
at least one SCSI LLD such that it uses the above functionality?
Thanks,
Bart.