RE: [PATCH] megaraid_sas: Enable shared host tag map

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux