RE: Re: sched_yield proposals/rationale

From: Buytaert_Steven
Date: Wed Apr 18 2007 - 01:41:01 EST




> -----Original Message-----
> From: linux-kernel-owner@xxxxxxxxxxxxxxx [mailto:linux-kernel-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Bill Davidsen
> Sent: dinsdag 17 april 2007 21:38
> To: linux-kernel@xxxxxxxxxxxxxxx
> Cc: Buytaert, Steven; andi@xxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: sched_yield proposals/rationale
>
> Mark Lord wrote:
> >
> > Cool. You *do know* that there is a brand new CPU scheduler
> > scheduled to replace the current one for the 2.6.22 Kernel, right?
> >
> Having tried both nicksched and Con's fair sched on some normal loads,
> as opposed to benchmarks, I sure hope Linus changes his mind about
> having several schedulers in the kernel. The "one perfect and
> self-adjusting scheduler" isn't here yet.

I have the same opinion, and it is still a long time out I'm afraid. Probably people only read my suggestion for a 'fix' diagonally, let alone they read my footer. Too bad the archives only go back to 95, I would love to retrieve my posts from 93. Anybody still have these?

Now a bit more on topic:

1) My problem is/was solved by making the default time slice much smaller than the default 100 in a 250Hz system. But that's only masking it away.

2) I made a schedstat program sort of like vmstat that samples and prints deltas each second (from /proc/schedstat). Just printing the jiffies delta and the # times schedule is called per CPU, is already thought provoking; a small 12 second example:

2.6.16 vanilla scheduler

Jiffies CPU0 CPU1
Delta
250 | 1756 | 7301 |
252 | 1730 | 2638 |
254 | 1963 | 1663 |
385 | 868 | 658 | <--- stall starts
325 | 138 | 112 |
330 | 184 | 130 |
339 | 682 | 122 |
335 | 367 | 159 |
334 | 653 | 127 |
345 | 467 | 137 |
335 | 673 | 128 |
337 | 471 | 131 |
334 | 673 | 127 |
332 | 321 | 144 |
333 | 523 | 129 |
332 | 98 | 123 |
356 | 496 | 124 |
270 | 96 | 87 |
277 | 5878 | 26228 | <-- yes 26K
252 |18263 | 19130 | ...
255 | 2024 | 5747 | <-- back to normal

Let's talk about fairness when we get the basics right. And yes, the real physical elapsed time per line IS 1 second, so the jiffies jumping up from the normal expected value of 250 to up to 356 is not normal; it's in fact very very bad. This box was unusable for 13 seconds in a row.

But this doesn't look serious enough to most people, it seems.

Steven Buytaert
--
La perfection est atteinte non quand il ne reste rien ajouter, mais quand il ne reste rien à enlever. (Antoine de Saint-Exupéry)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/