Implement pcs_krpc in kio module to support using kernel RPC directly
from userspace.
https://pmc.acronis.work/browse/VSTOR-82613
Resend in proper way.
* Fix issues found from review
* Fix bugs found in test due to improper connection state transition.
Liu Kui (4):
fs/fuse kio: implement mem
Previously pcs_cs is the only client of pcs_rpc, so they are tightly
bound together. However this needs to be changed with addition of
pcs_krpc. So now:
- pcs_rpc will be created on first creation of either pcs_krpc or pcs_cs.
and destroyed on last destruction of both pcs_krpc and pcs_cs.
- pcs_r
The memory region(MR) is very similar to RDMA memory region, however
much simpler. It allows userspace to register a bulky memory to kernel,
which would pin all pages from that memory and returns a reference back
to userspace. Userspace can then just pass the descriptor(start address,
length) of a
Currently there are 2 connections for every RPC, one in userspace,
one in kernel. This wastes a lot of resources on client hosts from
a huge cluster. It's therefore desirable to eliminate the connection
in userspace by using kernel RPC directly from userspace.
The newly implemented pcs_krpc serves
Enable pcs_krpc in kio module:
- add module parameter 'pcs_krpc_support' to indicate whether pcs_krpc
is supported.
- export APIs to userspace as sub-commands of the FUSE_IOC_KIO_CALL
ioctl command on the /dev/fuse device.
https://pmc.acronis.work/browse/VSTOR-82613
Signed-off-by: Liu Kui
--