lkml.org 
[lkml]   [2011]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [GIT PULL] Core block IO bits for 2.6.39
    On 2011-03-27 13:49, Avi Kivity wrote:
    > On 03/24/2011 03:43 PM, Jens Axboe wrote:
    >> Hi Linus,
    >>
    >> This is the main pull request for the block IO layer and friends for
    >> 2.6.39.
    >>
    >> There are two major things in this tree:
    >>
    >> - The removal of the per-device plugging state for disks. On fast
    >> devices, it ended up hammering the queue lock quite hard. The new
    >> scheme puts the plugging state on the stack and allows an IO submitter
    >> to finish his batch of IO before pushing it to the queue. Once that
    >> push starts, we'll insert/merge with the existing queue.
    >>
    >> A pointer to this plugging context is stored in the task structure. If
    >> a task ends up blocking before it has submitted it's IO (usual cause
    >> would be memory allocation of some sort), the plugged list is
    >> auto-submitted before the task goes to sleep.
    >
    > This is the fourth "do something if preempted" hook (the other three are
    > kvm, cmwq, and perf). Why not use sched notifiers for this?

    It's a 'if preempted', it's 'if going to sleep'. Two issues with the
    preempt notifiers for this, I did look into it:

    - Not unconditionally available. Not a big problem, we could just do
    that.

    - Sched out is called under the runqueue lock, and it's not safe to drop
    it.

    But it's not a bad point, it would be nice if we could unify all these
    use cases and provide a notifier that works for all.

    --
    Jens Axboe



    \
     
     \ /
      Last update: 2011-03-27 14:03    [W:0.024 / U:2.732 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site