diff mbox series

null-blk: save memory footprint for struct nullb_cmd

Message ID 20220426022133.3999006-1-yukuai3@huawei.com (mailing list archive)
State New, archived
Headers show
Series null-blk: save memory footprint for struct nullb_cmd | expand

Commit Message

Yu Kuai April 26, 2022, 2:21 a.m. UTC
Total 16 bytes can be saved in two ways:

1) The field 'bio' will only be used in bio based mode, and the field
   'rq' will only be used in mq mode. Since they won't be used in the
   same time, declare a union for them.
2) The field 'bool fake_timeout' can be placed in the hole after the
   field 'error'.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
---
 drivers/block/null_blk/null_blk.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Comments

Jens Axboe April 26, 2022, 2:31 a.m. UTC | #1
On Tue, 26 Apr 2022 10:21:33 +0800, Yu Kuai wrote:
> Total 16 bytes can be saved in two ways:
> 
> 1) The field 'bio' will only be used in bio based mode, and the field
>    'rq' will only be used in mq mode. Since they won't be used in the
>    same time, declare a union for them.
> 2) The field 'bool fake_timeout' can be placed in the hole after the
>    field 'error'.
> 
> [...]

Applied, thanks!

[1/1] null-blk: save memory footprint for struct nullb_cmd
      commit: 8ba816b23abd2a9a05705f3d00b8653f8be73015

Best regards,
Chaitanya Kulkarni April 26, 2022, 6:20 a.m. UTC | #2
On 4/25/22 19:21, Yu Kuai wrote:
> Total 16 bytes can be saved in two ways:
> 
> 1) The field 'bio' will only be used in bio based mode, and the field
>     'rq' will only be used in mq mode. Since they won't be used in the
>     same time, declare a union for them.
> 2) The field 'bool fake_timeout' can be placed in the hole after the
>     field 'error'.
> 
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
> ---


Looks good.

Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>

-ck
diff mbox series

Patch

diff --git a/drivers/block/null_blk/null_blk.h b/drivers/block/null_blk/null_blk.h
index 78eb56b0ca55..4525a65e1b23 100644
--- a/drivers/block/null_blk/null_blk.h
+++ b/drivers/block/null_blk/null_blk.h
@@ -16,13 +16,15 @@ 
 #include <linux/mutex.h>
 
 struct nullb_cmd {
-	struct request *rq;
-	struct bio *bio;
+	union {
+		struct request *rq;
+		struct bio *bio;
+	};
 	unsigned int tag;
 	blk_status_t error;
+	bool fake_timeout;
 	struct nullb_queue *nq;
 	struct hrtimer timer;
-	bool fake_timeout;
 };
 
 struct nullb_queue {