On Sat, Jan 22, 2011 at 01:17:23AM +0000, Jens Axboe wrote:
[..]
> -/*
> - * Only disabling plugging for non-rotational devices if it does tagging
> - * as well, otherwise we do need the proper merging
> - */
> -static inline bool queue_should_plug(struct request_queue *q)
> -{
> - return !(blk_queue_nonrot(q) && blk_queue_tagged(q));
> -}
> -
Jens,
While discussing stack plug with Mike Snitzer, this occurred to us that in
new code we seem to be plugging even if underlying device is SSD with NCQ.
Should we continue to maintain the old behavior of not plugging for NCQ SSD?
Thanks
Vivek
On 2011-03-10 17:54, Vivek Goyal wrote:
> On Sat, Jan 22, 2011 at 01:17:23AM +0000, Jens Axboe wrote:
>
> [..]
>> -/*
>> - * Only disabling plugging for non-rotational devices if it does tagging
>> - * as well, otherwise we do need the proper merging
>> - */
>> -static inline bool queue_should_plug(struct request_queue *q)
>> -{
>> - return !(blk_queue_nonrot(q) && blk_queue_tagged(q));
>> -}
>> -
>
> Jens,
>
> While discussing stack plug with Mike Snitzer, this occurred to us that in
> new code we seem to be plugging even if underlying device is SSD with NCQ.
> Should we continue to maintain the old behavior of not plugging for NCQ SSD?
The main reason plugging was turned off for SSD's previously was because
it ended up hammering on the queue lock a lot. So it was turned off to
speed them up.
The new plugging scheme is faster than hitting the queue directly, so
now it would be a good idea to do the plugging in fact. Plus even for
high performance SSD's, things like merging are still a good idea.
So yes, it's on now and on purpose.
--
Jens Axboe
On Thu, Mar 10, 2011 at 08:32:05PM +0100, Jens Axboe wrote:
> On 2011-03-10 17:54, Vivek Goyal wrote:
> > On Sat, Jan 22, 2011 at 01:17:23AM +0000, Jens Axboe wrote:
> >
> > [..]
> >> -/*
> >> - * Only disabling plugging for non-rotational devices if it does tagging
> >> - * as well, otherwise we do need the proper merging
> >> - */
> >> -static inline bool queue_should_plug(struct request_queue *q)
> >> -{
> >> - return !(blk_queue_nonrot(q) && blk_queue_tagged(q));
> >> -}
> >> -
> >
> > Jens,
> >
> > While discussing stack plug with Mike Snitzer, this occurred to us that in
> > new code we seem to be plugging even if underlying device is SSD with NCQ.
> > Should we continue to maintain the old behavior of not plugging for NCQ SSD?
>
> The main reason plugging was turned off for SSD's previously was because
> it ended up hammering on the queue lock a lot. So it was turned off to
> speed them up.
>
> The new plugging scheme is faster than hitting the queue directly, so
> now it would be a good idea to do the plugging in fact. Plus even for
> high performance SSD's, things like merging are still a good idea.
>
> So yes, it's on now and on purpose.
Ok. Thanks for the explanation. That helps.
Vivek