Re: [PATCH 00/16] sched/wait: Collapse __wait_event macros -v5

From: Ingo Molnar
Date: Fri Oct 11 2013 - 03:26:34 EST



* Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:

> > So, I think this code lives within kernel/params.c. Might be fixable?
>
> But of course! I was just trying to be lazy. ;-)
>
> I could imagine adding a filename field to struct kernel_param that was
> initialized with __FILE__, then making something like parameq() that did
> the appropriate comparison allowing any match starting after a "/" and
> ignoring the trailing ".h" or ".c", and then calling that from
> parse_one() along with current parameq(). There doesn't seem to be any
> point for doing the same to do_early_param().
>
> There would be a few surprises with this approach, for example,
> rcu_idle_gp_delay and rcu_idle_lazy_gp_delay, which are defined in
> kernel/rcu/tree_plugin.h, would be:
>
> tree_plugin.rcu_idle_gp_delay=4
> tree_plugin.rcu_idle_lazy_gp_delay=6000
>
> or:
>
> rcu/tree_plugin.rcu_idle_gp_delay=4
> rcu/tree_plugin.rcu_idle_lazy_gp_delay=6000
>
> or:
>
> kernel/rcu/tree_plugin.rcu_idle_gp_delay=4
> kernel/rcu/tree_plugin.rcu_idle_lazy_gp_delay=6000
>
> or I suppose even:
>
> linux-rcu/kernel/rcu/tree_plugin.rcu_idle_gp_delay=4
> linux-rcu/kernel/rcu/tree_plugin.rcu_idle_lazy_gp_delay=6000
>
> instead of (say):
>
> kernel/rcu/tree.rcu_idle_gp_delay=4
> kernel/rcu/tree.rcu_idle_lazy_gp_delay=6000
>
> This could of course also be fixed by comparing the filename up to the
> last "/" followed by the current parameter name. Or, as Peter Zijlstra
> suggested, by manually expanding kernel/rcu/tree_plugin.h into
> kernel/rcu/tree.c.
>
> Or I could use the non-standard __BASE_FILE__ instead of __FILE__, which
> expands to .../kernel/rcu/tree.c. LLVM seems to define this as well, so
> should be OK to use.
>
> So it doesn't look too horrible. (Famous last words...)

Hm, I'm not so sure about the long names, for the following reasons:
strings like 'kernel/rcu/tree_plugin.' might mean a lot to us kernel
developers - less to sysadmins and users who would want to utilize them.

There's also a typo danger with overly long parameters and the parameter
parser is not very intelligent about seeing the intent of the user.

So I think while rcu/tree.val would be useful syntax, going above that,
especially with auto-generated file names (and file names can change)
would be overdoing it a bit :-/

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/