On 10/9/20 11:34 PM, Jason Gunthorpe wrote:
Yes, because namespaces are fundamentally supposed to be anchored in the processes inside the namespace. Having the kernel jump in and start opening holes as soon as a namespace is created is just wrong. At a bare minimum the listener should not exist until something in the namespace is willing to work with RDS.
As I mentioned in a previous email, starting is not the problem. It is the problem of deleting a namespace. Using what is suggested above, it means that there needs to be an explicit shutdown in addition to the normal shutdown of a namespace. It is not clear why this is necessary. The additional reference by rdma_create_id() puts an unnecessary restriction on what a kernel module can do. Without this reference, if a kernel module wants to use, say a one-to-one/many mapping model to user space socket as suggested above, it can do that. And if a kernel module does not want to use this model, it can also choose to do that. It is not clear why such a restriction must be enforced in RDMA subsystem while there is no such restriction using kernel socket. -- K. Poon ka-cheong.poon@xxxxxxxxxx