> -----Original Message----- > From: Christoph Hellwig [mailto:hch@xxxxxx] > Sent: Tuesday, November 25, 2014 8:02 PM > To: Hannes Reinecke > Cc: James Bottomley; Sumit Saxena; Kashyap Desai; linux- > scsi@xxxxxxxxxxxxxxx; Webb Scales; Don Brace; Jens Axboe > Subject: Re: [PATCH] megaraid_sas: Enable shared host tag map > > On Mon, Nov 24, 2014 at 04:51:14PM +0100, Hannes Reinecke wrote: > > It is useful as is, as we'll be getting prefixed logging output :-) > > Use the blk-mq code path if you care :) > > > Which I didn't do yet as the driver is using a larger tag map than > > that one announced to the block layer. > > This is to facilitate internal command submission, which should always > > work independent on any tag starvation issues from the upper layers. > > This is an "issue" for a lot of drivers. blk-mq provides a reserved_tags pool > for that, which reserves a number of tags for internal use, those must be > allocated using blk_mq_alloc_request with the reserved argument set to > true. > > The lockless hpsa patches expose this to SCSI, which I'm generally fine with, > but we need to find a way to transparently make this work for the old code > path, too. This might be as simple as embedding a second blk_queue_tag > structure into the Scsi_Host, adding a constant prefix to the tag and providing > some wrappes in scsi that allow allocating a struct request (or rather > scsi_cmnd) for internal use. Just trying to understand your above comment. I see host template has new field called "reserved_tags" which is normally used by mid layer to reserved block tag pool for driver's internal use. What if driver is OK to manage internal pool without any blk tag dependency and do not expose actual max can queue of what FW can support. For example, in megaraid_sas driver FW expose max_fw_cmd = 1024 and driver keep some reserve (let's say 24 commands for internal use) and it just expose 1000 command for blk tags. This will work for blk-mq and legacy blk driver. Let driver to manage whatever internal reserved it kept for and do not add any dependency with blk tag from above layer for those reserved pool. ` Kashyap -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html