<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16608" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=234330317-13022008><FONT face=Arial 
color=#0000ff size=2>NFS caches data at the clients and the caches are not 
coherent. Furthermore, the caches get flushed at page (or some such) 
granularity, so even if two processes write to different parts of the file that 
are on the same page, one client's write may overwrite the other's. So we need 
to disable the client caches, and the only way we found was to call fcntl file 
locks around each read and write. Therefore, the ad_nfs device has such locks. 
If you know of&nbsp;some other&nbsp;way to disable the client cache, these locks 
can be avoided.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=234330317-13022008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=234330317-13022008><FONT face=Arial 
color=#0000ff size=2>Now, there are a&nbsp;couple of&nbsp;places where ROMIO 
really needs to lock, e.g., when it uses data sieving for noncontiguous writes, 
which does a read-modify-write. Also for implementing shared file 
pointers.&nbsp;For these cases, the locks are called in all devices including 
ad_ufs. On file systems that don't support locks, these two features are not 
supported (data sieving is not used for noncontiguous writes and shared file 
pointers are not supported).</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=234330317-13022008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=234330317-13022008><FONT face=Arial 
color=#0000ff size=2>Rajeev</FONT></SPAN></DIV><BR>
<BLOCKQUOTE 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> dcmf-bounces@lists.anl-external.org 
  [mailto:dcmf-bounces@lists.anl-external.org] <B>On Behalf Of </B>Bob 
  Cernohous<BR><B>Sent:</B> Wednesday, February 13, 2008 11:02 AM<BR><B>To:</B> 
  dcmf@lists.anl-external.org<BR><B>Subject:</B> Re: [dcmf] Lockless ROMIO 
  driver<BR></FONT><BR></DIV>
  <DIV></DIV><BR><FONT face=sans-serif size=2>Could someone give me a brief 
  synopsis or pointer to the "locking issues" with NFS? &nbsp; I'd like to 
  understand it better and maybe discuss this with our GPFS experts. &nbsp; I 
  just wonder if it's better, long term, to go lockless in ad_bgl and build 
  bgl+nfs as a fallback for NFS? &nbsp; It's certainly something we could 
  explore on this list, but I don't know if/when it would make it into an IBM 
  release. &nbsp; There's certainly some "process" we're still 
  inventing/exploring here on this list.</FONT> <BR><BR><FONT face=sans-serif 
  size=2>Rob, I didn't have time yet to dig into your patch. &nbsp;But I suspect 
  you have not applied my recent patches from this list to your source. &nbsp;I 
  think there might be a conflict. &nbsp;I'll look into it later. &nbsp;I'm 
  moving my office today, plus I've been swamped with some side issues.</FONT> 
  <BR><FONT face=sans-serif size=2><BR>Bob Cernohous: &nbsp;(T/L 553) 
  507-253-6093<BR><BR>BobC@us.ibm.com<BR>IBM Rochester, Building 030-2(C335), 
  Department 61L<BR>3605 Hwy 52 North, Rochester, &nbsp;MN 
  55901-7829<BR><BR>&gt; Chaos reigns within.<BR>&gt; Reflect, repent, and 
  reboot.<BR>&gt; Order shall return.<BR></FONT><BR><BR><TT><FONT 
  size=2><BR>&gt; These patches re-introduce ad_ufs to ROMIO, but do so in a 
  lock-freeway. &nbsp;This<BR>&gt; is my first git experience, so sorry for the 
  messy subject lines.<BR>&gt; <BR></BLOCKQUOTE></FONT></TT></BODY></HTML>