<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2654.45">
<TITLE>RE: [openib-general] Reserved L_Key API</TITLE>
</HEAD>
<BODY>
<BR>
<BR>

<P><FONT SIZE=2>> -----Original Message-----</FONT>
<BR><FONT SIZE=2>> From: Roland Dreier [<A HREF="mailto:roland@topspin.com">mailto:roland@topspin.com</A>] </FONT>
<BR><FONT SIZE=2>> Sent: Wednesday, September 15, 2004 7:55 AM</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>>     Michael> Dont you want to basically create a physical memory</FONT>
<BR><FONT SIZE=2>>     Michael> region covering the whole 64 bit range, and then post</FONT>
<BR><FONT SIZE=2>>     Michael> full phy addresses in the WQE?  Cant you do exactly that</FONT>
<BR><FONT SIZE=2>>     Michael> with existing API?</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Yes, that's the natural thing to try.  However, as understand </FONT>
<BR><FONT SIZE=2>> it, Tavor is limited to 2 GB pages, which means covering the </FONT>
<BR><FONT SIZE=2>> whole 64-bit range is going to take 8 billion pages, which </FONT>
<BR><FONT SIZE=2>> clearly will overflow any conceivable context memory.  Other </FONT>
<BR><FONT SIZE=2>> devices are likely to have similar limitations.</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>>  - Roland</FONT>
</P>

<P><FONT SIZE=2>If you're creating a physical MR with 1:1 mapping, just turn on MPT.pa</FONT>
<BR><FONT SIZE=2>bit. If you do that, you don't need to care about pages and you don't need</FONT>
<BR><FONT SIZE=2>to set up MTTs. You're region will be bounded by the MPT.start_address</FONT>
<BR><FONT SIZE=2>and MPT.start_address + MPT.reg_wnd_len. This way you can use</FONT>
<BR><FONT SIZE=2>MRs longer than 2GB.</FONT>
</P>

<P><FONT SIZE=2>However, if you do believe that devices are likely to have this kind of </FONT>
<BR><FONT SIZE=2>limitation, then I believe that it needs to be reflected in the API. When</FONT>
<BR><FONT SIZE=2>you request this dma_mr, you'd need to specify which addresses are </FONT>
<BR><FONT SIZE=2>to be covered in it.</FONT>
</P>

<P><FONT SIZE=2>One more question. If the device does supports the memory management</FONT>
<BR><FONT SIZE=2>extensions. Will ib_get_dma_mr(NULL) be the right way to obtain the</FONT>
<BR><FONT SIZE=2>dma_mr that will not be PD protected ? And if that fails, it means that </FONT>
<BR><FONT SIZE=2>you need a valid PD.</FONT>
</P>

<P><FONT SIZE=2>-Dror</FONT>
</P>

</BODY>
</HTML>