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

From: Randy Dunlap
Date: Tue Sep 28 2010 - 13:23:07 EST


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?


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/