[ofw] port RDS to OFW - request for input...
Smith, Stan
stan.smith at intel.com
Wed Jul 22 16:23:57 PDT 2009
Richard Frank wrote:
> We are investigating what is required to port the RDS driver to OFW..
>
> RDS is a kernel mode driver which uses CMA (rdmacm) interfaces.
>
> A general question we are thinking about is whether or not there is a
> requirement for a kernel mode cma (rmda_cm) library / driver for use
> by kernel mode clients in Windows.
>
> We are looking for input - to see if there is a general requirement
> for this
> kernel rdma_cm lib and how to build it (what interface should look
> like (direct call / IRP)) - or - if we should consider alternatives
> which leverage existing kernel interfaces / drivers.
>
> Some alternatives are:
>
> a) leverage existing wvdriver.sys - calling it directly from kernel
> (creating IRPs, etc)
> and feeding it with required information to complete address
> translation, etc..
> possibly using kernel mode sockets interfaces..
>
> b) somehow leveraging the existing user mode lib rdma cm (winverbs)
> via a user mode daemon which handles requests to perform connection
> management operations from kernel mode drivers..
>
> c) work directly with IBAL.. etc..
<Notice the 'Brain Storming' stamp - proceed with caution>
>From the conversation so far a Windows RDS in the kernel implementation wants the following OFED kernel interfaces:
FMR - Fast kernel memory registration.
rdma_cm - ala Linux kernel mode interfaces
ibverbs - Linux kernel mode interfaces (mainly post send/recv?)
Kernel mode IBAL provides FMR, IBAL-CM & IBAL-IB-verbs.
Assuming the user-mode RDS client opens a socket for an AF_RDS protocol family, then makes RDS (somewhat like UD) data transfer calls; the kernel mode RDS driver will receives IRP's containing control and possibly data [data proper or user-mode data pointer(s) scatter/gather?].
Taking Sean's divide-n-conquer approach let's talk about kernel shim layers.
1) How hard/reasonable would it be to provide an ibverbs interface layer over IBAL verbs; given it's RDS specific and targeted at data transfer (minimal subset)?
2) Is it possible/reasonable to construct an rdma_cm interface layer over IBAL-CM? How different are the semantics?
Question: Are #1 & #2 any easier, faster or more sane than building kernel mode winverbs interfaces for FMR, rdma_cm and ibverbs-data-xfer?
OK, here comes the broad stroke brush.... (SWAG)
Building winverbs interfaces:
FMR and ibverbs prototype development: 1 head 12 weeks; kind of hard to test without a CM?
The 'real' issue is rdma_cm - building all the QP 0+1 MAD connection mgmt handing and speaking of MAD handling, IBAL, winverbs; who is in charge of MAD processing? SWAG - 1 head 24 weeks to a working prototype.
Shimming IBAL -
FMR and ibverbs interfaces: 1 head 8 weeks
rdma_cm IF over IBAL-CM: 1 head 12 weeks?
Port kernel RDS to IBAL interfaces (replace rdam_cm & ibverbs IF with IBAL IFs) 6 - 8 months??
BTW, when I speak of heads - anyone of the following would do nicely.
Sean, would you like to explain how whacked all this is? :-)
Fab or Tzachi ?
Flame suit zipped and ready.....
OFED
> _______________________________________________
> ofw mailing list
> ofw at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
More information about the ofw
mailing list