<!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 some other 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> </DIV>
<DIV dir=ltr align=left><SPAN class=234330317-13022008><FONT face=Arial
color=#0000ff size=2>Now, there are a couple of 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. 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> </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? I'd like to
understand it better and maybe discuss this with our GPFS experts. I
just wonder if it's better, long term, to go lockless in ad_bgl and build
bgl+nfs as a fallback for NFS? 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. 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. But I suspect
you have not applied my recent patches from this list to your source. I
think there might be a conflict. I'll look into it later. 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: (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, MN
55901-7829<BR><BR>> Chaos reigns within.<BR>> Reflect, repent, and
reboot.<BR>> Order shall return.<BR></FONT><BR><BR><TT><FONT
size=2><BR>> These patches re-introduce ad_ufs to ROMIO, but do so in a
lock-freeway. This<BR>> is my first git experience, so sorry for the
messy subject lines.<BR>> <BR></BLOCKQUOTE></FONT></TT></BODY></HTML>