[lkml]   [2006]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] mm: yield during swap prefetching
    Con Kolivas <> wrote:
    > On Wed, 8 Mar 2006 11:05 am, Andrew Morton wrote:
    > > Con Kolivas <> wrote:
    > > > > yield() really sucks if there are a lot of runnable tasks. And the
    > > > > amount of CPU which that thread uses isn't likely to matter anyway.
    > > > >
    > > > > I think it'd be better to just not do this. Perhaps alter the thread's
    > > > > static priority instead? Does the scheduler have a knob which can be
    > > > > used to disable a tasks's dynamic priority boost heuristic?
    > > >
    > > > We do have SCHED_BATCH but even that doesn't really have the desired
    > > > effect. I know how much yield sucks and I actually want it to suck as
    > > > much as yield does.
    > >
    > > Why do you want that?
    > >
    > > If prefetch is doing its job then it will save the machine from a pile of
    > > major faults in the near future. The fact that the machine happens to be
    > > running a number of busy tasks doesn't alter that. It's _worth_ stealing a
    > > few cycles from those tasks now to avoid lengthy D-state sleeps in the near
    > > future?
    > The test case is the 3d (gaming) app that uses 100% cpu. It never sets delay
    > swap prefetch in any way so swap prefetching starts working. Once swap
    > prefetching starts reading it is mostly in uninterruptible sleep and always
    > wakes up on the active array ready for cpu, never expiring even with its
    > miniscule timeslice. The 3d app is always expiring and landing on the expired
    > array behind kprefetchd even though kprefetchd is nice 19. The practical
    > upshot of all this is that kprefetchd does a lot of prefetching with 3d
    > gaming going on, and no amount of priority fiddling stops it doing this. The
    > disk access is noticeable during 3d gaming unfortunately. Yielding regularly
    > means a heck of a lot less prefetching occurs and is no longer noticeable.
    > When idle, yield()ing doesn't seem to adversely affect the effectiveness of
    > the prefetching.

    but, but. If prefetching is prefetching stuff which that game will soon
    use then it'll be an aggregate improvement. If prefetch is prefetching
    stuff which that game _won't_ use then prefetch is busted. Using yield()
    to artificially cripple kprefetchd is a rather sad workaround isn't it?
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2006-03-08 02:11    [W:0.022 / U:81.424 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site