public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* timing of module MODULE_STATE_COMING notifier
@ 2015-08-31  0:06 Frank Ch. Eigler
  2015-08-31  1:36 ` Rusty Russell
  0 siblings, 1 reply; 5+ messages in thread
From: Frank Ch. Eigler @ 2015-08-31  0:06 UTC (permalink / raw)
  To: rusty; +Cc: linux-kernel

Hi, Rusty -

We just [1] came across your patch [2] from last year (merged into
3.17), wherein the RO/NX mapping settings for module sections were
moved to an earlier point in the module-loading sequence.

That patch also moved the MODULE_STATE_COMING notifier call to
complete_formation(), which is relatively early to its former
do_init_module() call site.  It now precedes the parse_args(),
mod_sysfs_setup(), and trace_module_load() steps.

Was the latter part of the change intended & necessary?  It is
negatively impacting systemtap, which was relying on
MODULE_STATE_COMING being called from a fairly complete module state -
just before the actual initializer function call.

[1] https://sourceware.org/bugzilla/show_bug.cgi?id=18889

[2] commit 4982223e51e8ea9d09bb33c8323b5ec1877b2b51
Author: Rusty Russell <rusty@rustcorp.com.au>
Date:   Wed May 14 10:54:19 2014 +0930


- FChE

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: timing of module MODULE_STATE_COMING notifier
  2015-08-31  0:06 timing of module MODULE_STATE_COMING notifier Frank Ch. Eigler
@ 2015-08-31  1:36 ` Rusty Russell
  2015-08-31 12:53   ` Frank Ch. Eigler
  0 siblings, 1 reply; 5+ messages in thread
From: Rusty Russell @ 2015-08-31  1:36 UTC (permalink / raw)
  To: Frank Ch. Eigler; +Cc: linux-kernel

"Frank Ch. Eigler" <fche@redhat.com> writes:
> Hi, Rusty -
>
> We just [1] came across your patch [2] from last year (merged into
> 3.17), wherein the RO/NX mapping settings for module sections were
> moved to an earlier point in the module-loading sequence.
>
> That patch also moved the MODULE_STATE_COMING notifier call to
> complete_formation(), which is relatively early to its former
> do_init_module() call site.  It now precedes the parse_args(),
> mod_sysfs_setup(), and trace_module_load() steps.

Yes, parse_args() can enter the module, so you really want it before
then.

> Was the latter part of the change intended & necessary?  It is
> negatively impacting systemtap, which was relying on
> MODULE_STATE_COMING being called from a fairly complete module state -
> just before the actual initializer function call.

Notifiers suck for stuff like this :(

Module state has many steps, so my preference has been to open-code
explicit hooks.  This would seem to reinforce that preference...

Thanks,
Rusty.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: timing of module MODULE_STATE_COMING notifier
  2015-08-31  1:36 ` Rusty Russell
@ 2015-08-31 12:53   ` Frank Ch. Eigler
  2015-08-31 20:40     ` Frank Ch. Eigler
  0 siblings, 1 reply; 5+ messages in thread
From: Frank Ch. Eigler @ 2015-08-31 12:53 UTC (permalink / raw)
  To: Rusty Russell; +Cc: linux-kernel

Hi, Rusty -

Thanks for your response!

> [...]
> > That patch also moved the MODULE_STATE_COMING notifier call to
> > complete_formation(), which is relatively early to its former
> > do_init_module() call site.  It now precedes the parse_args(),
> > mod_sysfs_setup(), and trace_module_load() steps.
> 
> Yes, parse_args() can enter the module, so you really want it before
> then.

Understood.  (Perhaps mod_sysfs_setup() could sneak in ahead.)


> > Was the latter part of the change intended & necessary?  It is
> > negatively impacting systemtap, which was relying on
> > MODULE_STATE_COMING being called from a fairly complete module
> > state - just before the actual initializer function call.

> Notifiers suck for stuff like this :( Module state has many steps,
> so my preference has been to open-code explicit hooks.  [...]

You mean something like the trace_module_load()?  (We will probably
experiment with hooking into that tracepoint instead of the notifier.)
A more hard-coded one with an in-kernel callee probably wouldn't help
module-resident clients like us.


- FChE

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: timing of module MODULE_STATE_COMING notifier
  2015-08-31 12:53   ` Frank Ch. Eigler
@ 2015-08-31 20:40     ` Frank Ch. Eigler
  2015-09-02  6:02       ` Rusty Russell
  0 siblings, 1 reply; 5+ messages in thread
From: Frank Ch. Eigler @ 2015-08-31 20:40 UTC (permalink / raw)
  To: Rusty Russell; +Cc: linux-kernel

Hi, Rusty -


I wrote:

> [...]
> > Notifiers suck for stuff like this :( Module state has many steps,
> > so my preference has been to open-code explicit hooks.  [...]
> 
> You mean something like the trace_module_load()?  (We will probably
> experiment with hooking into that tracepoint instead of the notifier.)
> [...]

It turns out this works OK, except for EXPORT_TRACEPOINT_SYMBOL_GPL.
Could we get a set of EXPORT_TRACEPOINT_SYMBOL_GPL's for the
trace/events/module.h tracepoints (at least module_load and
module_free)?


- FChE

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: timing of module MODULE_STATE_COMING notifier
  2015-08-31 20:40     ` Frank Ch. Eigler
@ 2015-09-02  6:02       ` Rusty Russell
  0 siblings, 0 replies; 5+ messages in thread
From: Rusty Russell @ 2015-09-02  6:02 UTC (permalink / raw)
  To: Frank Ch. Eigler; +Cc: linux-kernel

"Frank Ch. Eigler" <fche@redhat.com> writes:
> Hi, Rusty -
>
>
> I wrote:
>
>> [...]
>> > Notifiers suck for stuff like this :( Module state has many steps,
>> > so my preference has been to open-code explicit hooks.  [...]
>> 
>> You mean something like the trace_module_load()?  (We will probably
>> experiment with hooking into that tracepoint instead of the notifier.)
>> [...]
>
> It turns out this works OK, except for EXPORT_TRACEPOINT_SYMBOL_GPL.
> Could we get a set of EXPORT_TRACEPOINT_SYMBOL_GPL's for the
> trace/events/module.h tracepoints (at least module_load and
> module_free)?

Sure, patch welcome.

Cheers,
Rusty.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-09-02  6:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-31  0:06 timing of module MODULE_STATE_COMING notifier Frank Ch. Eigler
2015-08-31  1:36 ` Rusty Russell
2015-08-31 12:53   ` Frank Ch. Eigler
2015-08-31 20:40     ` Frank Ch. Eigler
2015-09-02  6:02       ` Rusty Russell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox