Trond Myklebust wrote:
On Wed, 2005-12-21 at 17:00 +1100, Peter Williams wrote:
This patch addresses the adverse effect that the NFS client can have on
interactive response when CPU bound tasks (such as a kernel build)
operate on files mounted via NFS. (NB It is emphasized that this has
nothing to do with the effects of interactive tasks accessing NFS
mounted files themselves.)
The problem occurs because tasks accessing NFS mounted files for data
can undergo quite a lot of TASK_INTERRUPTIBLE sleep depending on the
load on the server and the quality of the network connection. This can
result in these tasks getting quite high values for sleep_avg and
consequently a large priority bonus. On the system where I noticed this
problem they were getting the full 10 bonus points and being given the
same dynamic priority as genuine interactive tasks such as the X server
and rythmbox.
The solution to this problem is to use TASK_NONINTERACTIVE to tell the
scheduler that the TASK_INTERRUPTIBLE sleeps in the NFS client and
SUNRPC are NOT interactive sleeps.
Sorry. That theory is just plain wrong. ALL of those case _ARE_
interactive sleeps.
It's not a theory. It's a result of observing a -j 16 build with the
sources on an NFS mounted file system with top with and without the
patches and comparing that with the same builds with the sources on a
local file system. Without the patches the tasks in the kernel build
all get the same dynamic priority as the X server and other interactive
programs when the sources are on an NFS mounted file system. With the
patches they generally have dynamic priorities between 6 to 10 higher
than the X server and other interactive programs.
In both cases, when the build is run on a source on a local file system
the kernel build tasks all have dynamic priorities 6 to 10 higher than
the X server and other interactive programs.
In all cases, the dynamic priorities of the X server and other
interactive programs are the same.
In the testing that I have done so far the patch has not resulted in any
genuine interactive tasks not being identified as interactive.
Peter
PS There's a difference between interruptible and interactive in that
while all interactive sleeps will be interruptible not all interruptible
sleeps are interactive. Ingo introduced TASK_NONINTERACTIVE to enable
this distinction to be made.
--
Peter Williams [email protected]
"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]