patch-O1int-0306281420 for 2.5.73 interactivity

From: Con Kolivas (kernel@kolivas.org)
Date: Sat Jun 28 2003 - 00:16:01 EST


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

For my sins I've included what I thought was necessary for this patch.

The interactivity for tasks is based on the sleep avg accumulated divided by
the running time of the task. However since the accumulated time is not
linear with time it now works on the premise that running time is an
exponential function entirely. Pat Erley was the genius who implemented this
simple exponential function in surprisingly low overhead integer maths.

Also added was some jiffy wrap logic (as if anyone would still be running my
patch in 50 days :P).

Long sleepers were reclassified as idle according to the new exponential
logic.

If you test, please note this works better at 1000Hz.

Attached also is my bastardised version of Ingo's timeslice granularity patch.
This round robins tasks on the active array every 10ms, which _might_ be
detrimental in throughput applications but has not been benchmarked. However
for desktops it does wonders to smoothing out the jerkiness of X and I highly
recommend using this in combination with the O1int patch.

This is very close to all the logic I wanted to implement. It might need more
tuning... Note parent penalty, child penalty and exit weight (uppercase) no
longer do anything.

Please test and comment.

Con

P.S. In the words of Zwane - there is always a corner case. Corner case I
think I still need to tackle is the application that spins madly waiting for
it's child to start, and in the process it is the parent that is starving the
child by being higher priority than it. This seems to be a coding style
anomaly brought out by the scheduler.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE+/SSSF6dfvkL3i1gRArK1AJ93sHl+I8J0qaOesShdJLvU1YENPgCglJhv
mxFcs8sAun1QNw0gz2tLJ2Q=
=S5PH
-----END PGP SIGNATURE-----





-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jun 30 2003 - 22:00:28 EST