All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Tewner <tewner@jct.ac.il>
To: linux-kernel@vger.kernel.org
Subject: Linux SMT question
Date: Wed, 29 Dec 2004 12:40:38 +0200	[thread overview]
Message-ID: <41D289A6.7050805@jct.ac.il> (raw)

I'm sorry if this has been covered before. If it has, please direct me 
on where to look.

Over the year, our university started acquiring dual Xeon servers. I 
havn't been able to find consistent information regarding how linux 
deals with the SMT (HT?). I have checked the source code, and am getting 
a few hints, but perhaps someone could help me. People both in and out 
of the university are asking me for help.

Our setup assumes a dual XEON HT IBM x335.

As far as I understand it, HT CPU's are 2 processing units sharing 
memory; a forked process runs in parallel accessing the same text 
segment, but each side maintiaining it's own Program Counter (and 
registers?), etc. Is this correct?

Does this mean that if the scheduler puts different processes on the 
same physical CPU they'll start context switching between them, 
providing slower performance than had they been on 2 physical CPU's?

Some linux releases were showing 2 CPU's, while others were showing 4. 
Was there a point where HT was incorporated in the kernel? And before 
then, what did the scheduler do?

Are the following logs related to the SMT?
mapping CPU#0's runqueue to CPU#2's runqueue.
mapping CPU#1's runqueue to CPU#3's runqueue.

What (where?) does the scheduler do to run processes on separate 
physical CPUs. I seem to remember hearing something about allocating a 
process to separate physical CPU's BEFORE using logical CPU's but 
something there doesn't sound right... I mean, if 5 processes are all 
waiting, are 4 going to be allocated (2 on each CPU) or would only 2 be 
allocated unless there are forked processes (that can run together on 2 
sibling logical CPU's). Can the scheduler know that 2 processes are related?

Finally, is there a way to force an application to run an separate 
physical CPU's? Perhaps a MOSIX-like /proc interface (where each PID has 
a special file with preferences such as keep-local)?

I'm sorry for all the questions. I havn't seen this covered in Kernel 
Traffic. The only solid information I found was at 
http://kerneltrap.org/node/391 where Ingo Molnar explains the 
requirements. What *has* been implemented?

Please CC replies. (I'll eventually join the kernel list....)

Thank you very much for your help,
    -tewner

             reply	other threads:[~2004-12-29 10:40 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-29 10:40 Michael Tewner [this message]
2004-12-29 11:22 ` Linux SMT question Brad Fitzpatrick

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=41D289A6.7050805@jct.ac.il \
    --to=tewner@jct.ac.il \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.