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
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to