Re: [PATCH RFC v7 10/12] megaraid_sas: switch fusion adapters to MQ

Hannes Reinecke
2020-07-06T09:40:59Z

On 7/6/20 11:26 AM, John Garry wrote:
> On 06/07/2020 09:45, Hannes Reinecke wrote:
>> Originally I thought it would help for CPU hotplug, too, but typically
>> the internal commands are not bound to any specific CPU,
>
> When we alloc the request in scsi_get_internal_cmd() - >
> blk_mq_alloc_request() -> __blk_mq_alloc_request(), the request will
> have an associated hctx.
>
> As such, I would expect the LLDD to honor this, in that it should use
> the hwq associated with the hctx to send/receive the command.
>
> And from that, the hwq managed interrupt should not be shut down until
> the queue is drained, including internal commands.
>
> Is there something wrong with this idea?
>
Oh, no, not at all.

What I'm referring to are driver internals; some driver allow (or set)
the MSIx vector only for 'normal' I/O; internal commands don't have an
MSIx vector set.
As such it's pretty much driver-dependent _where_ they end up, be it on
the same CPU, or on any CPU who might be listening.
Be it as it may, when waiting for hctx to drain we are pretty safe, and
hence CPU hotplug will be improved here.

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@suse.de +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), GF: Felix Imendörffer