public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Anton Blanchard <anton@samba.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: linux-kernel@vger.kernel.org,
	Linus Torvalds <torvalds@transmeta.com>,
	Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: [announce] [patch] ultra-scalable O(1) SMP and UP scheduler
Date: Fri, 4 Jan 2002 21:30:18 +1100	[thread overview]
Message-ID: <20020104103018.GA22745@krispykreme> (raw)
In-Reply-To: <Pine.LNX.4.33.0201040050440.1363-100000@localhost.localdomain>
In-Reply-To: <Pine.LNX.4.33.0201040050440.1363-100000@localhost.localdomain>


Great stuff Ingo!

> now that new-year's parties are over things are getting boring again. For
> those who want to see and perhaps even try something more complex, i'm
> announcing this patch that is a pretty radical rewrite of the Linux
> scheduler for 2.5.2-pre6:

Good timing :) We were just looking at an application that hit sched_yield
heavily on a large SMP machine (dont have the source so fixing the
symptoms not the cause). Performance was pretty bad with the standard
scheduler.

We managed to get a 4 way ppc64 machine to boot, but unfortunately the
18 way hung somewhere after smp initialisation and before execing
init. More testing to come :)

Is the idle loop optimisation (atomic exchange -1 into need_resched
to avoid IPI) gone forever?

Is my understanding of this right?:

#define BITMAP_SIZE (MAX_RT_PRIO/8+1)

...

char bitmap[BITMAP_SIZE+1];
list_t queue[MAX_RT_PRIO];

You have an bitmap of size MAX_RT_PRIO+1 (actually I think you have one too
many +1 here :) and you zero the last bit to terminate it. You use
find_first_zero_bit to search the entire priority list and
sched_find_first_zero_bit to search only the first MAX_PRIO (64) bits.

> the SMP load-balancer can be extended/switched with additional parallel
> computing and cache hierarchy concepts: NUMA scheduling, multi-core CPUs
> can be supported easily by changing the load-balancer. Right now it's
> tuned for my SMP systems.

It will be interesting to test this on our HMT hardware.

> - the SMP idle-task startup code was still racy and the new scheduler
> triggered this. So i streamlined the idle-setup code a bit. We do not call
> into schedule() before all processors have started up fully and all idle
> threads are in place.

I like this cleanup, it pushes more stuff out the arch specific code
into init_idle().

> another benchmark measures sched_yield() performance. (which the pthreads
> code relies on pretty heavily.)

Can you send me this benchmark and I'll get some more results :)

I dont think pthreads uses sched_yield on spinlocks any more, but there
seems to be enough userspace code that does. 

Anton

  parent reply	other threads:[~2002-01-04 10:34 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-04  2:19 [announce] [patch] ultra-scalable O(1) SMP and UP scheduler Ingo Molnar
2002-01-04  4:27 ` Oliver Xymoron
2002-01-04  5:34 ` Ian Morgan
2002-01-04 10:30 ` Anton Blanchard [this message]
2002-01-04 12:53   ` Ingo Molnar
2002-01-04 14:18 ` Thomas Cataldo
2002-01-04 14:46 ` dan kelley
2002-01-04 17:07   ` Ingo Molnar
2002-01-04 15:22     ` Nikita Danilov
2002-01-05  4:33 ` Davide Libenzi
2002-01-05 20:24   ` Ingo Molnar
2002-01-05 19:49     ` Mika Liljeberg
2002-01-05 22:00       ` Ingo Molnar
2002-01-05 21:04         ` Mika Liljeberg
2002-01-05 23:04     ` Davide Libenzi
2002-01-05 23:41       ` Alan Cox
2002-01-05 23:46         ` Davide Libenzi
2002-01-06  0:47       ` Linus Torvalds
2002-01-06  2:57         ` Ingo Molnar
2002-01-06  1:27           ` Linus Torvalds
2002-01-06  1:45             ` Davide Libenzi
2002-01-06  3:55               ` Ingo Molnar
2002-01-06  2:16                 ` Davide Libenzi
2002-01-06  3:41             ` Ingo Molnar
2002-01-06  2:02               ` Davide Libenzi
2002-01-06  2:13                 ` Alan Cox
2002-01-06  2:12                   ` Davide Libenzi
2002-01-06  2:20                     ` Alan Cox
2002-01-06  2:17                       ` Davide Libenzi
2002-01-06  3:30                   ` 2.4.17 kernel without modules...was " Vikram
2002-01-06  4:07                   ` [announce] [patch] ultra-scalable O(1) " Ingo Molnar
2002-01-06  2:23                     ` Davide Libenzi
2002-01-06  2:30                     ` Alan Cox
2002-01-06  4:19                       ` Ingo Molnar
2002-01-07  3:08                   ` Richard Henderson
2002-01-07  3:16                     ` Linus Torvalds
2002-01-07  3:31                       ` Davide Libenzi
2002-01-07  3:34                         ` Linus Torvalds
2002-01-07  3:49                           ` Davide Libenzi
2002-01-06  4:01                 ` Ingo Molnar
2002-01-06  4:08               ` Ingo Molnar
2002-01-06  4:16                 ` Ingo Molnar
2002-01-06  3:55                   ` Luc Van Oostenryck
2002-01-07  8:00             ` Jens Axboe
2002-01-06  2:49       ` Ingo Molnar
2002-01-07  2:58 ` Rusty Russell
  -- strict thread matches above, loose matches on Subject: below --
2002-01-04  3:56 Ed Tomlinson
2002-01-04  7:42 Dieter Nützel
2002-01-04  8:02 ` David Lang
2002-01-04 11:44   ` Ingo Molnar
2002-01-04 11:33     ` David Lang
2002-01-04 13:39       ` Andrea Arcangeli
2002-01-04 14:04       ` Ingo Molnar
2002-01-04 13:36     ` Andrea Arcangeli
2002-01-04 15:44       ` Ingo Molnar
2002-01-04 14:45         ` Andrea Arcangeli
2002-01-04 11:16 rwhron
2002-01-04 13:20 ` Ingo Molnar
     [not found] <20020104074239.94E016DAA6@mail.elte.hu>
2002-01-04 11:42 ` Ingo Molnar
2002-01-05  0:28   ` Roger Larsson
2002-01-05  7:53     ` george anzinger
2002-01-05 16:54       ` Robert Love
2002-01-05 12:42     ` Ingo Molnar
2002-01-07 17:34 Rene Rebe
     [not found] <20020107.191742.730580837.rene.rebe@gmx.net>
     [not found] ` <Pine.LNX.4.33.0201072124380.14212-100000@localhost.localdomain>
2002-01-07 19:53   ` Rene Rebe

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=20020104103018.GA22745@krispykreme \
    --to=anton@samba.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=torvalds@transmeta.com \
    /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