aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/nvme/nvme_private.h
diff options
context:
space:
mode:
authorJim Harris <jimharris@FreeBSD.org>2012-10-10 23:28:58 +0000
committerJim Harris <jimharris@FreeBSD.org>2012-10-10 23:28:58 +0000
commit8bed48f25d3df5aa13654651ee5bc4284f10d310 (patch)
tree051062c33d1a6cb48ff803314f0874ae1d530d6a /sys/dev/nvme/nvme_private.h
parent72acfaabbf204daea594504588cda2f7ce14f71f (diff)
downloadsrc-8bed48f25d3df5aa13654651ee5bc4284f10d310.tar.gz
src-8bed48f25d3df5aa13654651ee5bc4284f10d310.zip
Put the nvme_qpair mutex on its own cacheline.
Sponsored by: Intel
Notes
Notes: svn path=/head/; revision=241433
Diffstat (limited to 'sys/dev/nvme/nvme_private.h')
-rw-r--r--sys/dev/nvme/nvme_private.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h
index 667238b0bace..ae7faf92a146 100644
--- a/sys/dev/nvme/nvme_private.h
+++ b/sys/dev/nvme/nvme_private.h
@@ -88,6 +88,10 @@ MALLOC_DECLARE(M_NVME);
#define NVME_TIMEOUT_IN_SEC (30)
+#ifndef CACHE_LINE_SIZE
+#define CACHE_LINE_SIZE (64)
+#endif
+
struct nvme_prp_list {
uint64_t prp[NVME_MAX_PRP_LIST_ENTRIES];
SLIST_ENTRY(nvme_prp_list) slist;
@@ -131,8 +135,6 @@ struct nvme_qpair {
int64_t num_cmds;
- struct mtx lock;
-
struct nvme_command *cmd;
struct nvme_completion *cpl;
@@ -152,7 +154,10 @@ struct nvme_qpair {
struct nvme_tracker **act_tr;
SLIST_HEAD(, nvme_prp_list) free_prp_list;
-};
+
+ struct mtx lock __aligned(CACHE_LINE_SIZE);
+
+} __aligned(CACHE_LINE_SIZE);
struct nvme_namespace {