Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Mar 2006 13:45:40 -0500
From:      Bill Moran <wmoran@collaborativefusion.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        bseklecki@collaborativefusion.com, freebsd-amd64@freebsd.org
Subject:   Re: How is hyperthreading handled on amd64?
Message-ID:  <20060313134540.506b6b46.wmoran@collaborativefusion.com>
In-Reply-To: <200603131052.29655.jhb@freebsd.org>
References:  <20060313085431.0eb059d9.wmoran@collaborativefusion.com> <200603131052.29655.jhb@freebsd.org>

index | next in thread | previous in thread | raw e-mail

On Mon, 13 Mar 2006 10:52:28 -0500
John Baldwin <jhb@freebsd.org> wrote:

> On Monday 13 March 2006 08:54, Bill Moran wrote:
> > 
> > We've got some dell servers (Poweredge 2850 is specifically what
> > the following tests were run on).  Some of the behaviour we're
> > seeing was unexpected.  In particular, I'm rather fuzzy as to
> > how an amd64 kernel handles hyperthreading.  (Personally, I'm also
> > a little fuzzy on whether this really is hyperthreading under amd64
> > at all)
> > 
> > After building a kernel with SMP, I do see 2 logical processors,
> > and top(1) shows both of them doing their thing.  However,
> > machdep.hypterthreading_allowed is set to 0.  Is the amd64 kernel
> > ignoring this value, or is top(1) reporting incorrectly?
> > 
> > Additionally, I'm not seeing the performance I'm accustomed to on
> > hypterthreaded machines.  Usually, throughput scales when hyperthreading
> > is enabled and more than one process are fighting for CPU.  In my
> > tests, it seems as if there is no scaling whatsoever.  i.e.:  On
> > a standard hyperthreaded machine, running 1 ubench might yield a
> > CPU value of 100,000.  Running two ubench simultaneously will usually
> > result in each of them returning ~90,000 or so.  With the amd64, I
> > end up with each one around 50,000 - as if there were no second
> > logical CPU (despite the fact that top(1) shows both in use).
> > 
> > dmesg attached.  I can provide more information on request.
> 
> Your dmesg is from a kernel that doesn't include 'options SMP' and is
> thus only using 1 CPU.

Really?  I've triple-checked at this point and:
1) The kernel config file has "options SMP"
2) The running kernel was made from #1
3) top(1) shows cpus 0 and 1

I can't argue that the boot messages don't seem to show anything to
indicate that a second logical CPU was found.

-- 
Bill Moran
Collaborative Fusion Inc.


home | help

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