Skip to content

Commit

Permalink
writeback: improve scalability of bdi writeback work queues
Browse files Browse the repository at this point in the history
If you're going to do an atomic RMW on each list entry, there's not much
point in all the RCU complexities of the list walking. This is only going
to help the multi-thread case I guess, but it doesn't hurt to do now.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
  • Loading branch information
Nick Piggin authored and Jens Axboe committed Sep 16, 2009
1 parent deed62e commit 77fad5e
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion fs/fs-writeback.c
Original file line number Diff line number Diff line change
Expand Up @@ -772,8 +772,9 @@ static struct bdi_work *get_next_work_item(struct backing_dev_info *bdi,
rcu_read_lock();

list_for_each_entry_rcu(work, &bdi->work_list, list) {
if (!test_and_clear_bit(wb->nr, &work->seen))
if (!test_bit(wb->nr, &work->seen))
continue;
clear_bit(wb->nr, &work->seen);

ret = work;
break;
Expand Down

0 comments on commit 77fad5e

Please sign in to comment.