blk-throttle: Make no throttling rule group processing lockless
authorVivek Goyal <vgoyal@redhat.com>
Thu, 19 May 2011 19:38:31 +0000 (15:38 -0400)
committerJens Axboe <jaxboe@fusionio.com>
Fri, 20 May 2011 18:34:53 +0000 (20:34 +0200)
commitaf75cd3c67845ebe31d2df9a780889a5ebecef11
tree2d8cdeb9db03a72a90b9b80612f08bd0e7bb4f61
parentf0bdc8cdd9a2bcc2c84ae2a1fdbff4188b354d8d
blk-throttle: Make no throttling rule group processing lockless

Currently we take a queue lock on each bio to check if there are any
throttling rules associated with the group and also update the stats.
Now access the group under rcu and update the stats without taking
the queue lock. Queue lock is taken only if there are throttling rules
associated with the group.

So the common case of root group when there are no rules, save
unnecessary pounding of request queue lock.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
block/blk-throttle.c