lkml.org 
[lkml]   [2005]   [Dec]   [21]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 21 Dec 2005 17:32:52 +1100
FromPeter Williams <>
SubjectRe: [PATCH] sched: Fix adverse effects of NFS client on interactive response
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                                   pwil3058@bigpond.net.au

"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 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/

\
 
 \ /
  Last update: 2005-12-21 07:35    [from the cache]
©2003-2008