From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: Date: Tue, 6 Feb 2018 13:43:10 -0800 From: Omar Sandoval To: Ming Lei Cc: Jens Axboe , linux-block@vger.kernel.org, Christoph Hellwig , Mike Snitzer , linux-scsi@vger.kernel.org, Hannes Reinecke , Arun Easi , Omar Sandoval , "Martin K . Petersen" , James Bottomley , Christoph Hellwig , Don Brace , Kashyap Desai , Peter Rivera , Paolo Bonzini , Laurence Oberman Subject: Re: [PATCH V2 4/8] block: null_blk: introduce module parameter of 'g_global_tags' Message-ID: <20180206214310.GE16027@vader.DHCP.thefacebook.com> References: <20180205152035.15016-1-ming.lei@redhat.com> <20180205152035.15016-5-ming.lei@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <20180205152035.15016-5-ming.lei@redhat.com> List-ID: On Mon, Feb 05, 2018 at 11:20:31PM +0800, Ming Lei wrote: > This patch introduces the parameter of 'g_global_tags' so that we can > test this feature by null_blk easiy. > > Not see obvious performance drop with global_tags when the whole hw > depth is kept as same: > > 1) no 'global_tags', each hw queue depth is 1, and 4 hw queues > modprobe null_blk queue_mode=2 nr_devices=4 shared_tags=1 global_tags=0 submit_queues=4 hw_queue_depth=1 > > 2) 'global_tags', global hw queue depth is 4, and 4 hw queues > modprobe null_blk queue_mode=2 nr_devices=4 shared_tags=1 global_tags=1 submit_queues=4 hw_queue_depth=4 > > 3) fio test done in above two settings: > fio --bs=4k --size=512G --rw=randread --norandommap --direct=1 --ioengine=libaio --iodepth=4 --runtime=$RUNTIME --group_reporting=1 --name=nullb0 --filename=/dev/nullb0 --name=nullb1 --filename=/dev/nullb1 --name=nullb2 --filename=/dev/nullb2 --name=nullb3 --filename=/dev/nullb3 > > 1M IOPS can be reached in both above tests which is done in one VM. > > Cc: Arun Easi > Cc: Omar Sandoval , > Cc: "Martin K. Petersen" , > Cc: James Bottomley , > Cc: Christoph Hellwig , > Cc: Don Brace > Cc: Kashyap Desai > Cc: Peter Rivera > Cc: Mike Snitzer > Tested-by: Laurence Oberman > Reviewed-by: Hannes Reinecke The module parameter is just called "global_tags", not "g_global_tags", right? The subject should say the former. Otherwise, Reviewed-by: Omar Sandoval > Signed-off-by: Ming Lei > --- > drivers/block/null_blk.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/block/null_blk.c b/drivers/block/null_blk.c > index 287a09611c0f..ad0834efad42 100644 > --- a/drivers/block/null_blk.c > +++ b/drivers/block/null_blk.c > @@ -163,6 +163,10 @@ static int g_submit_queues = 1; > module_param_named(submit_queues, g_submit_queues, int, S_IRUGO); > MODULE_PARM_DESC(submit_queues, "Number of submission queues"); > > +static int g_global_tags = 0; > +module_param_named(global_tags, g_global_tags, int, S_IRUGO); > +MODULE_PARM_DESC(global_tags, "All submission queues share one tags"); > + > static int g_home_node = NUMA_NO_NODE; > module_param_named(home_node, g_home_node, int, S_IRUGO); > MODULE_PARM_DESC(home_node, "Home node for the device"); > @@ -1622,6 +1626,8 @@ static int null_init_tag_set(struct nullb *nullb, struct blk_mq_tag_set *set) > set->flags = BLK_MQ_F_SHOULD_MERGE; > if (g_no_sched) > set->flags |= BLK_MQ_F_NO_SCHED; > + if (g_global_tags) > + set->flags |= BLK_MQ_F_GLOBAL_TAGS; > set->driver_data = NULL; > > if ((nullb && nullb->dev->blocking) || g_blocking) > -- > 2.9.5 >