lkml.org 
[lkml]   [2009]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] [RFC] Add support for uevents on block device idle changes
On Mon, Nov 23, 2009 at 03:31:40PM +0100, Jens Axboe wrote:

> Well, take a look at laptop mode. A timer per-io is probably
> unavoidable, but doing it at IO completion could mean a big decrease in
> timer activity as opposed to doing it for each incoming IO. And since
> you are looking at when the disk is idle, it makes a lot more sense to
> me to do that when the we complete a request (and have no further
> pending IO) rather than on incoming IO.

Right. The current implementation I have does a del_timer() at
submission (which should be moved to post-merge) - that should be cheap
in the common case of a new command being submitted when there's already
commands outstanding. There's then a mod_timer() at completion time.
That's still a certain amount of expense, but it should be less.

> Your biggest performance issue here is going to be sync IO, since the
> disk will go idle very briefly before being kicked into action again.

Ok, I'll try to benchmark that.

The alternative (polling) method would be something much like Kay
suggested - either add an extra field to stat or an extra sysfs file,
then invalidate that on submission and set to jiffies on completion.
It's not ideal from a wakeups perspective, but it's pretty low impact on
the kernel side.

--
Matthew Garrett | mjg59@srcf.ucam.org


\
 
 \ /
  Last update: 2009-11-23 15:45    [W:0.059 / U:0.280 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site