[openib-general] [kDAPL]How to register a vmalloc() allocated buffer

Caitlin Bestler caitlinb at broadcom.com
Tue Dec 6 05:24:39 PST 2005


An option like that was discussed in RNIC-PI, but is not generally
explicitly supported.
 
What the kernel daemon must do is map the user-space to
bus/io addresses and then physically register that as a
Memory Region (or LMR if working at the DAT layer).
 
If the user-mode application is not explicitly involved in
identifying what buffers are going to be used (i.e., registering
the memory) then you won't achieve the full efficiency of RDMA.
Creating memory regions per operation at the verb layer is expensive.
and interferes with pipelining. Full fast-memory-register work requests
are defined in iWARP and the latest IBTA spec, but has not made
it into wide deployment yet.
 
Unless the user-kernel daemon interface is something you are
inheriting I would not recommend this approach.


________________________________

	From: openib-general-bounces at openib.org
[mailto:openib-general-bounces at openib.org] On Behalf Of Ian Jiang
	Sent: Tuesday, December 06, 2005 4:52 AM
	To: James Lentini
	Cc: openib-general
	Subject: Re: [openib-general] [kDAPL]How to register a vmalloc()
allocated buffer
	
	
	Hi James,
	You are always so kind!
	Now I have a question about reading a buffer of a application in
user space.
	Is it the only way to use the uDAPL?
	I used to have an idea like this: 
	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.
	But I think it is not feasible after getting your last reply. Am
I right?
	Please give some suggestion and thanks very much!
	
	
	On 12/6/05, James Lentini <jlentini at netapp.com > wrote: 

		Hi Ian,
		
		An IB HCA needs to be able to DMA the memory used for
RDMA read. Since
		vmalloc does not guarantee that the memory it returns
can be accessed
		via DMA, you should not use vmalloc.
		
		james
		




	-- 
	Ian Jiang
	ianjiang.ict at gmail.com
	
	Laboratory of Spatial Information Technology 
	Division of System Architecture
	Institute of Computing Technology 
	Chinese Academy of Sciences 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20051206/050ed459/attachment.html>


More information about the general mailing list