SMB Direct Implementation via Linux Device Driver for Samba Design Doc, final?
ogerlitz at mellanox.com
Tue Sep 3 17:05:27 CEST 2013
We can make that even simpler, if the size of the event/command is short
and fixed, you
can only use non-blocking read from the char-device for kerne--> user
notifications, and write
for user --> kernel commands.
The event/decriptor will be copied by the char-device from/to user, BUT
the buffers pointed by it
(e.g those who are used for RDMA) will not be copied but rather pointed
to by the event.
This pointing mechanism relies on the mmap design for the rdma buffers
we previously discussed.
Note that OTOH its possible for user space to allocate the N 1MB buffers
for the session
and provide the VMA/virt addresses for the N buffers. The kernel
char-device will scan
the DMA addresses of these buffers and maintain a mapping key for which
it returns a handle
to the caller. Each time the user space likes to use a certain buffer it
should provide the key
along with the command that goes over the events channel.
More information about the samba-technical