lkml.org 
[lkml]   [2008]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 0 of 9] x86/smp function calls: convert x86 tlb flushes to use function calls [POST 2]

* Nick Piggin <nickpiggin@yahoo.com.au> wrote:

> > At least we could/should perhaps standardize/generalize all the
> > 'specific' IPI handlers into the smp_function_call() framework: if
> > function address equals to a pre-cooked IPI entry point we could
> > call that function without a kmalloc. As these are all hardwired,
> > __builtin_is_constant_p() could come to the help as well. Hm?
>
> No, it's not just the function call but also payload, list entry for
> queue, scoreboard of CPUs have processed it, a lock, etc etc etc.
>
> smp_call_function is *always* going to be heavier than a hard wired
> special case, no matter how it is implemented. For such low level
> performance critical functionality, I miss the days when people were
> rabid about saving every cycle rather than every line of code ;)

no, i was thinking about really high level hardwiring, i.e. hardwiring
the _function pointer_ knowledge into smp_function_call().

for example for the reschedule IPI, it would be hardwired on x86 to just
call into the special IPI handler, via:

smp_call_function_mask(target_mask, smp_send_reschedule, NULL, 0);

Exactly same cost and call sequence as a direct hardwired-to-IPI
function call (and the same underlying mechanism) - just consolidated
around a single cross-call API.

Same for all the other special cross-CPU handlers. That way some
architectures would hardwire it, some wouldnt, etc.

Ingo


\
 
 \ /
  Last update: 2008-08-19 12:27    [W:0.115 / U:12.328 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site