On Wed, Oct 12, 2011 at 05:51:33PM +0000, Miod Vallat wrote:
> > Hi people,
>
> [...]
>
> > I'm not aiming for a "yeah, nice, we'll merge it" on this, but rather
> > for suggestions whether it's worth anyones time to pursue this further.
>
> This is interesting, there might be a good outcome of this diff
> eventually. However as of now:
> - you have removed the bunch of code which tries to make sure processes
>   do not hop between cpus unless there is a gain in doing so, on MP
>   kernels. Did you try your diff on a MP kernel?
[...]

Yes. Almost all builds I have done so far were MP kernels, which I run
almost all the time (I switch to un-patched kernels for benchmarks
only). I'll do a benchmark with an SP build though to check whether
there are any negative impacts.

> - non-tabbed indent is evil. And makes the diff harder to read.
[...]

I will clean that up.

> - I see many locks removed in there, and moving information to the proc
>   structure does not explain all of them. This gives a bad gut feeling
>   about the behaviour of this on MP kernels. A really bad gut feeling.
[...]

Works fine with two cores, but I can see where that feeling comes from.
I'll add some more explanations to my changes.

> - you have changed the roundrobin duration from (hz / 10 to (hz / 100).
>   However, this computation yields zero on platforms where hz < 100,
>   which is not a good idea. The only assumptions you can make about hz
>   is that 50 <= hz <= 1024.
[...]

Good point. I'll change that.

> - you removed the enforcement of RLIMIT_CPU. No way. Over my dead body.
> - I also don't really like switching from NQS run queues to a single
>   one. I understand you need this to be able to compare the deadlines
>   with only one queue walk, but this can become expensive with many
>   processes in the runqueue...
[...]

Right. I'm planning to move this to a real priority queue via some sort
of heap, so lookups and insertions can be done in O(log n) instead of
O(n).

> - your priority computation are unexplained magic. What does 20 mean?
>   Shouldn't at least one of them be derived from `hz'? Why << 1 versus
>   << 5? Are you sure the values you are computed are always within the
>   bounds you are expecting? Why isn't there any comment about these
>   computations?
[...]

Deriving them from hz didn't cross my mind but you are right of course.
I chose the << 5 because that makes for a relatively linear increase in
the deadlines while not overflowing the value of .tv_usec. I'll add some
explanations though.

>
> Miod
>

Thanks a lot for your time and suggestions.

--
    Gregor Best

[demime 1.01d removed an attachment of type application/pgp-signature]

Reply via email to