Pull rdma updates from Jason Gunthorpe: "A smaller set of patches, nothing stands out as being particularly major this cycle. The biggest item would be the new HIP09 HW support from HNS, otherwise it was pretty quiet for new work here: - Driver bug fixes and updates: bnxt_re, cxgb4, rxe, hns, i40iw, cxgb4, mlx4 and mlx5 - Bug fixes and polishing for the new rts ULP - Cleanup of uverbs checking for allowed driver operations - Use sysfs_emit all over the place - Lots of bug fixes and clarity improvements for hns - hip09 support for hns - NDR and 50/100Gb signaling rates - Remove dma_virt_ops and go back to using the IB DMA wrappers - mlx5 optimizations for contiguous DMA regions" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (147 commits) RDMA/cma: Don't overwrite sgid_attr after device is released RDMA/mlx5: Fix MR cache memory leak RDMA/rxe: Use acquire/release for memory ordering RDMA/hns: Simplify AEQE process for different types of queue RDMA/hns: Fix inaccurate prints RDMA/hns: Fix incorrect symbol types RDMA/hns: Clear redundant variable initialization RDMA/hns: Fix coding style issues RDMA/hns: Remove unnecessary access right set during INIT2INIT RDMA/hns: WARN_ON if get a reserved sl from users RDMA/hns: Avoid filling sl in high 3 bits of vlan_id RDMA/hns: Do shift on traffic class when using RoCEv2 RDMA/hns: Normalization the judgment of some features RDMA/hns: Limit the length of data copied between kernel and userspace RDMA/mlx4: Remove bogus dev_base_lock usage RDMA/uverbs: Fix incorrect variable type RDMA/core: Do not indicate device ready when device enablement fails RDMA/core: Clean up cq pool mechanism RDMA/core: Update kernel documentation for ib_create_named_qp() MAINTAINERS: SOFT-ROCE: Change Zhu Yanjun's email address ...
Showing the changes to include/uapi (3 of 175 files). Show all
Unified · Split
| @@ -43,6 +43,10 @@ struct hns_roce_ib_create_cq { · 42 unmodified lines | ||
| 43 | 43 | __u32 reserved; |
| 44 | 44 | }; |
| 45 | 45 | |
| 46 | +enum hns_roce_cq_cap_flags { | |
| 47 | + HNS_ROCE_CQ_FLAG_RECORD_DB = 1 << 0, | |
| 48 | +}; | |
| 49 | + | |
| 46 | 50 | struct hns_roce_ib_create_cq_resp { |
| 47 | 51 | __aligned_u64 cqn; /* Only 32 bits used, 64 for compat */ |
| 48 | 52 | __aligned_u64 cap_flags; |
| @@ -69,6 +73,12 @@ struct hns_roce_ib_create_qp { · 20 unmodified lines | ||
| 69 | 73 | __aligned_u64 sdb_addr; |
| 70 | 74 | }; |
| 71 | 75 | |
| 76 | +enum hns_roce_qp_cap_flags { | |
| 77 | + HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0, | |
| 78 | + HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1, | |
| 79 | + HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2, | |
| 80 | +}; | |
| 81 | + | |
| 72 | 82 | struct hns_roce_ib_create_qp_resp { |
| 73 | 83 | __aligned_u64 cap_flags; |
| 74 | 84 | }; |
| @@ -596,20 +596,6 @@ enum { · 595 unmodified lines | ||
| 596 | 596 | IB_UVERBS_CREATE_QP_SUP_COMP_MASK = IB_UVERBS_CREATE_QP_MASK_IND_TABLE, |
| 597 | 597 | }; |
| 598 | 598 | |
| 599 | −enum { | |
| 600 | − /* | |
| 601 | − * This value is equal to IB_QP_DEST_QPN. | |
| 602 | − */ | |
| 603 | − IB_USER_LEGACY_LAST_QP_ATTR_MASK = 1ULL << 20, | |
| 604 | −}; | |
| 605 | − | |
| 606 | −enum { | |
| 607 | − /* | |
| 608 | − * This value is equal to IB_QP_RATE_LIMIT. | |
| 609 | − */ | |
| 610 | − IB_USER_LAST_QP_ATTR_MASK = 1ULL << 25, | |
| 611 | −}; | |
| 612 | − | |
| 613 | 599 | struct ib_uverbs_ex_create_qp { |
| 614 | 600 | __aligned_u64 user_handle; |
| 615 | 601 | __u32 pd_handle; |
| @@ -181,4 +181,25 @@ struct rxe_modify_srq_cmd { · 180 unmodified lines | ||
| 181 | 181 | __aligned_u64 mmap_info_addr; |
| 182 | 182 | }; |
| 183 | 183 | |
| 184 | +/* This data structure is stored at the base of work and | |
| 185 | + * completion queues shared between user space and kernel space. | |
| 186 | + * It contains the producer and consumer indices. Is also | |
| 187 | + * contains a copy of the queue size parameters for user space | |
| 188 | + * to use but the kernel must use the parameters in the | |
| 189 | + * rxe_queue struct. For performance reasons arrange to have | |
| 190 | + * producer and consumer indices in separate cache lines | |
| 191 | + * the kernel should always mask the indices to avoid accessing | |
| 192 | + * memory outside of the data area | |
| 193 | + */ | |
| 194 | +struct rxe_queue_buf { | |
| 195 | + __u32 log2_elem_size; | |
| 196 | + __u32 index_mask; | |
| 197 | + __u32 pad_1[30]; | |
| 198 | + __u32 producer_index; | |
| 199 | + __u32 pad_2[31]; | |
| 200 | + __u32 consumer_index; | |
| 201 | + __u32 pad_3[31]; | |
| 202 | + __u8 data[]; | |
| 203 | +}; | |
| 204 | + | |
| 184 | 205 | #endif /* RDMA_USER_RXE_H */ |