From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo.kernel.org@gmail.com>,
Oleg Nesterov <oleg@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 00/16] sched/wait: Collapse __wait_event macros -v5
Date: Thu, 10 Oct 2013 11:58:19 -0700 [thread overview]
Message-ID: <20131010185819.GP5790@linux.vnet.ibm.com> (raw)
In-Reply-To: <20131010173937.GD26430@gmail.com>
On Thu, Oct 10, 2013 at 07:39:37PM +0200, Ingo Molnar wrote:
>
> * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
>
> > On Thu, Oct 10, 2013 at 10:05:01AM +0200, Ingo Molnar wrote:
> > >
> > > * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> > >
> > > > And it now builds, boots, and passes short rcutorture tests, updated
> > > > patch below.
> > > >
> > > > One side-effect is the boot parameters, namely that what used to be
> > > > rcutree.blimit=10 is now simply tree.blimit=10. Not a problem for me, I
> > > > just made my test scripts probe the source tree and generate the
> > > > corresponding format. But is there some straightforward way to get the
> > > > name of the "rcu" directory involved? The obvious approach of
> > > > "rcu.tree.blimit=10" does not work -- the kernel happily ignores any
> > > > such parameter.
> > >
> > > Hm, that boot option parser attitude is a bit sad - more structure to boot
> > > parameters is IMHO a Good Thing.
> >
> > No argument here!
> >
> > > Does it accept :
> > >
> > > rcu/tree/blimit=10
> > >
> > > rcu/tree.blimit=10
> > >
> > > type of structure perhaps?
> >
> > Unfortunately, no. :-(
>
> 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...)
Thoughts?
> > > > It looks like I should be able to do something like the following in
> > > > kernel/rcu/tree.c to get back the old parameter names:
> > > >
> > > > MODULE_ALIAS("rcutree");
> > > > #ifdef MODULE_PARAM_PREFIX
> > > > #undef MODULE_PARAM_PREFIX
> > > > #endif
> > > > #define MODULE_PARAM_PREFIX "rcutree."
> > >
> > > Yeah.
> > >
> > > ( To keep it simple, the undef should be unnecessary, it's not like anyone
> > > can slip in a MODULE_PARAM_PREFIX without you noticing, right? )
> >
> > Works with the #undef, trying it without it... And it works, but I do
> > get the following complaint from the compiler:
> >
> > /home/paulmck/public_git/linux-rcu/kernel/rcu/tree.c:66:0: warning: "MODULE_PARAM_PREFIX" redefined [enabled by default]
> > /home/paulmck/public_git/linux-rcu/include/linux/moduleparam.h:13:0: note: this is the location of the previous definition
> >
> > The problem is that moduleparam.h contains the following:
> >
> > #define MODULE_PARAM_PREFIX KBUILD_MODNAME "."
> >
> > So the #undef is ugly, but better than the compiler warning. :-(
>
> agreed.
>
> Thanks,
>
> Ingo
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
next prev parent reply other threads:[~2013-10-10 18:58 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-02 9:22 [PATCH 00/16] sched/wait: Collapse __wait_event macros -v5 Peter Zijlstra
2013-10-02 9:22 ` [PATCH 01/16] sched/wait: Make the signal_pending() checks consistent Peter Zijlstra
2013-10-04 17:33 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 02/16] sched/wait: Change timeout logic Peter Zijlstra
2013-10-04 17:33 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 03/16] sched/wait: Change the wait_exclusive control flow Peter Zijlstra
2013-10-04 17:33 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 04/16] sched/wait: Introduce ___wait_event() Peter Zijlstra
2013-10-04 17:33 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 05/16] sched/wait: Collapse __wait_event() Peter Zijlstra
2013-10-04 17:34 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 06/16] sched/wait: Collapse __wait_event_timeout() Peter Zijlstra
2013-10-04 17:34 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 07/16] sched/wait: Collapse __wait_event_interruptible() Peter Zijlstra
2013-10-04 17:34 ` [tip:sched/core] sched/wait: Collapse __wait_event_interruptible( ) tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 08/16] sched/wait: Collapse __wait_event_interruptible_timeout() Peter Zijlstra
2013-10-04 17:34 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 09/16] sched/wait: Collapse __wait_event_interruptible_exclusive() Peter Zijlstra
2013-10-04 17:34 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 10/16] sched/wait: Collapse __wait_event_lock_irq() Peter Zijlstra
2013-10-04 17:34 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 11/16] sched/wait: Collapse __wait_event_interruptible_lock_irq() Peter Zijlstra
2013-10-04 17:35 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 12/16] sched/wait: Collapse __wait_event_interruptible_lock_irq_timeout() Peter Zijlstra
2013-10-04 17:35 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 13/16] sched/wait: Collapse __wait_event_interruptible_tty() Peter Zijlstra
2013-10-04 17:35 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 14/16] sched/wait: Collapse __wait_event_killable() Peter Zijlstra
2013-10-04 17:35 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 15/16] sched/wait: Collapse __wait_event_hrtimeout() Peter Zijlstra
2013-10-04 17:35 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-02 9:22 ` [PATCH 16/16] sched/wait: Make the __wait_event*() interface more friendly Peter Zijlstra
2013-10-04 17:35 ` [tip:sched/core] " tip-bot for Peter Zijlstra
2013-10-04 20:44 ` [PATCH 00/16] sched/wait: Collapse __wait_event macros -v5 Peter Zijlstra
2013-10-04 20:44 ` Peter Zijlstra
2013-10-05 8:04 ` Ingo Molnar
2013-10-08 9:59 ` Peter Zijlstra
2013-10-08 10:23 ` Ingo Molnar
2013-10-08 14:16 ` Paul E. McKenney
2013-10-08 19:47 ` Ingo Molnar
2013-10-08 20:01 ` Peter Zijlstra
2013-10-08 20:41 ` Paul E. McKenney
2013-10-08 21:06 ` Peter Zijlstra
2013-10-08 21:43 ` Paul E. McKenney
2013-10-08 20:40 ` Paul E. McKenney
2013-10-09 3:28 ` Paul E. McKenney
2013-10-09 3:35 ` Paul E. McKenney
2013-10-09 6:08 ` Ingo Molnar
2013-10-09 14:21 ` Paul E. McKenney
2013-10-10 2:59 ` Paul E. McKenney
2013-10-10 8:05 ` Ingo Molnar
2013-10-10 17:11 ` Paul E. McKenney
2013-10-10 17:39 ` Ingo Molnar
2013-10-10 18:58 ` Paul E. McKenney [this message]
2013-10-11 7:26 ` Ingo Molnar
2013-10-11 15:59 ` Paul E. McKenney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131010185819.GP5790@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo.kernel.org@gmail.com \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.