<br><br><div><span class="gmail_quote">On 2/20/06, <b class="gmail_sendername">Roland Dreier</b> <<a href="mailto:rdreier@cisco.com">rdreier@cisco.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
    Thomas> And, this is only one of many memory registration<br>    Thomas> modes. We would use memory windows, if only OpenIB<br>    Thomas> provided them (yes I know the hardware currently sucks for<br>    Thomas> them). We will add FMR support shortly. In both these
<br>    Thomas> modes we perform all addressing by the book via 1-1 OpenIB<br>    Thomas> registration.<br><br>Memory windows don't solve anything here, do they?  You still have to<br>register the full region using bus addresses somehow.
<br><br> - R.<br>_______________________________________________</blockquote><div><br>
Keep in mind that there are two problems: registering memory and exposing memory.<br>
Windows solves the latter problem. FMR work requests solves both.<br>
<br>
A kernel based storage related client will frequently want to form logical buffers<br>
from scattered physical pages. The pages selected are not necessarily part<br>
of an existing virtual memory map, and especially not a registered one.<br>
<br>
You can solve the memory registration problem once by creating an<br>
exportable memory region that covers all of physical memory. The<br>
problem is that you do not want to advertise that regions RKey/STag.<br>
<br>
Memory Windows solve that problem, by allowing you to bind windows<br>
within the memory region. The problem is that if the buffer is not physically<br>
continquous then you still have to export a multi-element list in order to<br>
have the peer to read from a discontiguous target.<br>
<br>
A Fast Memory Region allows arbitrary sets of pages to form a single<br>
logical window for the purposes of peer-to-peer interaction, and has a<br>
life cycle that more naturally maps the duration when the pages have<br>
to be iomapped.<br>
<br>
</div><br></div><br>