Date: Sat, 1 Feb 2003 16:41:40 -0500 From: Bosko Milekic <bmilekic@unixdaemons.com> To: Terry Lambert <tlambert2@mindspring.com> Cc: Matthew Dillon <dillon@apollo.backplane.com>, "Daniel C. Sobral" <dcs@tcoip.com.br>, Trish Lynch <trish@bsdunix.net>, freebsd-current@FreeBSD.ORG Subject: Re: Hyperthreading and machdep.cpu_idle_hlt Message-ID: <20030201164140.B13358@unixdaemons.com> In-Reply-To: <3E3C3C0D.15722918@mindspring.com>; from tlambert2@mindspring.com on Sat, Feb 01, 2003 at 01:28:45PM -0800 References: <20030131125804.E1357-100000@femme> <200301311824.h0VIOtmF095380@apollo.backplane.com> <3E3AC33E.9060204@tcoip.com.br> <200301311908.h0VJ8cNZ007396@apollo.backplane.com> <20030131141700.A7526@unixdaemons.com> <200301311952.h0VJqrMB076135@apollo.backplane.com> <20030201100412.B11945@unixdaemons.com> <3E3C327F.FD9E26F7@mindspring.com> <20030201160547.A13169@unixdaemons.com> <3E3C3C0D.15722918@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Feb 01, 2003 at 01:28:45PM -0800, Terry Lambert wrote: > Bosko Milekic wrote: > > > > Or, as I explained in my previous post, only HLT the [virtual] CPU if > > > > the other [virtual] CPU that is sharing the same execution & cache > > > > units is not HLT'd itself. If the other one is HLT'd, then not do the > > > > HLT. > > > > > > Actually, why is that? Why would you not want to HLT all the > > > units that are not being used? > > > > Because, the comment explains, a halted CPU will not pick up a new > > thread off the run queue until the next timer tick. So if all your > > logical units are idled then you can afford to just loop checking > > whether something is runnable without interfering with the performance > > of other threads running on a different logical cpu sharing your > > execution unit (because the other logical units are idle anyway). > > That way, you don't have to necessarily wait for the next timer tick > > to check whether something is runnable, especially if it's made > > runnable before. The disadvantage is that you don't really economize > > on power consumption. > > There's an assumption in there of a shared scheduler queue, and a > lack of CPU affinity (or negaffinity, for multiple threads in a > single process), isn't there? Well, euh, yeah, the runqueue was global the last time I checked (Jeff R.'s new stuff aside). Maybe I'm just out of it, I don't know. [... other probably meaningful stuff that makes the assumption that we do have per-CPU queues protected by their own locks ...] -- Bosko Milekic * bmilekic@unixdaemons.com * bmilekic@FreeBSD.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030201164140.B13358>