<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2722" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>An option li</FONT></SPAN><SPAN
class=928091713-06122005><FONT face=Arial color=#0000ff size=2>ke that was
discussed in RNIC-PI, but is not generally</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>explicitly supported.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>What the kernel daemon must do is map the user-space
to</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>bus/io addresses and then physically register that as
a</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>Memory Region (or LMR if working at the DAT
layer).</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>If the user-mode application is not explicitly involved
in</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>identifying what buffers are going to be used (i.e.,
registering</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>the memory) then you won't achieve the full efficiency of
RDMA.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>Creating memory regions per operation at the verb layer is
expensive.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>and interferes with pipelining. Full fast-memory-register
work requests</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>are defined in iWARP and the latest IBTA spec, but has not
made</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>it into wide deployment yet.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>Unless the user-kernel daemon interface is something you
are</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=928091713-06122005><FONT face=Arial
color=#0000ff size=2>inheriting I would not recommend this
approach.</FONT></SPAN></DIV><BR>
<BLOCKQUOTE
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> openib-general-bounces@openib.org
[mailto:openib-general-bounces@openib.org] <B>On Behalf Of </B>Ian
Jiang<BR><B>Sent:</B> Tuesday, December 06, 2005 4:52 AM<BR><B>To:</B> James
Lentini<BR><B>Cc:</B> openib-general<BR><B>Subject:</B> Re: [openib-general]
[kDAPL]How to register a vmalloc() allocated buffer<BR></FONT><BR></DIV>
<DIV></DIV>Hi James,<BR>You are always so kind!<BR>Now I have a question about
reading a buffer of a application in user space.<BR>Is it the only way to use
the uDAPL?<BR>I used to have an idea like this: <BR>The application in user
space gives the virtual start address and length of its data buffer to a
kernel module program. This kernel program acts as a application of the kDAPL
and registers the user space data buffer with the kDAPl, then request a RDMA
read operation to complete the data transferring.<BR>But I think it is not
feasible after getting your last reply. Am I right?<BR>Please give some
suggestion and thanks very much!<BR><BR>
<DIV><SPAN class=gmail_quote>On 12/6/05, <B class=gmail_sendername>James
Lentini</B> <<A onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:jlentini@netapp.com" target=_blank>jlentini@netapp.com </A>>
wrote:</SPAN>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Hi
Ian,<BR><BR>An IB HCA needs to be able to DMA the memory used for RDMA read.
Since<BR>vmalloc does not guarantee that the memory it returns can be
accessed<BR>via DMA, you should not use
vmalloc.<BR><BR>james<BR></BLOCKQUOTE></DIV><BR><BR clear=all><BR>-- <BR>Ian
Jiang<BR><A onclick="return top.js.OpenExtLink(window,event,this)"
href="mailto:ianjiang.ict@gmail.com"
target=_blank>ianjiang.ict@gmail.com</A><BR><BR>Laboratory of Spatial
Information Technology <BR>Division of System Architecture<BR>Institute of
Computing Technology <BR>Chinese Academy of Sciences </BLOCKQUOTE></BODY></HTML>