[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20161124000825.GA73280@knc-06.sc.intel.com>
Date: Wed, 23 Nov 2016 16:08:25 -0800
From: "Vishwanathapura, Niranjana" <niranjana.vishwanathapura@...el.com>
To: Jason Gunthorpe <jgunthorpe@...idianresearch.com>
Cc: "ira.weiny" <ira.weiny@...el.com>,
Doug Ledford <dledford@...hat.com>, linux-rdma@...r.kernel.org,
netdev@...r.kernel.org,
Dennis Dalessandro <dennis.dalessandro@...el.com>
Subject: Re: [RFC 02/10] IB/hfi-vnic: Virtual Network Interface Controller
(VNIC) Bus driver
On Tue, Nov 22, 2016 at 05:49:32PM -0700, Jason Gunthorpe wrote:
>> > > We could add a custom Interface between HFI1 driver and hfi_vnic drivers
>> > > without involving a bus.
>> >
>> > hfi is already registering on the infiniband class, just use that.
>>
>> I don't understand what you mean here?
>
>Get the struct ib_device for the hfi and then do something to get hfi
>specific function calls.
>
>Or work it backwards with a _register function..
>
OK, thanks for your feedback.
We can make the hfi_vnic module as an ib client (which it is) like other ULPs,
and do not have an in-built or custom bus for binding.
Then the hfi_vnic ULP by some mechanism will identify the device as hfi1 device
and will only serve that device.
In order to pass the hfi function pointers to the hfi_vnic ULP, I can,
a) Have hfi_vnic ULP define an interface API for hfi1 driver to call to
register its callback (as you pointed). Unfortunately there will be a module
dependency here.
Or,
b) Add a new member ‘struct vnic_ops’ either to the ib_device structure or
ib_port_immutable structure. As it is hfi1 specific, only hfi1 driver will set
it. No module dependency here.
And will move the hfi_vnic module under ‘drivers/infiniband/ulp/hfi_vnic’.
All these will remove undue complexity and fit the driver in current design
framework as per your suggestion.
Let me know your comments.
Niranjana
>
>Jason
Powered by blists - more mailing lists