Date: Wed, 05 Sep 2012 10:02:07 +0300 From: Andriy Gapon <avg@FreeBSD.org> To: Ryan Stone <rysto32@gmail.com> Cc: FreeBSD Current <freebsd-current@FreeBSD.org> Subject: Re: machdep.hyperthreading_allowed does not affect SMT cores Message-ID: <5046F8EF.7070403@FreeBSD.org> In-Reply-To: <CAFMmRNy6V91LQJzaSmet5FcmKA_Fihy-uxYBcmwYHaCV7fntdg@mail.gmail.com> References: <CAFMmRNy6V91LQJzaSmet5FcmKA_Fihy-uxYBcmwYHaCV7fntdg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
on 04/09/2012 19:01 Ryan Stone said the following: > I have a Intel Sandy Bridge system that reports that it has SMT cores > instead of HTT(under a derivative of FreeBSD 8.2). I'll admit that I > don't at all understand the distinction between the two -- I thought > that HTT was just Intel's name for SMT. In any case, is there any > reason that machdep.hyperthreading_allowed should not apply to SMT > cores, too? I tend to agree with you. What we have now is a historic artifact. For reasons, that are irrelevant now, "HTT" is used as a code name for "old" Intel's SMT aka HTT and "SMT" is used for "newer" Intel's SMT aka HTT. It was considered that old HTT was "bad and ugly" and new HTT was good. So all kinds of limitations were applied to the old one and not to the new one. While there is certain truth to that distinction, what FreeBSD currently does is still illogical. HTT is still HTT whether it's new or old. E.g. I think that it doesn't make sense to assign interrupts to the second thread with either version of HTT. Besides, I think that the current CPU detection code sucks at deciding which HTT is which. I have some new SMP topology detection code in the works. It eliminates the artificial difference and retires "HTT" name in favor of the vendor-agnostic "SMT". I just a final push to tidy up that code before suggesting it for the tree. But I wasn't able to make that push in over a year, sigh... -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5046F8EF.7070403>