Re: [PATCH] [RFC] Add support for uevents on block device idle changes

Matthew Garrett
2009-11-23T14:26:07Z

On Mon, Nov 23, 2009 at 03:17:54PM +0100, Jens Axboe wrote:

> I have to agree, doing a mod_timer() on every single IO is going to suck
> big time. I went to great lengths to avoid doing that even for timeout
> detection. So that's pretty much a non-starter to begin with.

It's conditional on a (default off) setting, so it's not a hit unless
the user requests it. But yeah, the performance hit is obviously a
concern. It may be that polling is the least bad way of doing this.

> Additionally, as Bart also wrote, you are not doing this in the right
> place. You want to do this post-merge, not for each incoming IO. Have
> you looked at laptop mode? Looks like you are essentially re-inventing
> that, but in a bad way.

Right, that's mostly down to my having no familiarity with the block
layer at all :) I can fix that up easily enough, but if a deferrable
timer is going to be too expensive then it'll need some rethinking
anyway.

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