Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 02 Jun 2005 09:58:35 +0800
From:      Erich Dollansky <oceanare@pacific.net.sg>
To:        freebsd-smp@freebsd.org
Subject:   Assignmet of CPUs
Message-ID:  <429E67CB.6090901@pacific.net.sg>

index | next in thread | raw e-mail

Hi,

it is a general problem of systems with more than one CPU to assign the 
proper CPU to a task.

The most obvious problem is the cache. If a task is migrating all the 
time, the cache has to be reloaded again and again.

The next problem is the location of the data in RAM on NUMA machines. It 
is better to leave a thread on a CPU if the RAM connected to it also has 
the data stored. This could block a task from running if to many running 
tasks have their data stored on the same CPU.

The last, but hardly used parameter, is the CPU temperature. I noticed 
that FreeBSD tends to use always the same CPU to start a task. This 
makes one CPU real hot while the other stays cool. Taking the CPU 
temperature into account for starting at least new threads would also 
have an advantage of systems with an less then ideal cooling system.

Spreading tasks all over the system with the coolest CPU being the one 
to be started next will make systems a bit cooler.

Erich


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?429E67CB.6090901>