Re: Safe to delete rpcrdma.ko loading start-up code

Zhu Yanjun
2024-05-22T07:57:32Z

在 2024/5/21 22:30, Sagi Grimberg 写道:
>
>
> On 21/05/2024 19:37, Jason Gunthorpe wrote:
>> On Tue, May 21, 2024 at 07:10:53PM +0300, Sagi Grimberg wrote:
>>>
>>> On 21/05/2024 18:23, Jason Gunthorpe wrote:
>>>> On Tue, May 21, 2024 at 05:12:23PM +0300, Sagi Grimberg wrote:
>>>>>>>>> I also see that srp(t) and iser(t) are loaded too.. IIRC these are
>>>>>>>>> loaded by their userspace counterparts as well (or at least they
>>>>>>>>> should).
>>>>>>>> And AFIAK, these don't have a way to autoload at all. autoload
>>>>>>>> requires the kernel to call request_module..
>>>>>>> nvme/nvmet/isert are requested by the kernel.
>>>>>> How? What is the interface to trigger request_module?
>>>>> On the host, writing to the nvme-fabrics misc device a comma-separated
>>>>> connection string
>>>>> contains a transport string, which triggers the corresponding
>>>>> module to be
>>>>> requested.
>>>> But how did nvme-fabrics even get loaded to write to it's config fs in
>>>> the first place?
>>> Something (/etc/modules-load?) loaded it intentionally.
>>> That something knows about a concrete intention to use nvme though...
>> This mechanism we are talking about is an add-on to /etc/modules-load
>> that only executes if rdma HW is present.
>
> Still does not mean you want to use all the ulps though...
>
>>
>> This is why it is a good place to load nvme-fabrics stuff, if you
>> don't have rdma HW then you know you don't need it.
>
> Do I want to autoload nvme-fabrics if I have a nvme device? do I want
> autoload nvme-tcp if I have an ethernet nic? maybe wlan nic is also a
> sufficient reason?
>
> I just don't see why the presence of an rdma device dictates that all
> the ulps
> autoload. Does rxe/siw count as rdma HW?

RXE/SIW can be auto loaded with the command "rdma link ...".
And some kernel modules, for example ib_core.ko, udp_tunnel.ko,
ip6_udp_tunnel.ko and ib_uverbs.ko, are also auto-loaded when rxe/siw
kernel modules are loaded.

RXE/SIW are emulation RDMA kernel drivers. They are based on NIC HW.
Normally all the NICs can support RXE/SIW RDMA drivers because RXE/SIW
do not require additional NIC features.

To now almost all the NIC HW can support RXE/SIW, even some virtual NICs
can also support RXE/SIW, for example, bonding, TUN and veth.

Zhu Yanjun

>
>>
>> Autoloading is the version where you do 'mount -tnfs -o=rdma' and the
>> kernel automatically request_module's nfs and then nfs-rdma based only
>> on the command line options.
>>
>> I'm not sure this is even possible with configfs as the directories
>> you need to write into don't even exist until the module(s) are
>> loaded, right?
>
> Right. The entry-point of the subsystem needs to be loaded (nvmet is
> loaded by nvmetcli),
> the individual transports/drivers are auto-selected.