Date: Sun, 23 Mar 2008 03:47:58 GMT From: John Birrell <jb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 138327 for review Message-ID: <200803230347.m2N3lwW7071326@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=138327 Change 138327 by jb@jb_freebsd1 on 2008/03/23 03:47:53 Ensure the sync includes the current CPU. Fix the bug where the current CPU would get called twice, Affected files ... .. //depot/projects/dtrace/src/sys/kern/subr_smp.c#13 edit Differences ... ==== //depot/projects/dtrace/src/sys/kern/subr_smp.c#13 (text+ko) ==== @@ -376,7 +376,7 @@ mtx_lock_spin(&smp_ipi_mtx); /* set static function pointers */ - smp_rv_cpumask = map & ~(1 << curcpu); + smp_rv_cpumask = map; smp_rv_setup_func = setup_func; smp_rv_action_func = action_func; smp_rv_teardown_func = teardown_func; @@ -386,11 +386,10 @@ atomic_store_rel_int(&smp_rv_waiters[0], 0); /* signal other processors, which will enter the IPI with interrupts off */ - ipi_selected(map, IPI_RENDEZVOUS); + ipi_selected(map & ~(1 << curcpu), IPI_RENDEZVOUS); /* Check if the current CPU is in the map */ if ((map & (1 << curcpu)) != 0) - /* call executor function for the current CPU */ smp_rendezvous_action(); if (teardown_func == smp_no_rendevous_barrier)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200803230347.m2N3lwW7071326>