From: "Martin J. Bligh" <mbligh@aracnet.com>
To: Erich Focht <efocht@hpce.nec.com>
Cc: Andi Kleen <ak@suse.de>, LSE <lse-tech@lists.sourceforge.net>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [Lse-tech] Node affine NUMA scheduler extension
Date: Tue, 27 May 2003 14:51:54 -0700 [thread overview]
Message-ID: <2640000.1054072312@[10.10.2.4]> (raw)
In-Reply-To: <200305272328.27269.efocht@hpce.nec.com>
--Erich Focht <efocht@hpce.nec.com> wrote (on Tuesday, May 27, 2003 23:28:27 +0200):
> On Tuesday 27 May 2003 17:38, Martin J. Bligh wrote:
>> > Interesting observation, I didn't make it when I tried the lazy
>> > homenode (quite a while ago). But I was focusing on MPI jobs. So what
>> > if we add a condition to CAN_MIGRATE which disables the cache affinity
>> > before the first load balance?
> ...
>>
>> It'd be nice not to require user intervention here ... is it OK to
>> set CAN_MIGRATE for all clone operations?
>
> Do you think of something like:
>
># define CAN_MIGRATE_TASK(p,rq,this_cpu) \
> (HOMENODE_UNSET(p) && \ //<--
> (jiffies - (p)->last_run > cache_decay_ticks) && \
> !task_running(rq, p) && \
> ((p)->cpus_allowed & (1UL << (this_cpu))))
>
> curr = curr->prev;
>
> if (!CAN_MIGRATE_TASK(tmp, busiest, this_cpu)
> || !numa_should_migrate(tmp, busiest, this_cpu)) {
> if (curr != head)
> goto skip_queue;
> idx++;
> goto skip_bitmap;
> }
> if (HOMENODE_UNSET(tmp)) //<--
> set_task_node(tmp,cpu_to_node(this_cpu)); //<--
> pull_task(busiest, array, tmp, this_rq, this_cpu);
> if (!idle && --imbalance) {
> ...
>
> ?
> Guess this would help a bit for multithreaded jobs. Chosing the
> homenode more carefully here would be pretty expensive.
My first instinct is that #define'ing CAN_MIGRATE_TASK in the midst
of a function needs to die a horrible death ;-) But you didn't start
that one, so other than that ...
My instinct would tell me the first expression should be ||, not &&
but I'm not 100% sure. And is this restricted to just clones? Doesn't
seem to be, unless that's implicit in homenode_unset?
M.
next prev parent reply other threads:[~2003-05-27 21:39 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-27 8:31 Erich Focht
2003-05-27 9:11 ` [Lse-tech] " Andi Kleen
2003-05-27 9:54 ` Erich Focht
2003-05-27 10:01 ` Andi Kleen
2003-05-27 11:39 ` Erich Focht
2003-05-27 11:40 ` Andi Kleen
2003-05-27 11:50 ` Erich Focht
2003-05-27 15:38 ` Martin J. Bligh
2003-05-27 21:28 ` Erich Focht
2003-05-27 21:51 ` Martin J. Bligh [this message]
2003-05-28 17:02 ` Erich Focht
2003-05-28 17:13 ` Martin J. Bligh
2003-05-28 18:14 ` Rick Lindsley
2003-05-28 19:32 ` Martin J. Bligh
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='2640000.1054072312@[10.10.2.4]' \
--to=mbligh@aracnet.com \
--cc=ak@suse.de \
--cc=efocht@hpce.nec.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lse-tech@lists.sourceforge.net \
/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®