Commit d88cbbb3 authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Jens Axboe

blk-mq: Reorder fields in 'struct blk_mq_tag_set'

Group some variables based on their sizes to reduce hole and avoid padding.
On x86_64, this shrinks the size of 'struct blk_mq_tag_set'
from 304 to 296 bytes.
Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/6f249f9b02a3490283ef0278096556de41aa0cf0.1676626130.git.christophe.jaillet@wanadoo.frSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent e5cfefa9
...@@ -473,6 +473,7 @@ enum hctx_type { ...@@ -473,6 +473,7 @@ enum hctx_type {
/** /**
* struct blk_mq_tag_set - tag set that can be shared between request queues * struct blk_mq_tag_set - tag set that can be shared between request queues
* @ops: Pointers to functions that implement block driver behavior.
* @map: One or more ctx -> hctx mappings. One map exists for each * @map: One or more ctx -> hctx mappings. One map exists for each
* hardware queue type (enum hctx_type) that the driver wishes * hardware queue type (enum hctx_type) that the driver wishes
* to support. There are no restrictions on maps being of the * to support. There are no restrictions on maps being of the
...@@ -480,7 +481,6 @@ enum hctx_type { ...@@ -480,7 +481,6 @@ enum hctx_type {
* types. * types.
* @nr_maps: Number of elements in the @map array. A number in the range * @nr_maps: Number of elements in the @map array. A number in the range
* [1, HCTX_MAX_TYPES]. * [1, HCTX_MAX_TYPES].
* @ops: Pointers to functions that implement block driver behavior.
* @nr_hw_queues: Number of hardware queues supported by the block driver that * @nr_hw_queues: Number of hardware queues supported by the block driver that
* owns this data structure. * owns this data structure.
* @queue_depth: Number of tags per hardware queue, reserved tags included. * @queue_depth: Number of tags per hardware queue, reserved tags included.
...@@ -505,9 +505,9 @@ enum hctx_type { ...@@ -505,9 +505,9 @@ enum hctx_type {
* (BLK_MQ_F_BLOCKING). * (BLK_MQ_F_BLOCKING).
*/ */
struct blk_mq_tag_set { struct blk_mq_tag_set {
const struct blk_mq_ops *ops;
struct blk_mq_queue_map map[HCTX_MAX_TYPES]; struct blk_mq_queue_map map[HCTX_MAX_TYPES];
unsigned int nr_maps; unsigned int nr_maps;
const struct blk_mq_ops *ops;
unsigned int nr_hw_queues; unsigned int nr_hw_queues;
unsigned int queue_depth; unsigned int queue_depth;
unsigned int reserved_tags; unsigned int reserved_tags;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment