From: Keith Busch <kbusch@kernel.org>
To: linux-nvme@lists.infradead.org, hch@lst.de, sagi@grimberg.me
Cc: Keith Busch <kbusch@kernel.org>
Subject: [PATCH 3/3] nvme-pci: reshuffle nvme_queue members
Date: Mon, 27 Apr 2020 16:52:43 -0700 [thread overview]
Message-ID: <20200427235243.2268765-3-kbusch@kernel.org> (raw)
In-Reply-To: <20200427235243.2268765-1-kbusch@kernel.org>
All the io path hot members can fit within the first 64-bytes, which is
a common cacheline. Order the members of this struct so those members
fit in and align to that window.
Signed-off-by: Keith Busch <kbusch@kernel.org>
---
drivers/nvme/host/pci.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 6d91fc5ee4d1..c16cf9fd4483 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -164,12 +164,14 @@ struct nvme_queue {
struct nvme_dev *dev;
spinlock_t sq_lock;
void *sq_cmds;
- /* only used for poll queues: */
- spinlock_t cq_poll_lock ____cacheline_aligned_in_smp;
struct nvme_completion *cqes;
- dma_addr_t sq_dma_addr;
- dma_addr_t cq_dma_addr;
u32 __iomem *q_db;
+ unsigned long flags;
+#define NVMEQ_ENABLED 0
+#define NVMEQ_SQ_CMB 1
+#define NVMEQ_DELETE_ERROR 2
+#define NVMEQ_POLLED 3
+
u16 q_depth;
u16 cq_vector;
u16 sq_tail;
@@ -177,13 +179,13 @@ struct nvme_queue {
u16 qid;
u8 cq_phase;
u8 sqes;
- unsigned long flags;
-#define NVMEQ_ENABLED 0
-#define NVMEQ_SQ_CMB 1
-#define NVMEQ_DELETE_ERROR 2
-#define NVMEQ_POLLED 3
+
+ /* only used for poll queues: */
+ spinlock_t cq_poll_lock;
+ dma_addr_t sq_dma_addr;
+ dma_addr_t cq_dma_addr;
struct completion delete_done;
-};
+} ____cacheline_aligned_in_smp;
/*
* The nvme_iod describes the data in an I/O.
--
2.24.1
_______________________________________________
linux-nvme mailing list
linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
next prev parent reply other threads:[~2020-04-27 23:53 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-27 23:52 [PATCH 1/3] nvme-pci: clear shadow doorbell memory on resets Keith Busch
2020-04-27 23:52 ` [PATCH 2/3] nvme-pci: remove cached shadow doorbell offsets Keith Busch
2020-04-30 6:36 ` Dongli Zhang
2020-04-30 19:07 ` Keith Busch
2020-05-01 12:54 ` Christoph Hellwig
2021-10-04 9:42 ` John Levon
2020-04-27 23:52 ` Keith Busch [this message]
2020-05-01 12:57 ` [PATCH 3/3] nvme-pci: reshuffle nvme_queue members Christoph Hellwig
2020-05-01 15:08 ` Keith Busch
2020-05-01 15:12 ` Christoph Hellwig
2020-05-01 15:23 ` Keith Busch
2020-05-04 18:18 ` Keith Busch
2020-05-01 12:49 ` [PATCH 1/3] nvme-pci: clear shadow doorbell memory on resets Christoph Hellwig
2021-10-04 9:35 ` John Levon
2021-10-06 12:07 ` Keith Busch
2021-10-06 16:05 ` John Levon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200427235243.2268765-3-kbusch@kernel.org \
--to=kbusch@kernel.org \
--cc=hch@lst.de \
--cc=linux-nvme@lists.infradead.org \
--cc=sagi@grimberg.me \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.