Re: Nehalem

Robert Hyatt <[email protected]> Wed, 25 Mar 2009 08:58:43 -0500 (CDT)
Newsgroups org.kernel.vger.linux-smp
Message-ID <[email protected]>
I don't think you will have the problem with one socket.  The problem I am 
seeing deals with two sockets where balancing the process load across both 
sockets (for cache usage) and across the physical cores is a bit more than 
the current scheduler can deal with.  I run hyper-threading on a dual PIV 
and the thing does great, making sure that each physical processor gets a 
load comparable to the other one.

Nehalem looks pretty good, and with hyper-threading turned off all looks 
good.  Whether hyper-threading will be of any benefit or not is unknown. 
We are going to buy another cluster from dell with this dual-socket i7 
type of node so we can probably do just fine with hyperthreading off...



Robert M. Hyatt, Ph.D.          Computer and Information Sciences
[email protected]                   University of Alabama at Birmingham
(205) 934-2213                  136A Campbell Hall
(205) 934-5473 FAX              Birmingham, AL 35294-1170

On Wed, 25 Mar 2009, Bill Davidsen wrote:

> Robert Hyatt wrote:
>> 
>> I ran into an issue that may or may not be on the radar.  Here goes:
>> 
>> 1.  The old hyperthreading fix works well for an old PIV with 
>> hyperthreading, so that with two sockets, and 4 logical processors, the 
>> compute-bound processes get balanced across the sockets, which fixed the 
>> original hyper-threading bug everyone talked about.
>> 
>> 2.  I now have a dual-socket Nehalem box, 4 cores per socket.  Someone 
>> wanted to test hyper-threading, which I had disabled, and I found an issue.
>> 
>> It appears that the current process scheduling works fine for balancing 
>> compute-bound processes across the two sockets to optimize cache usage. But 
>> with hyper-threading, things go wrong.  If I run 4 compute-bound processes 
>> on this box, they will run two per socket just fine.  But on any one chip, 
>> it is probable that the two processes will land on the same core, which is 
>> not good.
>> 
>> My first thought was this needs a hiararchical approach.  one big run queue 
>> per socket, then N run queues per socket, one per physical core.
>> 
>> Now the load can be balanced across the two sockets / chips using the 
>> "high-level" pair of queues, and then balanced across the physical cores on 
>> each socket using the low-level queues, to avoid running two processes on 
>> one physical core, and none on another.
>> 
>> Is a fix already in the works for this, or is this a new issue?  I am 
>> running 2.6.28.8 on this box.  I am also not so happy with turbo-boost 
>> either as it is giving some erratic timing data which I don't like for my 
>> benchmark and tweak software development.  But that's another issue. not 
>> kernel-related.
>
> This might be an issue for me as well, I've just ordered parts to build 
> several servers based on the i7 architecture, so I will have four cores + HT 
> although they will all be in a single socket. I don't have any idea how well 
> this will work, I suppose the HT can be turned off if needed, and it will run 
> as well as the Q6600 system these will replace.
>
> -- 
> bill davidsen <[email protected]>
> CTO TMR Associates, Inc
>
> "You are disgraced professional losers. And by the way, give us our money 
> back."
>   - Representative Earl Pomeroy,  Democrat of North Dakota
> on the A.I.G. executives who were paid bonuses  after a federal bailout.
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-smp" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>