Re: [PATCH 4/4] blkio: Recalculate the throttled bio dispatch timeupon throttle limit change

From: Vivek Goyal
Date: Tue Sep 28 2010 - 13:36:39 EST


On Tue, Sep 28, 2010 at 10:16:41AM -0700, Randy Dunlap wrote:
> On Tue, 28 Sep 2010 13:10:59 -0400 Vivek Goyal wrote:
>
> > o Currently any cgroup throttle limit changes are processed asynchronousy and
> > the change does not take affect till a new bio is dispatched from same group.
> >
> > o It might happen that a user sets a redicuously low limit on throttling.
> > Say 1 bytes per second on reads. In such cases simple operations like mount
> > a disk can wait for a very long time.
> >
> > o Once bio is throttled, there is no easy way to come out of that wait even if
> > user increases the read limit later.
> >
> > o This patch fixes it. Now if a user changes the cgroup limits, we recalculate
> > the bio dispatch time according to new limits.
> >
> > o Can't take queueu lock under blkcg_lock, hence after the change I wake
> > up the dispatch thread again which recalculates the time. So there are some
> > variables being synchronized across two threads without lock and I had to
> > make use of barriers. Hoping I have used barriers correctly. Any review of
> > memory barrier code especially will help.
>
>
> Hi,
> Has this report been addressed/fixed?
>

Hi Randy,

No. I was not aware of it. Thanks for bringing it to my notice. I will look
into it.

Vivek

>
> on i386:
>
> blk-throttle.c:(.text+0x1abb8): undefined reference to `__udivdi3'
> blk-throttle.c:(.text+0x1b1dc): undefined reference to `__udivdi3'
>
>
> on linux-next 2010-0924 and 2010-0927.
>
> ---
> ~Randy
> *** Remember to use Documentation/SubmitChecklist when testing your code ***
--
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/