Hi Christoph, On Wed, Apr 19, 2017 at 09:54:08PM -0700, Christoph Hellwig wrote: > On Thu, Apr 20, 2017 at 09:03:47AM +0800, Ming Lei wrote: > > If we don't need to reserve tag for internal command, I am happy > > to fix it in the interim. However, the mtip32xx driver has to > > ask blk-mq to reserve the tag zero for internal command. Then > > if we can't allow the driver to use that reserved tag, it looks > > quite awkward, doesn't it? > > It doesn't. Just offset the hardware tags by 1 from the blk-mq tags. > > But I'm pretty sure the hardware wouldn't require a specific tag > for the internal ops. >From mtip32xx code, the tag 0 is used to send internal command only, and not used for submitting normal request. >From code of mtip_issue_non_ncq_command() and mtip_issue_ncq_command(), even same hardware address is writen to when issuing non-ncq and ncq commands. So I think the internal ops and normal requests share one same tag space on mtip32xx. Could you explain it a bit why you think the hw doesn't need the tag for internal ops in this case? Thanks, Ming