* start moving user space visible constants to uapi headers
@ 2015-12-24 14:39 Christoph Hellwig
[not found] ` <1450967967-12479-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
0 siblings, 1 reply; 18+ messages in thread
From: Christoph Hellwig @ 2015-12-24 14:39 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
Currently very little of the uverbs user interface is actually exposed in
uapi headers, and it's a constant struggle to figure out what's kernel
internal and what is actually exposed in public. This series starts
sorting this out by creating the infrastructure for a uapi header shared
between uverbs and the core IB stack, and starts moving all WR and WC
constants as well as the device capabilitity flags there.
A lot more work will have to follow, and I hope others will help out as
well.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 1/6] IB/uapi: expose uverbs WR opcodes
[not found] ` <1450967967-12479-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
@ 2015-12-24 14:39 ` Christoph Hellwig
[not found] ` <1450967967-12479-2-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-24 14:39 ` [PATCH 2/6] IB/uapi: expose uverbs send WR flags Christoph Hellwig
` (5 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Christoph Hellwig @ 2015-12-24 14:39 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
This exposes the WR opcodes supported by uverbs as part of the uapi
headers. For this I had to create a new uapi/rdma/ib_verbs.h headers
so that we don't have to drag ib_user_verbs.h into the main ib_verbs.h.
There are now three tiers of WR opcodes: uapi ones that are fixeѕ and
must not change [1], kernel-wide ones that follow the uapi ones
and can be reordered at will, and driver-private ones that follow the
kernel-wide ones, and will also be frequently reordered.
[1] we also assign explicitly values to them just so that this is obvious!
Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
---
drivers/infiniband/hw/mlx5/mlx5_ib.h | 2 +-
include/rdma/ib_verbs.h | 39 ++++++++++++++++--------------------
include/uapi/rdma/ib_user_verbs.h | 2 ++
include/uapi/rdma/ib_verbs.h | 23 +++++++++++++++++++++
4 files changed, 43 insertions(+), 23 deletions(-)
create mode 100644 include/uapi/rdma/ib_verbs.h
diff --git a/drivers/infiniband/hw/mlx5/mlx5_ib.h b/drivers/infiniband/hw/mlx5/mlx5_ib.h
index d4b2271..2f82a08 100644
--- a/drivers/infiniband/hw/mlx5/mlx5_ib.h
+++ b/drivers/infiniband/hw/mlx5/mlx5_ib.h
@@ -122,7 +122,7 @@ struct mlx5_ib_pd {
#define MLX5_IB_SEND_UMR_FAIL_IF_FREE (IB_SEND_RESERVED_START << 1)
#define MLX5_IB_SEND_UMR_UPDATE_MTT (IB_SEND_RESERVED_START << 2)
#define MLX5_IB_QPT_REG_UMR IB_QPT_RESERVED1
-#define MLX5_IB_WR_UMR IB_WR_RESERVED1
+#define MLX5_IB_WR_UMR (IB_WR_END + 0)
struct wr_list {
u16 opcode;
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 75fcc97..94509e0 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -60,6 +60,8 @@
#include <linux/mmu_notifier.h>
#include <asm/uaccess.h>
+#include <uapi/rdma/ib_verbs.h>
+
extern struct workqueue_struct *ib_wq;
extern struct workqueue_struct *ib_comp_wq;
@@ -1108,34 +1110,27 @@ struct ib_qp_attr {
};
enum ib_wr_opcode {
- IB_WR_RDMA_WRITE,
- IB_WR_RDMA_WRITE_WITH_IMM,
- IB_WR_SEND,
- IB_WR_SEND_WITH_IMM,
- IB_WR_RDMA_READ,
- IB_WR_ATOMIC_CMP_AND_SWP,
- IB_WR_ATOMIC_FETCH_AND_ADD,
- IB_WR_LSO,
- IB_WR_SEND_WITH_INV,
+ /* opcodes directly passed through from userspace: */
+ IB_WR_RDMA_WRITE = IB_UVERBS_WR_RDMA_WRITE,
+ IB_WR_RDMA_WRITE_WITH_IMM = IB_UVERBS_WR_RDMA_WRITE_WITH_IMM,
+ IB_WR_SEND = IB_UVERBS_WR_SEND,
+ IB_WR_SEND_WITH_IMM = IB_UVERBS_WR_SEND_WITH_IMM,
+ IB_WR_RDMA_READ = IB_UVERBS_WR_RDMA_READ,
+ IB_WR_ATOMIC_CMP_AND_SWP = IB_UVERBS_WR_ATOMIC_CMP_AND_SWP,
+ IB_WR_ATOMIC_FETCH_AND_ADD = IB_UVERBS_WR_ATOMIC_FETCH_AND_ADD,
+ IB_WR_SEND_WITH_INV = IB_UVERBS_WR_SEND_WITH_INV,
+
+ /* kernel-internal opcodes: */
+ IB_WR_LSO = IB_UVERBS_WR_END,
IB_WR_RDMA_READ_WITH_INV,
IB_WR_LOCAL_INV,
IB_WR_REG_MR,
IB_WR_MASKED_ATOMIC_CMP_AND_SWP,
IB_WR_MASKED_ATOMIC_FETCH_AND_ADD,
IB_WR_REG_SIG_MR,
- /* reserve values for low level drivers' internal use.
- * These values will not be used at all in the ib core layer.
- */
- IB_WR_RESERVED1 = 0xf0,
- IB_WR_RESERVED2,
- IB_WR_RESERVED3,
- IB_WR_RESERVED4,
- IB_WR_RESERVED5,
- IB_WR_RESERVED6,
- IB_WR_RESERVED7,
- IB_WR_RESERVED8,
- IB_WR_RESERVED9,
- IB_WR_RESERVED10,
+
+ /* drivers may use any value greater or equal to IB_WR_END internally */
+ IB_WR_END,
};
enum ib_send_flags {
diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h
index 8126c14..358a656 100644
--- a/include/uapi/rdma/ib_user_verbs.h
+++ b/include/uapi/rdma/ib_user_verbs.h
@@ -38,6 +38,8 @@
#include <linux/types.h>
+#include <uapi/rdma/ib_verbs.h>
+
/*
* Increment this value if any changes that break userspace ABI
* compatibility are made.
diff --git a/include/uapi/rdma/ib_verbs.h b/include/uapi/rdma/ib_verbs.h
new file mode 100644
index 0000000..330175e
--- /dev/null
+++ b/include/uapi/rdma/ib_verbs.h
@@ -0,0 +1,23 @@
+#ifndef _UAPI_RDMA_IB_VERBS_H
+#define _UAPI_RDMA_IB_VERBS_H 1
+
+/*
+ * This file contains constants exposed through the uverbs ABI that are also
+ * used internall by the RDMA stack. It is separte from ib_user_verbs.h to
+ * having to pull that into the kernel-internal internal ib_verbs.h
+ */
+
+enum ib_uverbs_wr_opcode {
+ IB_UVERBS_WR_RDMA_WRITE = 0,
+ IB_UVERBS_WR_RDMA_WRITE_WITH_IMM = 1,
+ IB_UVERBS_WR_SEND = 2,
+ IB_UVERBS_WR_SEND_WITH_IMM = 3,
+ IB_UVERBS_WR_RDMA_READ = 4,
+ IB_UVERBS_WR_ATOMIC_CMP_AND_SWP = 5,
+ IB_UVERBS_WR_ATOMIC_FETCH_AND_ADD = 6,
+ /* 7 is still available */
+ IB_UVERBS_WR_SEND_WITH_INV = 8,
+ IB_UVERBS_WR_END = 9,
+};
+
+#endif /* _UAPI_RDMA_IB_VERBS_H */
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 2/6] IB/uapi: expose uverbs send WR flags
[not found] ` <1450967967-12479-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-24 14:39 ` [PATCH 1/6] IB/uapi: expose uverbs WR opcodes Christoph Hellwig
@ 2015-12-24 14:39 ` Christoph Hellwig
[not found] ` <1450967967-12479-3-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-24 14:39 ` [PATCH 3/6] IB/uapi: expose uverbs WC opcodes Christoph Hellwig
` (4 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Christoph Hellwig @ 2015-12-24 14:39 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
This exposes the send WR flags supported by uverbs as part of the uapi
headers. It follows the same scheme as the WR opcodes.
Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
---
drivers/infiniband/hw/mlx5/mlx5_ib.h | 6 +++---
include/rdma/ib_verbs.h | 14 ++++++--------
include/uapi/rdma/ib_verbs.h | 9 +++++++++
3 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/drivers/infiniband/hw/mlx5/mlx5_ib.h b/drivers/infiniband/hw/mlx5/mlx5_ib.h
index 2f82a08..6c264f0 100644
--- a/drivers/infiniband/hw/mlx5/mlx5_ib.h
+++ b/drivers/infiniband/hw/mlx5/mlx5_ib.h
@@ -118,9 +118,9 @@ struct mlx5_ib_pd {
* enum ib_send_flags and enum ib_qp_type for low-level driver
*/
-#define MLX5_IB_SEND_UMR_UNREG IB_SEND_RESERVED_START
-#define MLX5_IB_SEND_UMR_FAIL_IF_FREE (IB_SEND_RESERVED_START << 1)
-#define MLX5_IB_SEND_UMR_UPDATE_MTT (IB_SEND_RESERVED_START << 2)
+#define MLX5_IB_SEND_UMR_UNREG IB_SEND_END
+#define MLX5_IB_SEND_UMR_FAIL_IF_FREE (IB_SEND_END << 1)
+#define MLX5_IB_SEND_UMR_UPDATE_MTT (IB_SEND_END << 2)
#define MLX5_IB_QPT_REG_UMR IB_QPT_RESERVED1
#define MLX5_IB_WR_UMR (IB_WR_END + 0)
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 94509e0..5dccc6a 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -1134,15 +1134,13 @@ enum ib_wr_opcode {
};
enum ib_send_flags {
- IB_SEND_FENCE = 1,
- IB_SEND_SIGNALED = (1<<1),
- IB_SEND_SOLICITED = (1<<2),
- IB_SEND_INLINE = (1<<3),
- IB_SEND_IP_CSUM = (1<<4),
+ IB_SEND_FENCE = IB_UVERBS_SEND_FENCE,
+ IB_SEND_SIGNALED = IB_UVERBS_SEND_SIGNALED,
+ IB_SEND_SOLICITED = IB_UVERBS_SEND_SOLICITED,
+ IB_SEND_INLINE = IB_UVERBS_SEND_INLINE,
+ IB_SEND_IP_CSUM = IB_UVERBS_SEND_IP_CSUM,
- /* reserve bits 26-31 for low level drivers' internal use */
- IB_SEND_RESERVED_START = (1 << 26),
- IB_SEND_RESERVED_END = (1 << 31),
+ IB_SEND_END = IB_UVERBS_SEND_END,
};
struct ib_sge {
diff --git a/include/uapi/rdma/ib_verbs.h b/include/uapi/rdma/ib_verbs.h
index 330175e..3be3152 100644
--- a/include/uapi/rdma/ib_verbs.h
+++ b/include/uapi/rdma/ib_verbs.h
@@ -20,4 +20,13 @@ enum ib_uverbs_wr_opcode {
IB_UVERBS_WR_END = 9,
};
+enum ib_uverbs_send_flags {
+ IB_UVERBS_SEND_FENCE = (1 << 0),
+ IB_UVERBS_SEND_SIGNALED = (1 << 1),
+ IB_UVERBS_SEND_SOLICITED = (1 << 2),
+ IB_UVERBS_SEND_INLINE = (1 << 3),
+ IB_UVERBS_SEND_IP_CSUM = (1 << 4),
+ IB_UVERBS_SEND_END = (1 << 5),
+};
+
#endif /* _UAPI_RDMA_IB_VERBS_H */
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 3/6] IB/uapi: expose uverbs WC opcodes
[not found] ` <1450967967-12479-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-24 14:39 ` [PATCH 1/6] IB/uapi: expose uverbs WR opcodes Christoph Hellwig
2015-12-24 14:39 ` [PATCH 2/6] IB/uapi: expose uverbs send WR flags Christoph Hellwig
@ 2015-12-24 14:39 ` Christoph Hellwig
[not found] ` <1450967967-12479-4-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-24 14:39 ` [PATCH 4/6] IB/uapi: expose uverbs WC flags Christoph Hellwig
` (3 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Christoph Hellwig @ 2015-12-24 14:39 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
This exposes the WC opcodes supported by uverbs as part of the uapi
headers. It follows the same scheme as the WR opcodes.
Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
---
include/rdma/ib_verbs.h | 29 +++++++++++++----------------
include/uapi/rdma/ib_verbs.h | 16 ++++++++++++++++
2 files changed, 29 insertions(+), 16 deletions(-)
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 5dccc6a..7dce204 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -819,22 +819,19 @@ enum ib_wc_status {
const char *__attribute_const__ ib_wc_status_msg(enum ib_wc_status status);
enum ib_wc_opcode {
- IB_WC_SEND,
- IB_WC_RDMA_WRITE,
- IB_WC_RDMA_READ,
- IB_WC_COMP_SWAP,
- IB_WC_FETCH_ADD,
- IB_WC_LSO,
- IB_WC_LOCAL_INV,
- IB_WC_REG_MR,
- IB_WC_MASKED_COMP_SWAP,
- IB_WC_MASKED_FETCH_ADD,
-/*
- * Set value of IB_WC_RECV so consumers can test if a completion is a
- * receive by testing (opcode & IB_WC_RECV).
- */
- IB_WC_RECV = 1 << 7,
- IB_WC_RECV_RDMA_WITH_IMM
+ IB_WC_SEND = IB_UVERBS_WC_SEND,
+ IB_WC_RDMA_WRITE = IB_UVERBS_WC_RDMA_WRITE,
+ IB_WC_RDMA_READ = IB_UVERBS_WC_RDMA_READ,
+ IB_WC_COMP_SWAP = IB_UVERBS_WC_COMP_SWAP,
+ IB_WC_FETCH_ADD = IB_UVERBS_WC_FETCH_ADD,
+ IB_WC_LSO = IB_UVERBS_WC_SEND_END,
+ IB_WC_LOCAL_INV = IB_UVERBS_WC_SEND_END + 1,
+ IB_WC_REG_MR = IB_UVERBS_WC_SEND_END + 2,
+ IB_WC_MASKED_COMP_SWAP = IB_UVERBS_WC_SEND_END + 3,
+ IB_WC_MASKED_FETCH_ADD = IB_UVERBS_WC_SEND_END + 4,
+
+ IB_WC_RECV = IB_UVERBS_WC_RECV,
+ IB_WC_RECV_RDMA_WITH_IMM = IB_UVERBS_WC_RECV_END,
};
enum ib_wc_flags {
diff --git a/include/uapi/rdma/ib_verbs.h b/include/uapi/rdma/ib_verbs.h
index 3be3152..fd7a393 100644
--- a/include/uapi/rdma/ib_verbs.h
+++ b/include/uapi/rdma/ib_verbs.h
@@ -29,4 +29,20 @@ enum ib_uverbs_send_flags {
IB_UVERBS_SEND_END = (1 << 5),
};
+enum ib_uverbs_wc_opcode {
+ IB_UVERBS_WC_SEND = 0,
+ IB_UVERBS_WC_RDMA_WRITE = 1,
+ IB_UVERBS_WC_RDMA_READ = 2,
+ IB_UVERBS_WC_COMP_SWAP = 3,
+ IB_UVERBS_WC_FETCH_ADD = 4,
+ IB_UVERBS_WC_SEND_END = 5,
+
+ /*
+ * Set value of IB_WC_RECV so consumers can test if a completion is a
+ * receive by testing (opcode & IB_WC_RECV).
+ */
+ IB_UVERBS_WC_RECV = 1 << 7,
+ IB_UVERBS_WC_RECV_END = (1 << 7) + 1,
+};
+
#endif /* _UAPI_RDMA_IB_VERBS_H */
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 4/6] IB/uapi: expose uverbs WC flags
[not found] ` <1450967967-12479-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
` (2 preceding siblings ...)
2015-12-24 14:39 ` [PATCH 3/6] IB/uapi: expose uverbs WC opcodes Christoph Hellwig
@ 2015-12-24 14:39 ` Christoph Hellwig
[not found] ` <1450967967-12479-5-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-24 14:39 ` [PATCH 5/6] IB/uapi: expose uverbs WC status codes Christoph Hellwig
` (2 subsequent siblings)
6 siblings, 1 reply; 18+ messages in thread
From: Christoph Hellwig @ 2015-12-24 14:39 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
This exposes the WC flags supported by uverbs as part of the uapi
headers. It follows the same scheme as the WR opcodes.
Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
---
include/rdma/ib_verbs.h | 14 +++++++-------
include/uapi/rdma/ib_verbs.h | 10 ++++++++++
2 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 7dce204..337db70 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -835,13 +835,13 @@ enum ib_wc_opcode {
};
enum ib_wc_flags {
- IB_WC_GRH = 1,
- IB_WC_WITH_IMM = (1<<1),
- IB_WC_WITH_INVALIDATE = (1<<2),
- IB_WC_IP_CSUM_OK = (1<<3),
- IB_WC_WITH_SMAC = (1<<4),
- IB_WC_WITH_VLAN = (1<<5),
- IB_WC_WITH_NETWORK_HDR_TYPE = (1<<6),
+ IB_WC_GRH = IB_UVERBS_WC_GRH,
+ IB_WC_WITH_IMM = IB_UVERBS_WC_WITH_IMM,
+ IB_WC_WITH_INVALIDATE = IB_UVERBS_WC_WITH_INVALIDATE,
+ IB_WC_IP_CSUM_OK = IB_UVERBS_WC_IP_CSUM_OK,
+ IB_WC_WITH_SMAC = IB_UVERBS_WC_WITH_SMAC,
+ IB_WC_WITH_VLAN = IB_UVERBS_WC_WITH_VLAN,
+ IB_WC_WITH_NETWORK_HDR_TYPE = IB_UVERBS_WC_WITH_NETWORK_HDR_TYPE,
};
struct ib_wc {
diff --git a/include/uapi/rdma/ib_verbs.h b/include/uapi/rdma/ib_verbs.h
index fd7a393..c40c00b 100644
--- a/include/uapi/rdma/ib_verbs.h
+++ b/include/uapi/rdma/ib_verbs.h
@@ -45,4 +45,14 @@ enum ib_uverbs_wc_opcode {
IB_UVERBS_WC_RECV_END = (1 << 7) + 1,
};
+enum ib_uverbs_wc_flags {
+ IB_UVERBS_WC_GRH = (1 << 0),
+ IB_UVERBS_WC_WITH_IMM = (1 << 1),
+ IB_UVERBS_WC_WITH_INVALIDATE = (1 << 2),
+ IB_UVERBS_WC_IP_CSUM_OK = (1 << 3),
+ IB_UVERBS_WC_WITH_SMAC = (1 << 4),
+ IB_UVERBS_WC_WITH_VLAN = (1 << 5),
+ IB_UVERBS_WC_WITH_NETWORK_HDR_TYPE = (1 << 6),
+};
+
#endif /* _UAPI_RDMA_IB_VERBS_H */
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 5/6] IB/uapi: expose uverbs WC status codes
[not found] ` <1450967967-12479-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
` (3 preceding siblings ...)
2015-12-24 14:39 ` [PATCH 4/6] IB/uapi: expose uverbs WC flags Christoph Hellwig
@ 2015-12-24 14:39 ` Christoph Hellwig
[not found] ` <1450967967-12479-6-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-24 14:39 ` [PATCH 6/6] IB/uapi: expose device capability flags Christoph Hellwig
2016-01-04 17:02 ` start moving user space visible constants to uapi headers Steve Wise
6 siblings, 1 reply; 18+ messages in thread
From: Christoph Hellwig @ 2015-12-24 14:39 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
This exposes the WC status codes supported by uverbs as part of the uapi
headers. It follows the same scheme as the WR opcodes.
Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
---
include/rdma/ib_verbs.h | 44 ++++++++++++++++++++++----------------------
include/uapi/rdma/ib_verbs.h | 25 +++++++++++++++++++++++++
2 files changed, 47 insertions(+), 22 deletions(-)
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 337db70..48bfcf5 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -792,28 +792,28 @@ struct ib_ah_attr {
};
enum ib_wc_status {
- IB_WC_SUCCESS,
- IB_WC_LOC_LEN_ERR,
- IB_WC_LOC_QP_OP_ERR,
- IB_WC_LOC_EEC_OP_ERR,
- IB_WC_LOC_PROT_ERR,
- IB_WC_WR_FLUSH_ERR,
- IB_WC_MW_BIND_ERR,
- IB_WC_BAD_RESP_ERR,
- IB_WC_LOC_ACCESS_ERR,
- IB_WC_REM_INV_REQ_ERR,
- IB_WC_REM_ACCESS_ERR,
- IB_WC_REM_OP_ERR,
- IB_WC_RETRY_EXC_ERR,
- IB_WC_RNR_RETRY_EXC_ERR,
- IB_WC_LOC_RDD_VIOL_ERR,
- IB_WC_REM_INV_RD_REQ_ERR,
- IB_WC_REM_ABORT_ERR,
- IB_WC_INV_EECN_ERR,
- IB_WC_INV_EEC_STATE_ERR,
- IB_WC_FATAL_ERR,
- IB_WC_RESP_TIMEOUT_ERR,
- IB_WC_GENERAL_ERR
+ IB_WC_SUCCESS = IB_UVERBS_WC_SUCCESS,
+ IB_WC_LOC_LEN_ERR = IB_UVERBS_WC_LOC_LEN_ERR,
+ IB_WC_LOC_QP_OP_ERR = IB_UVERBS_WC_LOC_QP_OP_ERR,
+ IB_WC_LOC_EEC_OP_ERR = IB_UVERBS_WC_LOC_EEC_OP_ERR,
+ IB_WC_LOC_PROT_ERR = IB_UVERBS_WC_LOC_PROT_ERR,
+ IB_WC_WR_FLUSH_ERR = IB_UVERBS_WC_WR_FLUSH_ERR,
+ IB_WC_MW_BIND_ERR = IB_UVERBS_WC_MW_BIND_ERR,
+ IB_WC_BAD_RESP_ERR = IB_UVERBS_WC_BAD_RESP_ERR,
+ IB_WC_LOC_ACCESS_ERR = IB_UVERBS_WC_LOC_ACCESS_ERR,
+ IB_WC_REM_INV_REQ_ERR = IB_UVERBS_WC_REM_INV_REQ_ERR,
+ IB_WC_REM_ACCESS_ERR = IB_UVERBS_WC_REM_ACCESS_ERR,
+ IB_WC_REM_OP_ERR = IB_UVERBS_WC_REM_OP_ERR,
+ IB_WC_RETRY_EXC_ERR = IB_UVERBS_WC_RETRY_EXC_ERR,
+ IB_WC_RNR_RETRY_EXC_ERR = IB_UVERBS_WC_RNR_RETRY_EXC_ERR,
+ IB_WC_LOC_RDD_VIOL_ERR = IB_UVERBS_WC_LOC_RDD_VIOL_ERR,
+ IB_WC_REM_INV_RD_REQ_ERR= IB_UVERBS_WC_REM_INV_RD_REQ_ERR,
+ IB_WC_REM_ABORT_ERR = IB_UVERBS_WC_REM_ABORT_ERR,
+ IB_WC_INV_EECN_ERR = IB_UVERBS_WC_INV_EECN_ERR,
+ IB_WC_INV_EEC_STATE_ERR = IB_UVERBS_WC_INV_EEC_STATE_ERR,
+ IB_WC_FATAL_ERR = IB_UVERBS_WC_FATAL_ERR,
+ IB_WC_RESP_TIMEOUT_ERR = IB_UVERBS_WC_RESP_TIMEOUT_ERR,
+ IB_WC_GENERAL_ERR = IB_UVERBS_WC_GENERAL_ERR,
};
const char *__attribute_const__ ib_wc_status_msg(enum ib_wc_status status);
diff --git a/include/uapi/rdma/ib_verbs.h b/include/uapi/rdma/ib_verbs.h
index c40c00b..fbadb29 100644
--- a/include/uapi/rdma/ib_verbs.h
+++ b/include/uapi/rdma/ib_verbs.h
@@ -55,4 +55,29 @@ enum ib_uverbs_wc_flags {
IB_UVERBS_WC_WITH_NETWORK_HDR_TYPE = (1 << 6),
};
+enum ib_uverbs_wc_status {
+ IB_UVERBS_WC_SUCCESS,
+ IB_UVERBS_WC_LOC_LEN_ERR,
+ IB_UVERBS_WC_LOC_QP_OP_ERR,
+ IB_UVERBS_WC_LOC_EEC_OP_ERR,
+ IB_UVERBS_WC_LOC_PROT_ERR,
+ IB_UVERBS_WC_WR_FLUSH_ERR,
+ IB_UVERBS_WC_MW_BIND_ERR,
+ IB_UVERBS_WC_BAD_RESP_ERR,
+ IB_UVERBS_WC_LOC_ACCESS_ERR,
+ IB_UVERBS_WC_REM_INV_REQ_ERR,
+ IB_UVERBS_WC_REM_ACCESS_ERR,
+ IB_UVERBS_WC_REM_OP_ERR,
+ IB_UVERBS_WC_RETRY_EXC_ERR,
+ IB_UVERBS_WC_RNR_RETRY_EXC_ERR,
+ IB_UVERBS_WC_LOC_RDD_VIOL_ERR,
+ IB_UVERBS_WC_REM_INV_RD_REQ_ERR,
+ IB_UVERBS_WC_REM_ABORT_ERR,
+ IB_UVERBS_WC_INV_EECN_ERR,
+ IB_UVERBS_WC_INV_EEC_STATE_ERR,
+ IB_UVERBS_WC_FATAL_ERR,
+ IB_UVERBS_WC_RESP_TIMEOUT_ERR,
+ IB_UVERBS_WC_GENERAL_ERR
+};
+
#endif /* _UAPI_RDMA_IB_VERBS_H */
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 6/6] IB/uapi: expose device capability flags
[not found] ` <1450967967-12479-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
` (4 preceding siblings ...)
2015-12-24 14:39 ` [PATCH 5/6] IB/uapi: expose uverbs WC status codes Christoph Hellwig
@ 2015-12-24 14:39 ` Christoph Hellwig
[not found] ` <1450967967-12479-7-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-01-04 17:02 ` start moving user space visible constants to uapi headers Steve Wise
6 siblings, 1 reply; 18+ messages in thread
From: Christoph Hellwig @ 2015-12-24 14:39 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
Expose the device capability flags which can be queried through uverbs in
the uapi headers.
Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
---
include/rdma/ib_verbs.h | 94 +++++++++++++++-----------------------------
include/uapi/rdma/ib_verbs.h | 66 +++++++++++++++++++++++++++++++
2 files changed, 98 insertions(+), 62 deletions(-)
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 48bfcf5..b8d4113 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -151,68 +151,38 @@ enum rdma_link_layer {
};
enum ib_device_cap_flags {
- IB_DEVICE_RESIZE_MAX_WR = (1 << 0),
- IB_DEVICE_BAD_PKEY_CNTR = (1 << 1),
- IB_DEVICE_BAD_QKEY_CNTR = (1 << 2),
- IB_DEVICE_RAW_MULTI = (1 << 3),
- IB_DEVICE_AUTO_PATH_MIG = (1 << 4),
- IB_DEVICE_CHANGE_PHY_PORT = (1 << 5),
- IB_DEVICE_UD_AV_PORT_ENFORCE = (1 << 6),
- IB_DEVICE_CURR_QP_STATE_MOD = (1 << 7),
- IB_DEVICE_SHUTDOWN_PORT = (1 << 8),
- IB_DEVICE_INIT_TYPE = (1 << 9),
- IB_DEVICE_PORT_ACTIVE_EVENT = (1 << 10),
- IB_DEVICE_SYS_IMAGE_GUID = (1 << 11),
- IB_DEVICE_RC_RNR_NAK_GEN = (1 << 12),
- IB_DEVICE_SRQ_RESIZE = (1 << 13),
- IB_DEVICE_N_NOTIFY_CQ = (1 << 14),
-
- /*
- * This device supports a per-device lkey or stag that can be
- * used without performing a memory registration for the local
- * memory. Note that ULPs should never check this flag, but
- * instead of use the local_dma_lkey flag in the ib_pd structure,
- * which will always contain a usable lkey.
- */
- IB_DEVICE_LOCAL_DMA_LKEY = (1 << 15),
- IB_DEVICE_RESERVED /* old SEND_W_INV */ = (1 << 16),
- IB_DEVICE_MEM_WINDOW = (1 << 17),
- /*
- * Devices should set IB_DEVICE_UD_IP_SUM if they support
- * insertion of UDP and TCP checksum on outgoing UD IPoIB
- * messages and can verify the validity of checksum for
- * incoming messages. Setting this flag implies that the
- * IPoIB driver may set NETIF_F_IP_CSUM for datagram mode.
- */
- IB_DEVICE_UD_IP_CSUM = (1 << 18),
- IB_DEVICE_UD_TSO = (1 << 19),
- IB_DEVICE_XRC = (1 << 20),
-
- /*
- * This device supports the IB "base memory management extension",
- * which includes support for fast registrations (IB_WR_REG_MR,
- * IB_WR_LOCAL_INV and IB_WR_SEND_WITH_INV verbs). This flag should
- * also be set by any iWarp device which must support FRs to comply
- * to the iWarp verbs spec. iWarp devices also support the
- * IB_WR_RDMA_READ_WITH_INV verb for RDMA READs that invalidate the
- * stag.
- */
- IB_DEVICE_MEM_MGT_EXTENSIONS = (1 << 21),
- IB_DEVICE_BLOCK_MULTICAST_LOOPBACK = (1 << 22),
- IB_DEVICE_MEM_WINDOW_TYPE_2A = (1 << 23),
- IB_DEVICE_MEM_WINDOW_TYPE_2B = (1 << 24),
- IB_DEVICE_RC_IP_CSUM = (1 << 25),
- IB_DEVICE_RAW_IP_CSUM = (1 << 26),
- /*
- * Devices should set IB_DEVICE_CROSS_CHANNEL if they
- * support execution of WQEs that involve synchronization
- * of I/O operations with single completion queue managed
- * by hardware.
- */
- IB_DEVICE_CROSS_CHANNEL = (1 << 27),
- IB_DEVICE_MANAGED_FLOW_STEERING = (1 << 29),
- IB_DEVICE_SIGNATURE_HANDOVER = (1 << 30),
- IB_DEVICE_ON_DEMAND_PAGING = (1 << 31),
+ IB_DEVICE_RESIZE_MAX_WR = IB_UVERBS_DEVICE_RESIZE_MAX_WR,
+ IB_DEVICE_BAD_PKEY_CNTR = IB_UVERBS_DEVICE_BAD_PKEY_CNTR,
+ IB_DEVICE_BAD_QKEY_CNTR = IB_UVERBS_DEVICE_BAD_QKEY_CNTR,
+ IB_DEVICE_RAW_MULTI = IB_UVERBS_DEVICE_RAW_MULTI,
+ IB_DEVICE_AUTO_PATH_MIG = IB_UVERBS_DEVICE_AUTO_PATH_MIG,
+ IB_DEVICE_CHANGE_PHY_PORT = IB_UVERBS_DEVICE_CHANGE_PHY_PORT,
+ IB_DEVICE_UD_AV_PORT_ENFORCE = IB_UVERBS_DEVICE_UD_AV_PORT_ENFORCE,
+ IB_DEVICE_CURR_QP_STATE_MOD = IB_UVERBS_DEVICE_UD_AV_PORT_ENFORCE,
+ IB_DEVICE_SHUTDOWN_PORT = IB_UVERBS_DEVICE_SHUTDOWN_PORT,
+ IB_DEVICE_INIT_TYPE = IB_UVERBS_DEVICE_INIT_TYPE,
+ IB_DEVICE_PORT_ACTIVE_EVENT = IB_UVERBS_DEVICE_PORT_ACTIVE_EVENT,
+ IB_DEVICE_SYS_IMAGE_GUID = IB_UVERBS_DEVICE_SYS_IMAGE_GUID,
+ IB_DEVICE_RC_RNR_NAK_GEN = IB_UVERBS_DEVICE_RC_RNR_NAK_GEN,
+ IB_DEVICE_SRQ_RESIZE = IB_UVERBS_DEVICE_SRQ_RESIZE,
+ IB_DEVICE_N_NOTIFY_CQ = IB_UVERBS_DEVICE_N_NOTIFY_CQ,
+ IB_DEVICE_LOCAL_DMA_LKEY = IB_UVERBS_DEVICE_LOCAL_DMA_LKEY,
+ IB_DEVICE_MEM_WINDOW = IB_UVERBS_DEVICE_MEM_WINDOW,
+ IB_DEVICE_UD_IP_CSUM = IB_UVERBS_DEVICE_UD_IP_CSUM,
+ IB_DEVICE_UD_TSO = IB_UVERBS_DEVICE_UD_TSO,
+ IB_DEVICE_XRC = IB_UVERBS_DEVICE_XRC,
+ IB_DEVICE_MEM_MGT_EXTENSIONS = IB_UVERBS_DEVICE_MEM_MGT_EXTENSIONS,
+ IB_DEVICE_BLOCK_MULTICAST_LOOPBACK =
+ IB_UVERBS_DEVICE_BLOCK_MULTICAST_LOOPBACK,
+ IB_DEVICE_MEM_WINDOW_TYPE_2A = IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2A,
+ IB_DEVICE_MEM_WINDOW_TYPE_2B = IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2B,
+ IB_DEVICE_RC_IP_CSUM = IB_UVERBS_DEVICE_RC_IP_CSUM,
+ IB_DEVICE_RAW_IP_CSUM = IB_UVERBS_DEVICE_RAW_IP_CSUM,
+ IB_DEVICE_CROSS_CHANNEL = IB_UVERBS_DEVICE_CROSS_CHANNEL,
+ IB_DEVICE_MANAGED_FLOW_STEERING =
+ IB_UVERBS_DEVICE_MANAGED_FLOW_STEERING,
+ IB_DEVICE_SIGNATURE_HANDOVER = IB_UVERBS_DEVICE_SIGNATURE_HANDOVER,
+ IB_DEVICE_ON_DEMAND_PAGING = IB_UVERBS_DEVICE_ON_DEMAND_PAGING,
};
enum ib_signature_prot_cap {
diff --git a/include/uapi/rdma/ib_verbs.h b/include/uapi/rdma/ib_verbs.h
index fbadb29..8bba4c4 100644
--- a/include/uapi/rdma/ib_verbs.h
+++ b/include/uapi/rdma/ib_verbs.h
@@ -7,6 +7,72 @@
* having to pull that into the kernel-internal internal ib_verbs.h
*/
+enum ib_uverbs_device_cap_flags {
+ IB_UVERBS_DEVICE_RESIZE_MAX_WR = (1 << 0),
+ IB_UVERBS_DEVICE_BAD_PKEY_CNTR = (1 << 1),
+ IB_UVERBS_DEVICE_BAD_QKEY_CNTR = (1 << 2),
+ IB_UVERBS_DEVICE_RAW_MULTI = (1 << 3),
+ IB_UVERBS_DEVICE_AUTO_PATH_MIG = (1 << 4),
+ IB_UVERBS_DEVICE_CHANGE_PHY_PORT = (1 << 5),
+ IB_UVERBS_DEVICE_UD_AV_PORT_ENFORCE = (1 << 6),
+ IB_UVERBS_DEVICE_CURR_QP_STATE_MOD = (1 << 7),
+ IB_UVERBS_DEVICE_SHUTDOWN_PORT = (1 << 8),
+ IB_UVERBS_DEVICE_INIT_TYPE = (1 << 9),
+ IB_UVERBS_DEVICE_PORT_ACTIVE_EVENT = (1 << 10),
+ IB_UVERBS_DEVICE_SYS_IMAGE_GUID = (1 << 11),
+ IB_UVERBS_DEVICE_RC_RNR_NAK_GEN = (1 << 12),
+ IB_UVERBS_DEVICE_SRQ_RESIZE = (1 << 13),
+ IB_UVERBS_DEVICE_N_NOTIFY_CQ = (1 << 14),
+
+ /*
+ * This device supports a per-device lkey or stag that can be
+ * used without performing a memory registration for the local
+ * memory. Note that ULPs should never check this flag, but
+ * instead of use the local_dma_lkey flag in the ib_pd structure,
+ * which will always contain a usable lkey.
+ */
+ IB_UVERBS_DEVICE_LOCAL_DMA_LKEY = (1 << 15),
+ IB_UVERBS_DEVICE_MEM_WINDOW = (1 << 17),
+
+ /*
+ * Devices should set IB_UVERBS_DEVICE_UD_IP_SUM if they support
+ * insertion of UDP and TCP checksum on outgoing UD IPoIB
+ * messages and can verify the validity of checksum for
+ * incoming messages. Setting this flag implies that the
+ * IPoIB driver may set NETIF_F_IP_CSUM for datagram mode.
+ */
+ IB_UVERBS_DEVICE_UD_IP_CSUM = (1 << 18),
+ IB_UVERBS_DEVICE_UD_TSO = (1 << 19),
+ IB_UVERBS_DEVICE_XRC = (1 << 20),
+
+ /*
+ * This device supports the IB "base memory management extension",
+ * which includes support for fast registrations (IB_WR_REG_MR,
+ * IB_WR_LOCAL_INV and IB_WR_SEND_WITH_INV verbs). This flag should
+ * also be set by any iWarp device which must support FRs to comply
+ * to the iWarp verbs spec. iWarp devices also support the
+ * IB_WR_RDMA_READ_WITH_INV verb for RDMA READs that invalidate the
+ * stag.
+ */
+ IB_UVERBS_DEVICE_MEM_MGT_EXTENSIONS = (1 << 21),
+ IB_UVERBS_DEVICE_BLOCK_MULTICAST_LOOPBACK = (1 << 22),
+ IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2A = (1 << 23),
+ IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2B = (1 << 24),
+ IB_UVERBS_DEVICE_RC_IP_CSUM = (1 << 25),
+ IB_UVERBS_DEVICE_RAW_IP_CSUM = (1 << 26),
+
+ /*
+ * Devices should set IB_UVERBS_DEVICE_CROSS_CHANNEL if they
+ * support execution of WQEs that involve synchronization
+ * of I/O operations with single completion queue managed
+ * by hardware.
+ */
+ IB_UVERBS_DEVICE_CROSS_CHANNEL = (1 << 27),
+ IB_UVERBS_DEVICE_MANAGED_FLOW_STEERING = (1 << 29),
+ IB_UVERBS_DEVICE_SIGNATURE_HANDOVER = (1 << 30),
+ IB_UVERBS_DEVICE_ON_DEMAND_PAGING = (1 << 31),
+};
+
enum ib_uverbs_wr_opcode {
IB_UVERBS_WR_RDMA_WRITE = 0,
IB_UVERBS_WR_RDMA_WRITE_WITH_IMM = 1,
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH 1/6] IB/uapi: expose uverbs WR opcodes
[not found] ` <1450967967-12479-2-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
@ 2015-12-27 6:04 ` Leon Romanovsky
0 siblings, 0 replies; 18+ messages in thread
From: Leon Romanovsky @ 2015-12-27 6:04 UTC (permalink / raw)
To: Christoph Hellwig
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA,
linux-rdma-u79uwXL29TY76Z2rM5mHXA
On Thu, Dec 24, 2015 at 03:39:22PM +0100, Christoph Hellwig wrote:
....
> #define MLX5_IB_SEND_UMR_UPDATE_MTT (IB_SEND_RESERVED_START << 2)
> #define MLX5_IB_QPT_REG_UMR IB_QPT_RESERVED1
> -#define MLX5_IB_WR_UMR IB_WR_RESERVED1
> +#define MLX5_IB_WR_UMR (IB_WR_END + 0)
....
>
> - IB_WR_RESERVED10,
> +
> + /* drivers may use any value greater or equal to IB_WR_END internally */
> + IB_WR_END,
IB_WR_END --> IB_WR_KERNEL_LAST
> };
>
....
> + IB_UVERBS_WR_END = 9,
I think name IB_UVERBS_WR_LAST describes better than IB_UVERBS_WR_END.
> +};
> +
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 3/6] IB/uapi: expose uverbs WC opcodes
[not found] ` <1450967967-12479-4-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
@ 2015-12-27 6:12 ` Leon Romanovsky
[not found] ` <20151227061202.GB8501-2ukJVAZIZ/Y@public.gmane.org>
0 siblings, 1 reply; 18+ messages in thread
From: Leon Romanovsky @ 2015-12-27 6:12 UTC (permalink / raw)
To: Christoph Hellwig
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA,
linux-rdma-u79uwXL29TY76Z2rM5mHXA
On Thu, Dec 24, 2015 at 03:39:24PM +0100, Christoph Hellwig wrote:
> This exposes the WC opcodes supported by uverbs as part of the uapi
> headers. It follows the same scheme as the WR opcodes.
>
> Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
> ---
> include/rdma/ib_verbs.h | 29 +++++++++++++----------------
> include/uapi/rdma/ib_verbs.h | 16 ++++++++++++++++
> 2 files changed, 29 insertions(+), 16 deletions(-)
>
> diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
> index 5dccc6a..7dce204 100644
> --- a/include/rdma/ib_verbs.h
> +++ b/include/rdma/ib_verbs.h
> @@ -819,22 +819,19 @@ enum ib_wc_status {
> const char *__attribute_const__ ib_wc_status_msg(enum ib_wc_status status);
>
> enum ib_wc_opcode {
> - IB_WC_SEND,
> - IB_WC_RDMA_WRITE,
> - IB_WC_RDMA_READ,
> - IB_WC_COMP_SWAP,
> - IB_WC_FETCH_ADD,
> - IB_WC_LSO,
> - IB_WC_LOCAL_INV,
> - IB_WC_REG_MR,
> - IB_WC_MASKED_COMP_SWAP,
> - IB_WC_MASKED_FETCH_ADD,
> -/*
> - * Set value of IB_WC_RECV so consumers can test if a completion is a
> - * receive by testing (opcode & IB_WC_RECV).
> - */
> - IB_WC_RECV = 1 << 7,
> - IB_WC_RECV_RDMA_WITH_IMM
> + IB_WC_SEND = IB_UVERBS_WC_SEND,
> + IB_WC_RDMA_WRITE = IB_UVERBS_WC_RDMA_WRITE,
> + IB_WC_RDMA_READ = IB_UVERBS_WC_RDMA_READ,
> + IB_WC_COMP_SWAP = IB_UVERBS_WC_COMP_SWAP,
> + IB_WC_FETCH_ADD = IB_UVERBS_WC_FETCH_ADD,
> + IB_WC_LSO = IB_UVERBS_WC_SEND_END,
> + IB_WC_LOCAL_INV = IB_UVERBS_WC_SEND_END + 1,
> + IB_WC_REG_MR = IB_UVERBS_WC_SEND_END + 2,
> + IB_WC_MASKED_COMP_SWAP = IB_UVERBS_WC_SEND_END + 3,
> + IB_WC_MASKED_FETCH_ADD = IB_UVERBS_WC_SEND_END + 4,
As you did it in the first patch, just don't assign after IB_WC_LOCAL_INV.
Compiler will handle IB_UVERS_WC_SEND_END + X calculations by itself.
> +
> + IB_WC_RECV = IB_UVERBS_WC_RECV,
> + IB_WC_RECV_RDMA_WITH_IMM = IB_UVERBS_WC_RECV_END,
> };
>
> enum ib_wc_flags {
> diff --git a/include/uapi/rdma/ib_verbs.h b/include/uapi/rdma/ib_verbs.h
> index 3be3152..fd7a393 100644
> --- a/include/uapi/rdma/ib_verbs.h
> +++ b/include/uapi/rdma/ib_verbs.h
> @@ -29,4 +29,20 @@ enum ib_uverbs_send_flags {
> IB_UVERBS_SEND_END = (1 << 5),
> };
>
> +enum ib_uverbs_wc_opcode {
> + IB_UVERBS_WC_SEND = 0,
> + IB_UVERBS_WC_RDMA_WRITE = 1,
> + IB_UVERBS_WC_RDMA_READ = 2,
> + IB_UVERBS_WC_COMP_SWAP = 3,
> + IB_UVERBS_WC_FETCH_ADD = 4,
> + IB_UVERBS_WC_SEND_END = 5,
> +
> + /*
> + * Set value of IB_WC_RECV so consumers can test if a completion is a
> + * receive by testing (opcode & IB_WC_RECV).
> + */
> + IB_UVERBS_WC_RECV = 1 << 7,
> + IB_UVERBS_WC_RECV_END = (1 << 7) + 1,
> +};
> +
> #endif /* _UAPI_RDMA_IB_VERBS_H */
> --
> 1.9.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 4/6] IB/uapi: expose uverbs WC flags
[not found] ` <1450967967-12479-5-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
@ 2015-12-27 6:15 ` Leon Romanovsky
[not found] ` <20151227061545.GC8501-2ukJVAZIZ/Y@public.gmane.org>
0 siblings, 1 reply; 18+ messages in thread
From: Leon Romanovsky @ 2015-12-27 6:15 UTC (permalink / raw)
To: Christoph Hellwig
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA,
linux-rdma-u79uwXL29TY76Z2rM5mHXA
On Thu, Dec 24, 2015 at 03:39:25PM +0100, Christoph Hellwig wrote:
> This exposes the WC flags supported by uverbs as part of the uapi
> headers. It follows the same scheme as the WR opcodes.
>
> Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
> ---
> include/rdma/ib_verbs.h | 14 +++++++-------
> include/uapi/rdma/ib_verbs.h | 10 ++++++++++
> 2 files changed, 17 insertions(+), 7 deletions(-)
>
> diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
> index 7dce204..337db70 100644
> --- a/include/rdma/ib_verbs.h
> +++ b/include/rdma/ib_verbs.h
> @@ -835,13 +835,13 @@ enum ib_wc_opcode {
> };
>
> enum ib_wc_flags {
> - IB_WC_GRH = 1,
> - IB_WC_WITH_IMM = (1<<1),
> - IB_WC_WITH_INVALIDATE = (1<<2),
> - IB_WC_IP_CSUM_OK = (1<<3),
> - IB_WC_WITH_SMAC = (1<<4),
> - IB_WC_WITH_VLAN = (1<<5),
> - IB_WC_WITH_NETWORK_HDR_TYPE = (1<<6),
> + IB_WC_GRH = IB_UVERBS_WC_GRH,
> + IB_WC_WITH_IMM = IB_UVERBS_WC_WITH_IMM,
> + IB_WC_WITH_INVALIDATE = IB_UVERBS_WC_WITH_INVALIDATE,
> + IB_WC_IP_CSUM_OK = IB_UVERBS_WC_IP_CSUM_OK,
> + IB_WC_WITH_SMAC = IB_UVERBS_WC_WITH_SMAC,
> + IB_WC_WITH_VLAN = IB_UVERBS_WC_WITH_VLAN,
> + IB_WC_WITH_NETWORK_HDR_TYPE = IB_UVERBS_WC_WITH_NETWORK_HDR_TYPE,
> };
>
> struct ib_wc {
> diff --git a/include/uapi/rdma/ib_verbs.h b/include/uapi/rdma/ib_verbs.h
> index fd7a393..c40c00b 100644
> --- a/include/uapi/rdma/ib_verbs.h
> +++ b/include/uapi/rdma/ib_verbs.h
> @@ -45,4 +45,14 @@ enum ib_uverbs_wc_opcode {
> IB_UVERBS_WC_RECV_END = (1 << 7) + 1,
> };
>
> +enum ib_uverbs_wc_flags {
> + IB_UVERBS_WC_GRH = (1 << 0),
> + IB_UVERBS_WC_WITH_IMM = (1 << 1),
> + IB_UVERBS_WC_WITH_INVALIDATE = (1 << 2),
> + IB_UVERBS_WC_IP_CSUM_OK = (1 << 3),
> + IB_UVERBS_WC_WITH_SMAC = (1 << 4),
> + IB_UVERBS_WC_WITH_VLAN = (1 << 5),
> + IB_UVERBS_WC_WITH_NETWORK_HDR_TYPE = (1 << 6),
> +};
It will be great to add _FLAGS_ mark in the name and add _LAST too.
> +
> #endif /* _UAPI_RDMA_IB_VERBS_H */
> --
> 1.9.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 5/6] IB/uapi: expose uverbs WC status codes
[not found] ` <1450967967-12479-6-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
@ 2015-12-27 6:17 ` Leon Romanovsky
0 siblings, 0 replies; 18+ messages in thread
From: Leon Romanovsky @ 2015-12-27 6:17 UTC (permalink / raw)
To: Christoph Hellwig
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA,
linux-rdma-u79uwXL29TY76Z2rM5mHXA
On Thu, Dec 24, 2015 at 03:39:26PM +0100, Christoph Hellwig wrote:
> This exposes the WC status codes supported by uverbs as part of the uapi
> headers. It follows the same scheme as the WR opcodes.
>
> Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
> ---
> include/rdma/ib_verbs.h | 44 ++++++++++++++++++++++----------------------
> include/uapi/rdma/ib_verbs.h | 25 +++++++++++++++++++++++++
> 2 files changed, 47 insertions(+), 22 deletions(-)
>
> diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
> index 337db70..48bfcf5 100644
> --- a/include/rdma/ib_verbs.h
> +++ b/include/rdma/ib_verbs.h
> @@ -792,28 +792,28 @@ struct ib_ah_attr {
> };
>
> enum ib_wc_status {
> - IB_WC_SUCCESS,
> - IB_WC_LOC_LEN_ERR,
> - IB_WC_LOC_QP_OP_ERR,
> - IB_WC_LOC_EEC_OP_ERR,
> - IB_WC_LOC_PROT_ERR,
> - IB_WC_WR_FLUSH_ERR,
> - IB_WC_MW_BIND_ERR,
> - IB_WC_BAD_RESP_ERR,
> - IB_WC_LOC_ACCESS_ERR,
> - IB_WC_REM_INV_REQ_ERR,
> - IB_WC_REM_ACCESS_ERR,
> - IB_WC_REM_OP_ERR,
> - IB_WC_RETRY_EXC_ERR,
> - IB_WC_RNR_RETRY_EXC_ERR,
> - IB_WC_LOC_RDD_VIOL_ERR,
> - IB_WC_REM_INV_RD_REQ_ERR,
> - IB_WC_REM_ABORT_ERR,
> - IB_WC_INV_EECN_ERR,
> - IB_WC_INV_EEC_STATE_ERR,
> - IB_WC_FATAL_ERR,
> - IB_WC_RESP_TIMEOUT_ERR,
> - IB_WC_GENERAL_ERR
> + IB_WC_SUCCESS = IB_UVERBS_WC_SUCCESS,
> + IB_WC_LOC_LEN_ERR = IB_UVERBS_WC_LOC_LEN_ERR,
> + IB_WC_LOC_QP_OP_ERR = IB_UVERBS_WC_LOC_QP_OP_ERR,
> + IB_WC_LOC_EEC_OP_ERR = IB_UVERBS_WC_LOC_EEC_OP_ERR,
> + IB_WC_LOC_PROT_ERR = IB_UVERBS_WC_LOC_PROT_ERR,
> + IB_WC_WR_FLUSH_ERR = IB_UVERBS_WC_WR_FLUSH_ERR,
> + IB_WC_MW_BIND_ERR = IB_UVERBS_WC_MW_BIND_ERR,
> + IB_WC_BAD_RESP_ERR = IB_UVERBS_WC_BAD_RESP_ERR,
> + IB_WC_LOC_ACCESS_ERR = IB_UVERBS_WC_LOC_ACCESS_ERR,
> + IB_WC_REM_INV_REQ_ERR = IB_UVERBS_WC_REM_INV_REQ_ERR,
> + IB_WC_REM_ACCESS_ERR = IB_UVERBS_WC_REM_ACCESS_ERR,
> + IB_WC_REM_OP_ERR = IB_UVERBS_WC_REM_OP_ERR,
> + IB_WC_RETRY_EXC_ERR = IB_UVERBS_WC_RETRY_EXC_ERR,
> + IB_WC_RNR_RETRY_EXC_ERR = IB_UVERBS_WC_RNR_RETRY_EXC_ERR,
> + IB_WC_LOC_RDD_VIOL_ERR = IB_UVERBS_WC_LOC_RDD_VIOL_ERR,
> + IB_WC_REM_INV_RD_REQ_ERR= IB_UVERBS_WC_REM_INV_RD_REQ_ERR,
> + IB_WC_REM_ABORT_ERR = IB_UVERBS_WC_REM_ABORT_ERR,
> + IB_WC_INV_EECN_ERR = IB_UVERBS_WC_INV_EECN_ERR,
> + IB_WC_INV_EEC_STATE_ERR = IB_UVERBS_WC_INV_EEC_STATE_ERR,
> + IB_WC_FATAL_ERR = IB_UVERBS_WC_FATAL_ERR,
> + IB_WC_RESP_TIMEOUT_ERR = IB_UVERBS_WC_RESP_TIMEOUT_ERR,
> + IB_WC_GENERAL_ERR = IB_UVERBS_WC_GENERAL_ERR,
> };
>
> const char *__attribute_const__ ib_wc_status_msg(enum ib_wc_status status);
> diff --git a/include/uapi/rdma/ib_verbs.h b/include/uapi/rdma/ib_verbs.h
> index c40c00b..fbadb29 100644
> --- a/include/uapi/rdma/ib_verbs.h
> +++ b/include/uapi/rdma/ib_verbs.h
> @@ -55,4 +55,29 @@ enum ib_uverbs_wc_flags {
> IB_UVERBS_WC_WITH_NETWORK_HDR_TYPE = (1 << 6),
> };
>
> +enum ib_uverbs_wc_status {
> + IB_UVERBS_WC_SUCCESS,
> + IB_UVERBS_WC_LOC_LEN_ERR,
> + IB_UVERBS_WC_LOC_QP_OP_ERR,
> + IB_UVERBS_WC_LOC_EEC_OP_ERR,
> + IB_UVERBS_WC_LOC_PROT_ERR,
> + IB_UVERBS_WC_WR_FLUSH_ERR,
> + IB_UVERBS_WC_MW_BIND_ERR,
> + IB_UVERBS_WC_BAD_RESP_ERR,
> + IB_UVERBS_WC_LOC_ACCESS_ERR,
> + IB_UVERBS_WC_REM_INV_REQ_ERR,
> + IB_UVERBS_WC_REM_ACCESS_ERR,
> + IB_UVERBS_WC_REM_OP_ERR,
> + IB_UVERBS_WC_RETRY_EXC_ERR,
> + IB_UVERBS_WC_RNR_RETRY_EXC_ERR,
> + IB_UVERBS_WC_LOC_RDD_VIOL_ERR,
> + IB_UVERBS_WC_REM_INV_RD_REQ_ERR,
> + IB_UVERBS_WC_REM_ABORT_ERR,
> + IB_UVERBS_WC_INV_EECN_ERR,
> + IB_UVERBS_WC_INV_EEC_STATE_ERR,
> + IB_UVERBS_WC_FATAL_ERR,
> + IB_UVERBS_WC_RESP_TIMEOUT_ERR,
> + IB_UVERBS_WC_GENERAL_ERR
> +};
The same as in previous mail, mark it as a _STATUS_ in the name.
> +
> #endif /* _UAPI_RDMA_IB_VERBS_H */
> --
> 1.9.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 3/6] IB/uapi: expose uverbs WC opcodes
[not found] ` <20151227061202.GB8501-2ukJVAZIZ/Y@public.gmane.org>
@ 2015-12-29 11:02 ` Sagi Grimberg
[not found] ` <5682685E.90700-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
0 siblings, 1 reply; 18+ messages in thread
From: Sagi Grimberg @ 2015-12-29 11:02 UTC (permalink / raw)
To: Christoph Hellwig, dledford-H+wXaHxf7aLQT0dZR+AlfA,
linux-rdma-u79uwXL29TY76Z2rM5mHXA
>> + IB_WC_SEND = IB_UVERBS_WC_SEND,
>> + IB_WC_RDMA_WRITE = IB_UVERBS_WC_RDMA_WRITE,
>> + IB_WC_RDMA_READ = IB_UVERBS_WC_RDMA_READ,
>> + IB_WC_COMP_SWAP = IB_UVERBS_WC_COMP_SWAP,
>> + IB_WC_FETCH_ADD = IB_UVERBS_WC_FETCH_ADD,
>> + IB_WC_LSO = IB_UVERBS_WC_SEND_END,
>> + IB_WC_LOCAL_INV = IB_UVERBS_WC_SEND_END + 1,
>> + IB_WC_REG_MR = IB_UVERBS_WC_SEND_END + 2,
>> + IB_WC_MASKED_COMP_SWAP = IB_UVERBS_WC_SEND_END + 3,
>> + IB_WC_MASKED_FETCH_ADD = IB_UVERBS_WC_SEND_END + 4,
> As you did it in the first patch, just don't assign after IB_WC_LOCAL_INV.
> Compiler will handle IB_UVERS_WC_SEND_END + X calculations by itself.
I disagree, I'd say its better to keep the code verbosity level here...
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 4/6] IB/uapi: expose uverbs WC flags
[not found] ` <20151227061545.GC8501-2ukJVAZIZ/Y@public.gmane.org>
@ 2015-12-29 11:04 ` Sagi Grimberg
0 siblings, 0 replies; 18+ messages in thread
From: Sagi Grimberg @ 2015-12-29 11:04 UTC (permalink / raw)
To: Christoph Hellwig, dledford-H+wXaHxf7aLQT0dZR+AlfA,
linux-rdma-u79uwXL29TY76Z2rM5mHXA
>> +enum ib_uverbs_wc_flags {
>> + IB_UVERBS_WC_GRH = (1 << 0),
>> + IB_UVERBS_WC_WITH_IMM = (1 << 1),
>> + IB_UVERBS_WC_WITH_INVALIDATE = (1 << 2),
>> + IB_UVERBS_WC_IP_CSUM_OK = (1 << 3),
>> + IB_UVERBS_WC_WITH_SMAC = (1 << 4),
>> + IB_UVERBS_WC_WITH_VLAN = (1 << 5),
>> + IB_UVERBS_WC_WITH_NETWORK_HDR_TYPE = (1 << 6),
>> +};
> It will be great to add _FLAGS_ mark in the name and add _LAST too.
Don't you prefer to stay consistent with the kernel enumeration?
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 3/6] IB/uapi: expose uverbs WC opcodes
[not found] ` <5682685E.90700-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
@ 2015-12-30 9:44 ` Christoph Hellwig
[not found] ` <20151230094429.GD12904-jcswGhMUV9g@public.gmane.org>
0 siblings, 1 reply; 18+ messages in thread
From: Christoph Hellwig @ 2015-12-30 9:44 UTC (permalink / raw)
To: Sagi Grimberg
Cc: Christoph Hellwig, dledford-H+wXaHxf7aLQT0dZR+AlfA,
linux-rdma-u79uwXL29TY76Z2rM5mHXA
On Tue, Dec 29, 2015 at 01:02:54PM +0200, Sagi Grimberg wrote:
>> As you did it in the first patch, just don't assign after IB_WC_LOCAL_INV.
>> Compiler will handle IB_UVERS_WC_SEND_END + X calculations by itself.
>
> I disagree, I'd say its better to keep the code verbosity level here...
I really don't like enum auto assignment for constants that are fixe
as part of an ABI. There is too much chance of things going wrong.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 3/6] IB/uapi: expose uverbs WC opcodes
[not found] ` <20151230094429.GD12904-jcswGhMUV9g@public.gmane.org>
@ 2015-12-30 11:28 ` Leon Romanovsky
0 siblings, 0 replies; 18+ messages in thread
From: Leon Romanovsky @ 2015-12-30 11:28 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Sagi Grimberg, dledford-H+wXaHxf7aLQT0dZR+AlfA,
linux-rdma-u79uwXL29TY76Z2rM5mHXA
On Wed, Dec 30, 2015 at 10:44:29AM +0100, Christoph Hellwig wrote:
> On Tue, Dec 29, 2015 at 01:02:54PM +0200, Sagi Grimberg wrote:
> >> As you did it in the first patch, just don't assign after IB_WC_LOCAL_INV.
> >> Compiler will handle IB_UVERS_WC_SEND_END + X calculations by itself.
> >
> > I disagree, I'd say its better to keep the code verbosity level here...
>
> I really don't like enum auto assignment for constants that are fixe
> as part of an ABI. There is too much chance of things going wrong.
It is up to you, just be constant in your enums assignments.
Thanks.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/6] IB/uapi: expose uverbs send WR flags
[not found] ` <1450967967-12479-3-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
@ 2015-12-31 14:45 ` Haggai Eran
0 siblings, 0 replies; 18+ messages in thread
From: Haggai Eran @ 2015-12-31 14:45 UTC (permalink / raw)
To: Christoph Hellwig, dledford-H+wXaHxf7aLQT0dZR+AlfA
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
On 24/12/2015 16:39, Christoph Hellwig wrote:
> This exposes the send WR flags supported by uverbs as part of the uapi
> headers. It follows the same scheme as the WR opcodes.
>
> Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
> ---
> drivers/infiniband/hw/mlx5/mlx5_ib.h | 6 +++---
> include/rdma/ib_verbs.h | 14 ++++++--------
> include/uapi/rdma/ib_verbs.h | 9 +++++++++
> 3 files changed, 18 insertions(+), 11 deletions(-)
>
> diff --git a/include/uapi/rdma/ib_verbs.h b/include/uapi/rdma/ib_verbs.h
> index 330175e..3be3152 100644
> --- a/include/uapi/rdma/ib_verbs.h
> +++ b/include/uapi/rdma/ib_verbs.h
> @@ -20,4 +20,13 @@ enum ib_uverbs_wr_opcode {
> IB_UVERBS_WR_END = 9,
> };
>
> +enum ib_uverbs_send_flags {
> + IB_UVERBS_SEND_FENCE = (1 << 0),
> + IB_UVERBS_SEND_SIGNALED = (1 << 1),
> + IB_UVERBS_SEND_SOLICITED = (1 << 2),
> + IB_UVERBS_SEND_INLINE = (1 << 3),
> + IB_UVERBS_SEND_IP_CSUM = (1 << 4),
> + IB_UVERBS_SEND_END = (1 << 5),
Do you think we need a check in ib_uverbs_post_send to see only
user flags are passed? I think it would be safer.
Other than that,
Reviewed-by: Haggai Eran <haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 6/6] IB/uapi: expose device capability flags
[not found] ` <1450967967-12479-7-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
@ 2015-12-31 15:17 ` Haggai Eran
0 siblings, 0 replies; 18+ messages in thread
From: Haggai Eran @ 2015-12-31 15:17 UTC (permalink / raw)
To: Christoph Hellwig, dledford-H+wXaHxf7aLQT0dZR+AlfA
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
On 24/12/2015 16:39, Christoph Hellwig wrote:
> Expose the device capability flags which can be queried through uverbs in
> the uapi headers.
>
> Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
> ---
> include/rdma/ib_verbs.h | 94 +++++++++++++++-----------------------------
> include/uapi/rdma/ib_verbs.h | 66 +++++++++++++++++++++++++++++++
> 2 files changed, 98 insertions(+), 62 deletions(-)
>
> diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
> index 48bfcf5..b8d4113 100644
> --- a/include/rdma/ib_verbs.h
> +++ b/include/rdma/ib_verbs.h
> @@ -151,68 +151,38 @@ enum rdma_link_layer {
> };
>
> enum ib_device_cap_flags {
> - IB_DEVICE_RESIZE_MAX_WR = (1 << 0),
> - IB_DEVICE_BAD_PKEY_CNTR = (1 << 1),
> - IB_DEVICE_BAD_QKEY_CNTR = (1 << 2),
> - IB_DEVICE_RAW_MULTI = (1 << 3),
> - IB_DEVICE_AUTO_PATH_MIG = (1 << 4),
> - IB_DEVICE_CHANGE_PHY_PORT = (1 << 5),
> - IB_DEVICE_UD_AV_PORT_ENFORCE = (1 << 6),
> - IB_DEVICE_CURR_QP_STATE_MOD = (1 << 7),
> - IB_DEVICE_SHUTDOWN_PORT = (1 << 8),
> - IB_DEVICE_INIT_TYPE = (1 << 9),
> - IB_DEVICE_PORT_ACTIVE_EVENT = (1 << 10),
> - IB_DEVICE_SYS_IMAGE_GUID = (1 << 11),
> - IB_DEVICE_RC_RNR_NAK_GEN = (1 << 12),
> - IB_DEVICE_SRQ_RESIZE = (1 << 13),
> - IB_DEVICE_N_NOTIFY_CQ = (1 << 14),
> -
> - /*
> - * This device supports a per-device lkey or stag that can be
> - * used without performing a memory registration for the local
> - * memory. Note that ULPs should never check this flag, but
> - * instead of use the local_dma_lkey flag in the ib_pd structure,
> - * which will always contain a usable lkey.
> - */
> - IB_DEVICE_LOCAL_DMA_LKEY = (1 << 15),
> - IB_DEVICE_RESERVED /* old SEND_W_INV */ = (1 << 16),
Was this ever used by user-space? If so, I think there should be a
comment saying that bit 16 is reserved, perhaps pointing to commit
0f39cf3d54e6 ("IB/core: Add support for "send with invalidate" work
requests").
> + /*
> + * This device supports a per-device lkey or stag that can be
> + * used without performing a memory registration for the local
> + * memory. Note that ULPs should never check this flag, but
> + * instead of use the local_dma_lkey flag in the ib_pd structure,
> + * which will always contain a usable lkey.
> + */
> + IB_UVERBS_DEVICE_LOCAL_DMA_LKEY = (1 << 15),
I don't think user-space should be able to use local_dma_lkey.
Regards,
Haggai
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: start moving user space visible constants to uapi headers
[not found] ` <1450967967-12479-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
` (5 preceding siblings ...)
2015-12-24 14:39 ` [PATCH 6/6] IB/uapi: expose device capability flags Christoph Hellwig
@ 2016-01-04 17:02 ` Steve Wise
6 siblings, 0 replies; 18+ messages in thread
From: Steve Wise @ 2016-01-04 17:02 UTC (permalink / raw)
To: Christoph Hellwig, dledford-H+wXaHxf7aLQT0dZR+AlfA
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA
On 12/24/2015 8:39 AM, Christoph Hellwig wrote:
> Currently very little of the uverbs user interface is actually exposed in
> uapi headers, and it's a constant struggle to figure out what's kernel
> internal and what is actually exposed in public. This series starts
> sorting this out by creating the infrastructure for a uapi header shared
> between uverbs and the core IB stack, and starts moving all WR and WC
> constants as well as the device capabilitity flags there.
>
> A lot more work will have to follow, and I hope others will help out as
> well.
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
Series looks ok to me.
Reviewed-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2016-01-04 17:02 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-24 14:39 start moving user space visible constants to uapi headers Christoph Hellwig
[not found] ` <1450967967-12479-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-24 14:39 ` [PATCH 1/6] IB/uapi: expose uverbs WR opcodes Christoph Hellwig
[not found] ` <1450967967-12479-2-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-27 6:04 ` Leon Romanovsky
2015-12-24 14:39 ` [PATCH 2/6] IB/uapi: expose uverbs send WR flags Christoph Hellwig
[not found] ` <1450967967-12479-3-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-31 14:45 ` Haggai Eran
2015-12-24 14:39 ` [PATCH 3/6] IB/uapi: expose uverbs WC opcodes Christoph Hellwig
[not found] ` <1450967967-12479-4-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-27 6:12 ` Leon Romanovsky
[not found] ` <20151227061202.GB8501-2ukJVAZIZ/Y@public.gmane.org>
2015-12-29 11:02 ` Sagi Grimberg
[not found] ` <5682685E.90700-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-12-30 9:44 ` Christoph Hellwig
[not found] ` <20151230094429.GD12904-jcswGhMUV9g@public.gmane.org>
2015-12-30 11:28 ` Leon Romanovsky
2015-12-24 14:39 ` [PATCH 4/6] IB/uapi: expose uverbs WC flags Christoph Hellwig
[not found] ` <1450967967-12479-5-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-27 6:15 ` Leon Romanovsky
[not found] ` <20151227061545.GC8501-2ukJVAZIZ/Y@public.gmane.org>
2015-12-29 11:04 ` Sagi Grimberg
2015-12-24 14:39 ` [PATCH 5/6] IB/uapi: expose uverbs WC status codes Christoph Hellwig
[not found] ` <1450967967-12479-6-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-27 6:17 ` Leon Romanovsky
2015-12-24 14:39 ` [PATCH 6/6] IB/uapi: expose device capability flags Christoph Hellwig
[not found] ` <1450967967-12479-7-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2015-12-31 15:17 ` Haggai Eran
2016-01-04 17:02 ` start moving user space visible constants to uapi headers Steve Wise
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.