Re: [PATCH 1/3] block: bump max plugged deferred size from 16 to 32

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/6/21 11:55 AM, Bart Van Assche wrote:
> On 10/6/21 9:35 AM, Jens Axboe wrote:
>> Particularly for NVMe with efficient deferred submission for many
>> requests, there are nice benefits to be seen by bumping the default max
>> plug count from 16 to 32. This is especially true for virtualized setups,
>> where the submit part is more expensive. But can be noticed even on
>> native hardware.
>>
>> Reduce the multiple queue factor from 4 to 2, since we're changing the
>> default size.
>>
>> Signed-off-by: Jens Axboe <axboe@xxxxxxxxx>
>> ---
>>   block/blk-mq.c         | 4 ++--
>>   include/linux/blkdev.h | 2 +-
>>   2 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/block/blk-mq.c b/block/blk-mq.c
>> index a40c94505680..5327abbefbab 100644
>> --- a/block/blk-mq.c
>> +++ b/block/blk-mq.c
>> @@ -2145,14 +2145,14 @@ static void blk_add_rq_to_plug(struct blk_plug *plug, struct request *rq)
>>   }
>>   
>>   /*
>> - * Allow 4x BLK_MAX_REQUEST_COUNT requests on plug queue for multiple
>> + * Allow 2x BLK_MAX_REQUEST_COUNT requests on plug queue for multiple
>>    * queues. This is important for md arrays to benefit from merging
>>    * requests.
>>    */
>>   static inline unsigned short blk_plug_max_rq_count(struct blk_plug *plug)
>>   {
>>   	if (plug->multiple_queues)
>> -		return BLK_MAX_REQUEST_COUNT * 4;
>> +		return BLK_MAX_REQUEST_COUNT * 2;
>>   	return BLK_MAX_REQUEST_COUNT;
>>   }
>>   
>> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
>> index b19172db7eef..534298ac73cc 100644
>> --- a/include/linux/blkdev.h
>> +++ b/include/linux/blkdev.h
>> @@ -727,7 +727,7 @@ struct blk_plug {
>>   	bool multiple_queues;
>>   	bool nowait;
>>   };
>> -#define BLK_MAX_REQUEST_COUNT 16
>> +#define BLK_MAX_REQUEST_COUNT 32
>>   #define BLK_PLUG_FLUSH_SIZE (128 * 1024)
>>   
>>   struct blk_plug_cb;
> 
> Since BLK_MAX_REQUEST_COUNT is only used inside the block layer core but 
> not by any block driver, can it be moved from include/linux/blkdev.h 
> into block/blk-mq.h?

Good point, I'll move it in there as part of the patch.

-- 
Jens Axboe




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux