Re: [PATCH 05/10] block: remove per-queue plugging

From: Vivek Goyal
Date: Thu Mar 03 2011 - 23:01:27 EST


On Sat, Jan 22, 2011 at 01:17:24AM +0000, Jens Axboe wrote:

[..]
> mm/page-writeback.c | 2 +-
> mm/readahead.c | 12 ---
> mm/shmem.c | 1 -
> mm/swap_state.c | 5 +-
> mm/swapfile.c | 37 --------
> mm/vmscan.c | 2 +-
> 118 files changed, 153 insertions(+), 1248 deletions(-)

block/blk-throttle.c also uses blk_unplug(). We need to get rid of that
also.

[..]
> @@ -632,8 +630,6 @@ void elv_insert(struct request_queue *q, struct request *rq, int where)
> * don't force unplug of the queue for that case.
> * Clear unplug_it and fall through.
> */

Above comments now seem to be redundant.

> - unplug_it = 0;
> -
> case ELEVATOR_INSERT_FRONT:
> rq->cmd_flags |= REQ_SOFTBARRIER;
> list_add(&rq->queuelist, &q->queue_head);

[..]
> /*
> diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
> index b9e1e15..5ef136c 100644
> --- a/drivers/md/dm-raid.c
> +++ b/drivers/md/dm-raid.c
> @@ -394,7 +394,7 @@ static void raid_unplug(struct dm_target_callbacks *cb)
> {
> struct raid_set *rs = container_of(cb, struct raid_set, callbacks);
>
> - md_raid5_unplug_device(rs->md.private);
> + md_raid5_kick_device(rs->md.private);

With all the unplug logic gone, I think we can get rid of blk_sync_queue()
call from md. It looks like md was syncing the queue just to make sure
that unplug_fn is not called again. Now all that logic is gone so it
should be redundant.

Also we can probably get rid of some queue_lock taking instances in
md code. NeilBrown recently put following patch in, which is taking
queue lock only around plug functions. Now queue plugging gone,
I guess it should not be required.

commit da9cf5050a2e3dbc3cf26a8d908482eb4485ed49
Author: NeilBrown <neilb@xxxxxxx>
Date: Mon Feb 21 18:25:57 2011 +1100

md: avoid spinlock problem in blk_throtl_exit

Thanks
Vivek
--
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/