i have added  dma_map_single() and sent the address i got from that to perform RDMA_READ, now it is not at all generating any completion event and just halting there itself.

below is the changed code......
-----------------------------------------------------------------------------------------------------------------
i am trying to develop a kernel utility to perform RDMA read/write operations
i am facing a problem with memory regiatration in it.

my code looks like.........

u64 *addr_array;

addr_array = kmalloc(sizeof(u64),GFP_KERNEL);
                        //i am using only one page buffer

test->mem = kmalloc(4096,GFP_KERNEL);
         // buffer on which RDMA_READ is to be performed

test->fmr = ib_alloc_fmr(test->pd,IB_ACCESS_LOCAL_WRITE |
                                        IB_ACCESS_REMOTE_READ |
                                        IB_ACCESS_REMOTE_WRITE,
                                fmr_attr); //fmr_attr is intialised properly

addr_array[0] = dma_map_single(test->device->dma_device,test->mem,4096,DMA_TO_DEVICE);

ret = ib_map_phys_fmr(test->fmr,addr_array[0],1,addr_array);


All these operations are not generating any errors
But when i pass this address (addr_array[0]) as the remote address, the RDMA_READ operation on this address is not generating  any completion event and halting there itself.

am i missing anything in the process of registering the memory?????


Thanks n regards
K.Mahesh

Send instant messages to your online friends http://in.messenger.yahoo.com

Stay connected with your friends even when away from PC. Link: http://in.mobile.yahoo.com/new/messenger/

_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to