* 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