On 3/21/19 7:25 PM, Kashyap Desai wrote:
Hannes & Christoph: Please comment on Sreekanth's proposed
approach.
Iterating over all tags from the driver is always wrong. We've
been though this a few times.
Current issue is very easy to be reproduced and it is widely
impacted.
We proposed this approach i.e. invoking scsi_host_find_tag() for
only those tags which are outstanding at the driver level; as
this has very minimal code changes without impacting any design
and also it will work in both non-mq + mq mode.
We can rework on those code sections where driver is iterating
over all tags. I understood from your reply that - "Low level
driver should not have any requirement to loop outstanding IOs".
Not sure if such things can be done without SML support. AFAIK,
similar issue is very generic and many low level scsi driver has
similar
requirement.
Can we go with current solution assuming any new interface as
you requested can be done as separate activity?
After reconsideration, and seeing that the required interface (namely
blk_mq_tagset_busy_iter()) is undergoing changes currently, I'm fine
with the patch.
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@xxxxxxx +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
HRB 21284 (AG Nürnberg)