From 982b48ae25d9aabd69c1f012a94f63766181f0b2 Mon Sep 17 00:00:00 2001
From: Mike Snitzer <snitzer@kernel.org>
Date: Sat, 26 Mar 2022 14:38:07 -0400
Subject: [PATCH] dm: move hot dm_io members to same cacheline as dm_target_io
Git-commit: 982b48ae25d9aabd69c1f012a94f63766181f0b2
Patch-mainline: v5.19-rc1
References: jsc#PED-2765
Just saves some cacheline bouncing for members accessed during cloned
bio submission and completion.
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Coly Li <colyli@suse.de>
---
drivers/md/dm-core.h | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/md/dm-core.h b/drivers/md/dm-core.h
index db069fa9cee5..41d6511dc7cf 100644
--- a/drivers/md/dm-core.h
+++ b/drivers/md/dm-core.h
@@ -250,17 +250,19 @@ static inline bool dm_tio_is_normal(struct dm_target_io *tio)
#define DM_IO_MAGIC 19577
struct dm_io {
unsigned short magic;
- blk_short_t flags;
- atomic_t io_count;
- struct mapped_device *md;
- struct bio *orig_bio;
- blk_status_t status;
+
spinlock_t lock;
unsigned long start_time;
void *data;
struct hlist_node node;
struct task_struct *map_task;
struct dm_stats_aux stats_aux;
+
+ blk_short_t flags;
+ blk_status_t status;
+ atomic_t io_count;
+ struct mapped_device *md;
+ struct bio *orig_bio;
/* last member of dm_target_io is 'struct bio' */
struct dm_target_io tio;
};
--
2.35.3