diff options
| author | Christophe JAILLET <christophe.jaillet@wanadoo.fr> | 2025-08-02 09:25:59 +0200 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2025-08-04 09:22:44 -0600 |
| commit | 407728da41cd6450cec6a4277027015a75744d56 (patch) | |
| tree | 4efd98e01ed320b73cd863b5f958cfaea7e25c27 | |
| parent | Merge tag 'md-6.17-20250803' of gitolite.kernel.org:pub/scm/linux/kernel/git/... (diff) | |
| download | linux-407728da41cd6450cec6a4277027015a75744d56.tar.gz linux-407728da41cd6450cec6a4277027015a75744d56.zip | |
block, bfq: Reorder struct bfq_iocq_bfqq_data
The size of struct bfq_iocq_bfqq_data can be reduced by moving a few
fields around.
On a x86_64, with allmodconfig, this shrinks the size from 144 to 128
bytes. The main benefit is to reduce the size of struct bfq_io_cq from
1360 to 1232.
This structure is stored in a dedicated slab cache. So reducing its size
improves cache usage.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
Link: https://lore.kernel.org/r/79394db1befaa658e8066b8e3348073ce27d9d26.1754119538.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Jens Axboe <axboe@kernel.dk>
| -rw-r--r-- | block/bfq-iosched.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/block/bfq-iosched.h b/block/bfq-iosched.h index 687a3a7ba784..0b4704932d72 100644 --- a/block/bfq-iosched.h +++ b/block/bfq-iosched.h @@ -427,9 +427,6 @@ struct bfq_iocq_bfqq_data { */ bool saved_IO_bound; - u64 saved_io_start_time; - u64 saved_tot_idle_time; - /* * Same purpose as the previous fields for the values of the * field keeping the queue's belonging to a large burst @@ -450,6 +447,9 @@ struct bfq_iocq_bfqq_data { */ unsigned int saved_weight; + u64 saved_io_start_time; + u64 saved_tot_idle_time; + /* * Similar to previous fields: save wr information. */ @@ -457,13 +457,13 @@ struct bfq_iocq_bfqq_data { unsigned long saved_last_wr_start_finish; unsigned long saved_service_from_wr; unsigned long saved_wr_start_at_switch_to_srt; - unsigned int saved_wr_cur_max_time; struct bfq_ttime saved_ttime; + unsigned int saved_wr_cur_max_time; /* Save also injection state */ - u64 saved_last_serv_time_ns; unsigned int saved_inject_limit; unsigned long saved_decrease_time_jif; + u64 saved_last_serv_time_ns; /* candidate queue for a stable merge (due to close creation time) */ struct bfq_queue *stable_merge_bfqq; |
