<!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] FMR and how they work</TITLE>
</HEAD>
<BODY>
<BR>
<BR>

<P><FONT SIZE=2>> -----Original Message-----</FONT>
<BR><FONT SIZE=2>> From: Fab Tillier [<A HREF="mailto:ftillier@infiniconsys.com">mailto:ftillier@infiniconsys.com</A>] </FONT>
<BR><FONT SIZE=2>> Sent: Thursday, April 28, 2005 6:00 PM</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> When you deregister a FMR, what information from that FMR can </FONT>
<BR><FONT SIZE=2>> the HCA cache</FONT>
<BR><FONT SIZE=2>> - just the MTTs or also the MPTs?  </FONT>
</P>

<P><FONT SIZE=2>Both. I assume that by "deregister FMR" you refer to ib_fmr_pool_unmap(),</FONT>
<BR><FONT SIZE=2>which only takes the FMR and puts it back into a pool.</FONT>
<BR><FONT SIZE=2>If you fully destroy an FMR object then the mapping is disabled.</FONT>
</P>

<P><FONT SIZE=2>> Can an incoming RDMA </FONT>
<BR><FONT SIZE=2>> transfer access the pages previously referenced by that FMR?  </FONT>
<BR><FONT SIZE=2>> If so, for how long?  When is it safe to unpin the pages?</FONT>
</P>

<P><FONT SIZE=2>As long as the entries are cached, then the answer is yes. Obviously</FONT>
<BR><FONT SIZE=2>according to the FMR access rights and PD which are always validated. </FONT>
<BR><FONT SIZE=2>The entries get out of the cache either when cache is trashed or when </FONT>
<BR><FONT SIZE=2>you explicitly flush it. If you want explicit cache flush, then you can </FONT>
<BR><FONT SIZE=2>use SYNC_TPT  command.</FONT>
<BR><FONT SIZE=2>Destruction of the object (HW2SW_MPT) also updates the caches</FONT>
<BR><FONT SIZE=2>but is an expensive operation.</FONT>
</P>

<P><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> What about when you modify the FMR?  How long are previous </FONT>
<BR><FONT SIZE=2>> mappings "at risk" of transfers?</FONT>
</P>

<P><FONT SIZE=2>Same answer.</FONT>
</P>

<P><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> I'm kinda confused because the Mellanox docs indicate that </FONT>
<BR><FONT SIZE=2>> the HCA can cache stuff and that the pages can't be unpinned </FONT>
<BR><FONT SIZE=2>> until the cache is flushed.  If that's true, I don't see how </FONT>
<BR><FONT SIZE=2>> FMRs can be used because they could be suspect to malicious </FONT>
<BR><FONT SIZE=2>> use by a remote host.</FONT>
</P>

<P><FONT SIZE=2>It's a tradeoff. If you want bulletproof against malicious user then you'd</FONT>
<BR><FONT SIZE=2>need to invalidate the FMR by destroying the object in each IO operation. </FONT>
<BR><FONT SIZE=2>If you want high performance, then you need to trust your peer to some </FONT>
<BR><FONT SIZE=2>extent.</FONT>
<BR><FONT SIZE=2>Looking into the future, then Extended verbs will enable a light operation </FONT>
<BR><FONT SIZE=2>to invalidate such objects, which will facilitate improvements of security.</FONT>
</P>

<P><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Help?</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> - Fab</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> _______________________________________________</FONT>
<BR><FONT SIZE=2>> openib-general mailing list</FONT>
<BR><FONT SIZE=2>> openib-general@openib.org </FONT>
<BR><FONT SIZE=2>> <A HREF="http://openib.org/mailman/listinfo/openib-general" TARGET="_blank">http://openib.org/mailman/listinfo/openib-general</A></FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> To </FONT>
<BR><FONT SIZE=2>> unsubscribe, please visit </FONT>
<BR><FONT SIZE=2>> <A HREF="http://openib.org/mailman/listinfo/openib-general" TARGET="_blank">http://openib.org/mailman/listinfo/openib-general</A></FONT>
<BR><FONT SIZE=2>> </FONT>
</P>

</BODY>
</HTML>