Re: [PATCH v2 3/3] lib/group_cpus.c: honor housekeeping config when grouping CPUs

From: Hannes Reinecke
Date: Mon Jul 01 2024 - 04:38:02 EST


On 7/1/24 09:10, Ming Lei wrote:
On Mon, Jul 01, 2024 at 08:43:34AM +0200, Hannes Reinecke wrote:
On 7/1/24 04:09, Ming Lei wrote:
[ .. ]

Since this patch, some isolated CPUs may not be covered in
blk-mq queue mapping.

Meantime people still may submit IO workload from isolated CPUs
such as by 'taskset -c', blk-mq may not work well for this situation,
for example, IO hang may be caused during cpu hotplug.

I did see this kind of usage in some RH Openshift workloads.

If blk-mq problem can be solved, I am fine with this kind of
change.

That was kinda the idea of this patchset; when 'isolcpus' is active any
in-kernel driver can only run on the housekeeping CPUs, and I/O from the
isolcpus is impossible.
(Otherwise they won't be isolated anymore, and the whole concepts becomes
ever so shaky.).

Userspace may still force to run IO workload from isolated CPUs when they do
not care CPU isolation, and kernel still should complete IO from isolated CPUs,
and can't run into hang or panic meantime.

And we do support this kind of usage now, then regression is caused by
this patch.

Hmm. Guess we need to modify the grouping algorithm to group across all cpus, but ensure that each group consists either of all housekeeping CPUs or all isolated cpus.
Daniel?

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxx +49 911 74053 688
SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg
HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich