lkml.org 
[lkml]   [2011]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] jump_label,x86: use text_poke_smp_batch for entries update
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?

Thanks,

-Jason


\
 
 \ /
  Last update: 2011-04-29 17:17    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site