[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4D8F26F9.3000905@fusionio.com>
Date: Sun, 27 Mar 2011 14:00:57 +0200
From: Jens Axboe <jaxboe@...ionio.com>
To: Avi Kivity <avi@...hat.com>
CC: Linus Torvalds <torvalds@...ux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Chris Mason <chris.mason@...cle.com>
Subject: Re: [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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists