Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Kernel code: executing once on each CPU?

0 views
Skip to first unread message

Martin Cracauer

unread,
Feb 3, 2009, 12:57:28 PM2/3/09
to
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 <crac...@cons.org> http://www.cons.org/cracauer/
FreeBSD - where you want to go, today. http://www.freebsd.org/
_______________________________________________
freeb...@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-smp
To unsubscribe, send any mail to "freebsd-smp...@freebsd.org"

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-...@muc.de

Julian Elischer

unread,
Feb 3, 2009, 1:54:12 PM2/3/09
to
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

Kostik Belousov

unread,
Feb 3, 2009, 2:55:48 PM2/3/09
to
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.

0 new messages