On Mon, Jan 07, 2019 at 01:06:58PM -0700, Jason Gunthorpe wrote: > On Mon, Jan 07, 2019 at 10:15:20AM +0200, Leon Romanovsky wrote: > > On Mon, Jan 07, 2019 at 10:08:11AM +0200, Gal Pressman wrote: > > > On 06-Jan-19 23:39, Jason Gunthorpe wrote: > > > > On Sun, Jan 06, 2019 at 11:23:02AM +0200, Gal Pressman wrote: > > > >> Drivers that do not provide kernel verbs support should not be used by > > > >> ib kernel clients and fail. > > > >> In case a device does not implement all mandatory verbs for kverbs usage > > > >> mark it as a non kverbs provider and prevent its usage for all clients > > > >> except for uverbs. > > > >> > > > >> The device is marked as a non kverbs provider using the > > > >> 'kverbs_provider' flag which should only be set by the core code. > > > >> The clients can choose whether kverbs are requested for it usage using > > > >> the 'no_kverbs_req' flag which is currently set for uverbs only. > > > >> > > > >> This patch allows drivers to remove mandatory verbs stubs and simply set > > > >> the callback to NULL. The IB device will be registered as a non-kverbs > > > >> provider. > > > >> > > > >> Signed-off-by: Gal Pressman <galpress@xxxxxxxxxx> > > > >> drivers/infiniband/core/device.c | 12 ++++++++---- > > > >> drivers/infiniband/core/uverbs_main.c | 1 + > > > >> include/rdma/ib_verbs.h | 5 +++++ > > > >> 3 files changed, 14 insertions(+), 4 deletions(-) > > > >> > > > >> diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c > > > >> index 47ab34ee1a9d..6c1f71007ec4 100644 > > > >> +++ b/drivers/infiniband/core/device.c > > > >> @@ -121,13 +121,15 @@ static int ib_device_check_mandatory(struct ib_device *device) > > > >> }; > > > >> int i; > > > >> > > > >> + device->kverbs_provider = true; > > > >> for (i = 0; i < ARRAY_SIZE(mandatory_table); ++i) { > > > >> if (!*(void **) ((void *) &device->ops + > > > >> mandatory_table[i].offset)) { > > > >> dev_warn(&device->dev, > > > >> - "Device is missing mandatory function %s\n", > > > >> + "Device is missing mandatory function %s, disabling kverbs support\n", > > > >> mandatory_table[i].name); > > > > > > > > Why not get rid of the message? > > > > > > Will do. > > > > You need to be nice to users, and I see value in this warning. > > If we are supporting this we should not have dev_warns for a normal > occurance. Something like RDMA tool should report no-kverbs or > somesuch instead I don't think that cleanup code do not use stubs immediately means that "we are supporting that mode". This warning is a reminder that such driver doesn't really belong to RDMA subsystem and many of built-in features are not working on this device. Thanks > > Jason
Attachment:
signature.asc
Description: PGP signature