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

From: Thomas Gleixner
Date: Mon Feb 03 2020 - 18:16:05 EST


Peter Xu <peterx@xxxxxxxxxx> writes:
> 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.

No, really. The basic guarantee is that your new kernel is going to work
fine with the previous command line, but making a guarantee that new
command line options still work on an old kernel are just creating a
horrible mess. So if that command line interface was not designed to
handle unknown arguments in the first place, you better fix that.

Thanks,

tglx