Skip to content

Commit

Permalink
percpu-rwsem: use synchronize_sched_expedited
Browse files Browse the repository at this point in the history
Use synchronize_sched_expedited() instead of synchronize_sched()
to improve mount speed.

This patch improves mount time from 0.500s to 0.013s for Jeff's
test-case.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Reported-and-tested-by: Jeff Chua <jeff.chua.linux@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Mikulas Patocka authored and Linus Torvalds committed Nov 28, 2012
1 parent e23739b commit 4b05a1c
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions include/linux/percpu-rwsem.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ struct percpu_rw_semaphore {
};

#define light_mb() barrier()
#define heavy_mb() synchronize_sched()
#define heavy_mb() synchronize_sched_expedited()

static inline void percpu_down_read(struct percpu_rw_semaphore *p)
{
Expand Down Expand Up @@ -51,7 +51,7 @@ static inline void percpu_down_write(struct percpu_rw_semaphore *p)
{
mutex_lock(&p->mtx);
p->locked = true;
synchronize_sched(); /* make sure that all readers exit the rcu_read_lock_sched region */
synchronize_sched_expedited(); /* make sure that all readers exit the rcu_read_lock_sched region */
while (__percpu_count(p->counters))
msleep(1);
heavy_mb(); /* C, between read of p->counter and write to data, paired with B */
Expand Down

0 comments on commit 4b05a1c

Please sign in to comment.