mirror of https://gitee.com/openkylin/linux.git
block: bump max plugged deferred size from 16 to 32
[ Upstream commit ba0ffdd8ce
]
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.
While changing it, move the defines into the block layer private header.
These aren't values that anyone outside of the block layer uses, or
should use.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
3792174592
commit
396c9e834d
|
@ -2148,14 +2148,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
|
* queues. This is important for md arrays to benefit from merging
|
||||||
* requests.
|
* requests.
|
||||||
*/
|
*/
|
||||||
static inline unsigned short blk_plug_max_rq_count(struct blk_plug *plug)
|
static inline unsigned short blk_plug_max_rq_count(struct blk_plug *plug)
|
||||||
{
|
{
|
||||||
if (plug->multiple_queues)
|
if (plug->multiple_queues)
|
||||||
return BLK_MAX_REQUEST_COUNT * 4;
|
return BLK_MAX_REQUEST_COUNT * 2;
|
||||||
return BLK_MAX_REQUEST_COUNT;
|
return BLK_MAX_REQUEST_COUNT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -184,6 +184,12 @@ bool blk_bio_list_merge(struct request_queue *q, struct list_head *list,
|
||||||
void blk_account_io_start(struct request *req);
|
void blk_account_io_start(struct request *req);
|
||||||
void blk_account_io_done(struct request *req, u64 now);
|
void blk_account_io_done(struct request *req, u64 now);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Plug flush limits
|
||||||
|
*/
|
||||||
|
#define BLK_MAX_REQUEST_COUNT 32
|
||||||
|
#define BLK_PLUG_FLUSH_SIZE (128 * 1024)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Internal elevator interface
|
* Internal elevator interface
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1198,8 +1198,6 @@ struct blk_plug {
|
||||||
bool multiple_queues;
|
bool multiple_queues;
|
||||||
bool nowait;
|
bool nowait;
|
||||||
};
|
};
|
||||||
#define BLK_MAX_REQUEST_COUNT 16
|
|
||||||
#define BLK_PLUG_FLUSH_SIZE (128 * 1024)
|
|
||||||
|
|
||||||
struct blk_plug_cb;
|
struct blk_plug_cb;
|
||||||
typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool);
|
typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool);
|
||||||
|
|
Loading…
Reference in New Issue