Re: [PATCH] jump_label,x86: use text_poke_smp_batch for entriesupdate

From: Jiri Olsa
Date: Fri Apr 29 2011 - 11:37:54 EST


On Fri, Apr 29, 2011 at 11:15:09AM -0400, Jason Baron wrote:
> On Thu, Apr 28, 2011 at 10:52:41PM +0200, Jiri Olsa wrote:
> > Changing the jump label update code to use batch processing
> > for x86 architectures.
> >
> > Currently each jump label update calls text_poke_smp for each
> > jump label key entry. Thus one key update ends up calling stop
> > machine multiple times.
> >
>
> cool. Batching the updates is a nice idea.
>
> > This patch is using text_poke_smp_batch, which is called for
> > all the key's entries. Ensuring the stop machine is called
> > only once.
> >
>
> Since we walk the modules list per key (calling __jump_label_update()),
> this is not always the case. I'm wondering then if maybe what we want to do
> is 'queue' each update from the core code. Then, when the queue fills
> up, we flush out the queue. In this way, we cover jump labels that might
> be in both the core kernel and in modules. This also has the side effect
> of moving code such as:
>
> /*
> * The entry->code set to 0 invalidates module
> * init text
> * sections (see
> * jump_label_invalidate_module_init).
> */
> if (!entry->code || !kernel_text_address(entry->code))
> continue;
>
>
> out of the arch code into the generic code, which in my opinion is a bit
> cleaner. thoughts?

nice, we'd safe another few stop machine calls
I'll update the patch

thanks,
jirka
--
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/