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

From: Peter Xu
Date: Mon Feb 03 2020 - 18:58:00 EST


On Mon, Feb 03, 2020 at 11:15:50PM +0000, Thomas Gleixner wrote:
> 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.

Hi, Thomas,

Just to make sure I understand it right: are you suggesting that we
fix up housekeeping_isolcpus_setup() to be able to skip unknown sub
parameters?

Thanks,

--
Peter Xu