Re: [PATCH RFC v2 1/2] RDMA: Add indication for in kernel API support to IB device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux