Re: HT scheduler: is it really correct? or is it feature of HT?

From: Con Kolivas
Date: Wed May 18 2005 - 16:59:39 EST


On Thu, 19 May 2005 04:42, Tetsuji "Maverick" Rai wrote:
> I'm wondering linux kernel's HT support is correct or not, or whether
> it's a feature of P4 HT.
>
> I'm running boinc/seti in the background with nice=19 on my P4 2.8G HT
> enabled linux box, kernel 2.6.11.9, where SMT/HT is enabled.
>
> I often watch system monitor applet on gnome desktop or top command in
> a termianl window and see when no other applications than boinc is
> running, boinc takes full power of both virtual cpus. It is designed
> to run to "fill" the idle power of the cpu(s). However any
> application is running, there is always some "idle" part appears on
> virtual cpus, hence it looks like it wastes up to half of cpu power as
> "idle."
>
> For ex, see this "top" result while a vmware is running. (HT is
> enabled) setiathome-4.7(blah--) are the background boinc applications
> with nice=19.

Hyperthread sibling cpus share cpu power. If you let a nice 19 task run full
power on the sibling cpu of a nice 0 task it will drain performance from the
nice 0 task and make it run approximately 40% slower. The only way around
this is to temporarily make the sibling run idle so that a nice 0 task gets
the appropriate proportion of cpu resources compared to a nice 19 task. It is
intentional and quite unique to the linux cpu scheduler as far as I can tell.
On any other scheduler or OS a nice 19 "background" task will make your
machine run much slower.

Cheers,
Con

Attachment: pgp00000.pgp
Description: PGP signature