svn commit: r216252 - head/sys/cddl/dev/cyclic/i386
Andriy Gapon
avg at freebsd.org
Tue Dec 7 12:24:49 UTC 2010
on 07/12/2010 14:04 Andriy Gapon said the following:
> Author: avg
> Date: Tue Dec 7 12:04:06 2010
> New Revision: 216252
> URL: http://svn.freebsd.org/changeset/base/216252
>
> Log:
> opensolaris cyclic xcall: no need for special handling of curcpu
>
> smp_rendezvous_cpus already properly handles current CPU case
> and non-SMP case.
This could also lead to problems because a thread could be not pinned to its
current CPU during direct (*func)(param) call.
> MFC after: 3 weeks
>
> Modified:
> head/sys/cddl/dev/cyclic/i386/cyclic_machdep.c
>
> Modified: head/sys/cddl/dev/cyclic/i386/cyclic_machdep.c
> ==============================================================================
> --- head/sys/cddl/dev/cyclic/i386/cyclic_machdep.c Tue Dec 7 09:19:47 2010 (r216251)
> +++ head/sys/cddl/dev/cyclic/i386/cyclic_machdep.c Tue Dec 7 12:04:06 2010 (r216252)
> @@ -121,13 +121,7 @@ static void reprogram(cyb_arg_t arg, hrt
>
> static void xcall(cyb_arg_t arg, cpu_t *c, cyc_func_t func, void *param)
> {
> - /*
> - * If the target CPU is the current one, just call the
> - * function. This covers the non-SMP case.
> - */
> - if (c == &solaris_cpu[curcpu])
> - (*func)(param);
> - else
> - smp_rendezvous_cpus((cpumask_t) (1 << c->cpuid), NULL,
> - func, smp_no_rendevous_barrier, param);
> +
> + smp_rendezvous_cpus((cpumask_t) (1 << c->cpuid), NULL,
> + func, smp_no_rendevous_barrier, param);
> }
--
Andriy Gapon
More information about the svn-src-head
mailing list