[openib-general] High memory

Grant Grundler iod00d at hp.com
Thu Nov 17 13:53:13 PST 2005


On Thu, Nov 17, 2005 at 03:13:10PM -0500, Shuang Liang wrote:
>   Thanks for your reply!
>   I am trying to write a gen2 based kernel module here. Basically, what 
> I am trying to do is to send a one byte kernel buffer to a remote user 
> process. I used get_dma_mr to get the mr before hand at the sender side, 
> so that I don't have to bother to register when sending the kernel 
> buffer. Since I am working on IA-32 machine, so I assume bus addr and 
> phys addr are the same(I tried both virt_to_phys and dma_map_single() 
> for addresss translation actually).

dma_map_single() is the correct interface to get a bus address.

>   What I noticed was that if the buffer is above in high memory, the 
> data was not received correctly; while if in low memory, things work. 
> Does this mean HCA is not able to address high memory or maybe I am 
> missing sth here?

Are you using a dma_addr_t (a 64-bit type) to store the return value?
oh...you have CONFIG_HIGHMEM64G enabled?
(See include/asm-i386/types.h and look for dma_addr_t)

grant



More information about the general mailing list