Re: [PATCH V4] sched/isolation: isolate from handling managed interrupt

From: Peter Xu
Date: Mon Feb 03 2020 - 14:22:02 EST


On Wed, Jan 22, 2020 at 02:25:38PM +0100, Thomas Gleixner wrote:
> Ming,
>
> Ming Lei <ming.lei@xxxxxxxxxx> writes:
> >
> > +static bool hk_should_isolate(struct irq_data *data,
> > + const struct cpumask *affinity, unsigned int cpu)
> > +{
>
> the *affinity argument is unused.
>
> I'll remove it myself.

Hi, Ming, Thomas,

The new "managed_irq" works for us, thanks for both of your work!

However I just noticed that this new sub-parameter might break users
if applied incorrectly to old kernels, because iiuc "isolcpus="
parameter will not apply at all when there's unknown sub-parameters:

static int __init housekeeping_isolcpus_setup(char *str)
{
unsigned int flags = 0;

while (isalpha(*str)) {
...
pr_warn("isolcpus: Error, unknown flag\n");
return 0;
}
...
}

Then the same kernel parameter will break isolcpus= if the user
reboots and switches to an older kernel.

A solution to this could be that we introduce an isolated parameter
for "managed_irq", then on the old kernels only the new parameter will
be ignored rather than the whole "isolcpus=" parameter, so nothing
will break.

I'm not sure whether it's already too late for this, or if there's any
better alternative. Just raise this question up to see whether we
still have chance to fix this up.

Thanks,

--
Peter Xu