Messages in this thread | | | Date | Tue, 28 Sep 2010 13:36:26 -0400 | From | Vivek Goyal <> | Subject | Re: [PATCH 4/4] blkio: Recalculate the throttled bio dispatch time upon throttle limit change |
| |
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 ***
| |