Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Nov 1996 14:17:52 -0800
From:      David Greenman <dg@Root.COM>
To:        Steve Passe <smp@csn.net>
Cc:        freebsd-smp@freefall.freebsd.org, Peter Wemm <peter@spinner.dialix.com>
Subject:   Re: SMP -current merge 
Message-ID:  <199611232217.OAA01895@root.com>
In-Reply-To: Your message of "Sat, 23 Nov 1996 14:47:16 MST." <199611232147.OAA19699@clem.systemsix.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
>I think I just made an important breakthru on SMP efficiency.  It has always
>bugged me that many things take longer to do with 2 CPUs running than with
>just 1 active.  While looking for the current SMP "brokenness" (still haven't
>got a clue...) I noticed in sys/kern/init_main.c:smp_idleloop() the line:
>
>		if (whichqs || whichrtqs || whichidqs) {
>
>appears to look in the queue of idle procs.  my debugs seem to show
>the 2nd CPU switching back and forth from one idle proc to the other
>as a result.  It appears that the 2nd CPU is spending ALOT of
>time grabbing the lock, switching idle procs, and releaseing the lock
>again!  This seems like it is both unnecessary and wasting bus cycles.

   Uhh, the "idle" queue shouldn't have anything on it unless there is an
"idprio" process running. If this patch truely makes a difference, then
there is something very wrong with the handling of whichidqs somewhere.

-DG

David Greenman
Core-team/Principal Architect, The FreeBSD Project



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611232217.OAA01895>