Re: [PATCHSET] blkcg: unify blkgs for different policies

From: Tejun Heo
Date: Thu Feb 02 2012 - 15:59:24 EST


Hello,

On Thu, Feb 02, 2012 at 03:43:42PM -0500, Vivek Goyal wrote:
> What about bio based drivers? They might have their own internal locking
> and not relying on queue lock. And conceptually, we first throttle the
> bio, update the stats and then call into driver. So are you planning
> to move blk_throtl_bio() call into request function of individual driver
> to avoid taking queue lock twice.
>
> In fact even for request based drivers, if bio is being merged onto
> existing request on plug, we will not take any queue lock. So I am not
> sure how would you avoid extra queue lock for this case.

For request based drivers, it isn't an issue. If tracking info across
plug merging is necessary, just record the states in the plug
structure. The whole purpose of per-task plugging is exactly that -
buffering state before going through request_lock after all.

For ->make_request_fn() drivers, I'm not sure yet and will have to
look through different bio based drivers before deciding. At the
worst, we might require them to call stat update function under queue
lock or maybe provide fuzzier update or a way to opt out of per-blkg
stats. Let's see.

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/