Messages in this thread Patch in this message | | | From | Daniel Wagner <> | Subject | [PATCH v4 4/4] nvme: repack struct nvme_ns_head | Date | Thu, 7 Dec 2023 13:36:24 +0100 |
| |
ns_id, lba_shift and ms are always accessed for every read/write I/O in nvme_setup_rw. By grouping these variables into one cacheline we can safe some cycles.
4k sequential reads:
baseline patched Bandwidth: 1620 1634 IOPs 66345579 66910939
Signed-off-by: Daniel Wagner <dwagner@suse.de> --- drivers/nvme/host/nvme.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h index 2b31641a97b9..4a4beaecc832 100644 --- a/drivers/nvme/host/nvme.h +++ b/drivers/nvme/host/nvme.h @@ -445,21 +445,21 @@ struct nvme_ns_head { struct list_head list; struct srcu_struct srcu; struct nvme_subsystem *subsys; - unsigned ns_id; struct nvme_ns_ids ids; struct list_head entry; struct kref ref; bool shared; int instance; struct nvme_effects_log *effects; + u64 nuse; + unsigned ns_id; int lba_shift; u16 ms; u16 pi_size; - u16 sgs; - u32 sws; - u64 nuse; u8 pi_type; u8 guard_type; + u16 sgs; + u32 sws; #ifdef CONFIG_BLK_DEV_ZONED u64 zsze; #endif -- 2.43.0
| |