From owner-p4-projects@FreeBSD.ORG Mon Oct 11 20:49:00 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 730F416A4D1; Mon, 11 Oct 2004 20:49:00 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 36DF816A4CE for ; Mon, 11 Oct 2004 20:49:00 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2BF4443D31 for ; Mon, 11 Oct 2004 20:49:00 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i9BKn0U3092123 for ; Mon, 11 Oct 2004 20:49:00 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i9BKmx0Q092120 for perforce@freebsd.org; Mon, 11 Oct 2004 20:48:59 GMT (envelope-from jhb@freebsd.org) Date: Mon, 11 Oct 2004 20:48:59 GMT Message-Id: <200410112048.i9BKmx0Q092120@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 63010 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Oct 2004 20:49:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=63010 Change 63010 by jhb@jhb_twclab on 2004/10/11 20:48:34 - Remove superflous nothing comments. - Use cpu_spinwait() in the rendezvous spins. - Correct the counter indices for the second and third spins. Affected files ... .. //depot/projects/smpng/sys/kern/subr_smp.c#38 edit Differences ... ==== //depot/projects/smpng/sys/kern/subr_smp.c#38 (text+ko) ==== @@ -284,7 +284,6 @@ /* wait for each to clear its bit */ while ((stopped_cpus & map) != 0) - /* nothing */ cpu_spinwait(); return 1; @@ -306,21 +305,26 @@ /* Ensure we have up-to-date values. */ atomic_add_acq_int(&smp_rv_waiters[0], 1); while (smp_rv_waiters[0] < mp_ncpus) - ; /* nothing */ + cpu_spinwait(); + /* setup function */ if (smp_rv_setup_func != NULL) smp_rv_setup_func(smp_rv_func_arg); + /* spin on entry rendezvous */ atomic_add_int(&smp_rv_waiters[1], 1); - while (smp_rv_waiters[0] < mp_ncpus) - ; /* nothing */ + while (smp_rv_waiters[1] < mp_ncpus) + cpu_spinwait(); + /* action function */ if (smp_rv_action_func != NULL) smp_rv_action_func(smp_rv_func_arg); + /* spin on exit rendezvous */ atomic_add_int(&smp_rv_waiters[2], 1); - while (smp_rv_waiters[1] < mp_ncpus) - ; /* nothing */ + while (smp_rv_waiters[2] < mp_ncpus) + cpu_spinwait(); + /* teardown function */ if (smp_rv_teardown_func != NULL) smp_rv_teardown_func(smp_rv_func_arg);