On Fri, Apr 20, 2018 at 01:16:39PM -0600, Jason Gunthorpe wrote: > On Fri, Apr 20, 2018 at 02:01:14PM -0500, Steve Wise wrote: > > > > > > > > On Fri, Mar 30, 2018 at 11:03:36AM -0700, Steve Wise wrote: > > > > enum rdma_nldev_attr { > > > > /* don't change the order or add anything between, this is ABI! */ > > > > RDMA_NLDEV_ATTR_UNSPEC, > > > > @@ -390,6 +399,17 @@ enum rdma_nldev_attr { > > > > RDMA_NLDEV_ATTR_RES_PD_ENTRY, /* nested table */ > > > > RDMA_NLDEV_ATTR_RES_LOCAL_DMA_LKEY, /* u32 */ > > > > RDMA_NLDEV_ATTR_RES_UNSAFE_GLOBAL_RKEY, /* u32 */ > > > > + /* > > > > + * provider-specific attributes. > > > > + */ > > > > + RDMA_NLDEV_ATTR_PROVIDER, /* nested table */ > > > > + RDMA_NLDEV_ATTR_PROVIDER_ENTRY, /* nested > > > table */ > > > > + RDMA_NLDEV_ATTR_PROVIDER_STRING, /* string */ > > > > + RDMA_NLDEV_ATTR_PROVIDER_PRINT_TYPE, /* u8 */ > > > > + RDMA_NLDEV_ATTR_PROVIDER_S32, /* s32 */ > > > > + RDMA_NLDEV_ATTR_PROVIDER_U32, /* u32 */ > > > > + RDMA_NLDEV_ATTR_PROVIDER_S64, /* s64 */ > > > > + RDMA_NLDEV_ATTR_PROVIDER_U64, /* u64 */ > > > > > > Also this is a good place to use our new DRIVER_ID thing. > > > > > > > DRIVER_ID? > > enum rdma_driver_id { > RDMA_DRIVER_UNKNOWN, > RDMA_DRIVER_MLX5, > RDMA_DRIVER_MLX4, > RDMA_DRIVER_CXGB3, > RDMA_DRIVER_CXGB4, > RDMA_DRIVER_MTHCA, > RDMA_DRIVER_BNXT_RE, > RDMA_DRIVER_OCRDMA, > RDMA_DRIVER_NES, > RDMA_DRIVER_I40IW, > RDMA_DRIVER_VMW_PVRDMA, > RDMA_DRIVER_QEDR, > RDMA_DRIVER_HNS, > RDMA_DRIVER_USNIC, > RDMA_DRIVER_RXE, > RDMA_DRIVER_HFI1, > RDMA_DRIVER_QIB, > }; > > > > > > > If you send that integer when the RDMA_NLDEV_ATTR_PROVIDER is opened > > > then the userspace at least knows what driver sent the data.. > > > > > > > The provider-specific data comes along with the core resource attributes for > > a given resource query. It isn't like an application can query just > > provider attributes. It queries a resource or set of them or all of them, > > and it gets back core+provide attrs for each resource. > > It is not about the query, it is about having the data be > self-describing.. There is no easy way to guess what the underlying > device is to interpret the strings. Not really, in order to get data from the kernel, user will send query with specific ib_device index and this index will be returned back. There is no need in this enum for anything except future strace support. Thanks > > Jason
Attachment:
signature.asc
Description: PGP signature