Quantcast

Kernel code: executing once on each CPU?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Kernel code: executing once on each CPU?

Martin Cracauer
Is there a facility in FreeBSD that allows me to have a piece of code
executed on each processor, then return to the original thread when
that has been completed?

I need to collect some data that's local to the individual CPUs/cores.

In Linux there is/was smp_call_function(func, ...).

Martin
--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <[hidden email]>   http://www.cons.org/cracauer/
FreeBSD - where you want to go, today.      http://www.freebsd.org/
_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-smp
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Kernel code: executing once on each CPU?

Julian Elischer
Martin Cracauer wrote:
> Is there a facility in FreeBSD that allows me to have a piece of code
> executed on each processor, then return to the original thread when
> that has been completed?
>
> I need to collect some data that's local to the individual CPUs/cores.
>
> In Linux there is/was smp_call_function(func, ...).

no, though it might  be useful.

the rmlock facility does this in order to do its work (from memory)
and it would be a useful thing..
I'd even suggest that it take a bitmask of required CPUs.
that can be used in conjuction with the cpu set stuff.


>
> Martin

_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-smp
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: Kernel code: executing once on each CPU?

Konstantin Belousov
In reply to this post by Martin Cracauer
On Tue, Feb 03, 2009 at 12:57:28PM -0500, Martin Cracauer wrote:
> Is there a facility in FreeBSD that allows me to have a piece of code
> executed on each processor, then return to the original thread when
> that has been completed?
>
> I need to collect some data that's local to the individual CPUs/cores.
>
> In Linux there is/was smp_call_function(func, ...).

Look at the smp_rendezvous() in the subr_smp.c. Note that the functions
are called in quite restricted context.

attachment0 (202 bytes) Download Attachment
Loading...