mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Con Kolivas <kernel@kolivas.org>
To: don fisher <dfisher@as.arizona.edu>
Cc: linux-kernel@vger.kernel.org
Subject: Re: sched_setaffinity(), RT priorities and migration thread usage at 30%
Date: Tue, 07 Sep 2004 08:59:47 +1000	[thread overview]
Message-ID: <cone.1094511587.419898.6110.502@pc.kolivas.org> (raw)
In-Reply-To: <413CE863.3050400@as.arizona.edu>

don fisher writes:

> Hello,
> 
> Apologies in advance if this is a newbie question. I am attempting to 
> write a real-time simulation of an application we have in house. I 
> have a dual processor SMP system, hyperthreading enabled, running 
> kernel 2.6.7.
> 
> The first thread begins at priority 1 (SCHED_RR) and subsequently 
> spawns another time critical task running at priority 2. The initial 
> thread uses setaffinity to set the desired cpu to 2. When the second 
> task begins, the migration thread becomes 30% active (as reported by 
> top) for the duration of its execution. When the priority 2 thread 
> terminates the first thread continues with the migration task 
> consuming only 2% of the CPU.
> 
> If there was any change, I was expecting that the higher priority of 
> the second thread would cause it to execute closer to 100% CPU. I 
> built a test code where each thread computes an identical dumb timing 
> loop. The priority 2 thread ends up executing 30% slower than the 
> priority 1 thread due to contention with the migration thread.
> 
> Is this the expected behavior, and if so could you please inform me 
> why? I had not anticipated the any attempt by the kernel to shift the 
> process to another CPU, since sched_setafinity had been applied.
> 
> I want to confirm that from xosview, both tasks do actually execute 
> serially on processor 2 as expected. Code is include below.

Yes this is a problem with the balancing code in SMP. It will continually 
keep trying to balance the now unbalanced cpus (2 tasks on one cpu and the 
other cpu idle) despite the fact that the affinity is set for those 2 tasks 
to run on the other cpu. The balancing code is not smart enough (yet?) to 
recognise that there is no point trying to balance processes that you don't 
want balanced.

Con


  reply	other threads:[~2004-09-06 22:59 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-06 22:44 don fisher
2004-09-06 22:59 ` Con Kolivas [this message]
2004-09-06 23:12 ` Nick Piggin

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=cone.1094511587.419898.6110.502@pc.kolivas.org \
    --to=kernel@kolivas.org \
    --cc=dfisher@as.arizona.edu \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®