<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
<big>Hi All,<br>
<br>
I request feedback for few queries related to mapping HCA registers in
user space and  kernel space, just for understanding  and not for any
specific purpose such as  RDS etc..<br>
<br>
1. I find HCA driver provides 2 verbs call :  'open_ca' and
'um_open_ca'  to get handle to CA. As I  understand , 'open_ca()' 
provides HCA access to kernel space<br>
and 'um_open_ca()' provides HCA access to user space. So in order to do
post_send/post_recv from kernel mode,  HCA handle should be obtained
using 'open_ca()';<br>
Similarly  'um_open_ca()' provides HCA handle to do post_send/post_recv
from user space. Please let me if you agree  with the same.<br>
<br>
<br>
2. I observe Winverbs driver call HCA 'um_open_ca(..)' while opening
winverbs device object as below:<br>
<br>
WvDeviceInit()<br>
{<br>
<br>
....<br>
pDevice->pVerbs->um_open_ca(..)<br>
...<br>
<br>
}<br>
<br>
So essentially  it looks winverbs does not provide any scope for kernel
mode HCA access and hence do post_send/post_receive from kernel space.
Can it be possible to have  option in create to facilitate both kernel
mode and user mode CA mapping in winverbs driver ? or do you see any
other issues in supporting 'open_ca()' in winverbs driver.<br>
<br>
Regards,<br>
Prasanna</big><br>
</body>
</html>