<html>

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">


<meta name=Generator content="Microsoft Word 10 (filtered)">

<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
p
        {margin-right:0in;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.EmailStyle18
        {font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=blue>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Hi Stewart,</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Disclaimer: I&#8217;ve never done drive
testing and I&#8217;m ignorant of low-level disk/file functions but&#8230;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>According to Google, it looks as though the
Win32 API call FlushFileBuffers() might be equivalent to fsync.&nbsp; (<a
href="http://support.microsoft.com/default.aspx?scid=kb;en-us;66052">http://support.microsoft.com/default.aspx?scid=kb;en-us;66052</a>)</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>You can also open a file with no buffering
with no caching using the FILE_FLAG_WRITE_THROUGH or the even deeper FILE_FLAG_NO_BUFFERING
flags on the CreateFile() API call.&nbsp; (<a
href="http://support.microsoft.com/default.aspx?scid=kb;en-us;99794">http://support.microsoft.com/default.aspx?scid=kb;en-us;99794</a>)</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Recalling my previous disclaimer, Google
also turns up a multi-platform tool called <i><span style='font-style:italic'>dt</span></i>
at <a href="http://www.bit-net.com/~rmiller/dt.html">http://www.bit-net.com/~rmiller/dt.html</a>.
&nbsp;It appears to require cygwin for Windows platforms but I don&#8217;t know
whether that&#8217;s for the test machine only or for Windows targets as well.</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Finally, depending on whether you want to
run fsync only on the testing host and not targets you may want to play around
with Windows Services for UNIX, which also lets you call fsync.&nbsp; It looks
like it&#8217;s a free download but it looks like it only works on Win2k, WinXP
Pro, and Win 2003 Server.&nbsp; (</span></font><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><a
href="http://www.microsoft.com/windows/sfu/productinfo/features/default.asp">http://www.microsoft.com/windows/sfu/productinfo/features/default.asp</a>)
</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Dave Roth&#8217;s Windows NT/Win32 Perl
Programming: The Standard Extensions book (Powels: <a
href="http://www.powells.com/cgi-bin/biblio?inkey=17-157870216x-0">http://www.powells.com/cgi-bin/biblio?inkey=17-157870216x-0</a>
or Amazon: <a
href="http://www.amazon.com/exec/obidos/tg/detail/-/157870216X/qid=1084823355/sr=1-2/ref=sr_1_2/102-3650323-2047354?v=glance&amp;s=books">http://www.amazon.com/exec/obidos/tg/detail/-/157870216X/qid=1084823355/sr=1-2/ref=sr_1_2/102-3650323-2047354?v=glance&amp;s=books</a>)
goes into a lot of detail about hacking around the Win32 APIs.</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Hope one of those helps.</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --
David Innes</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal style='margin-left:.5in'><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'>-----Original Message-----<br>
<b><span style='font-weight:bold'>From:</span></b>
spug-list-bounces@mail.pm.org [mailto:spug-list-bounces@mail.pm.org] <b><span
style='font-weight:bold'>On Behalf Of </span></b>Stuart Poulin<br>
<b><span style='font-weight:bold'>Sent:</span></b> Thursday, May 13, 2004 1:14
PM<br>
<b><span style='font-weight:bold'>To:</span></b> spug-list@mail.pm.org<br>
<b><span style='font-weight:bold'>Subject:</span></b> SPUG: $fd-&gt;sync on
Win32</span></font></p>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;</span></font></p>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=1 face=Verdana><span
style='font-size:7.5pt;font-family:Verdana'>Hi Folks, </span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=1 face=Verdana><span
style='font-size:7.5pt;font-family:Verdana'>I need to write some benchmark
tools that will test various drive access to&nbsp;local disks,&nbsp;network
shares, etc. on Windows and Unix.</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>One part is to test fsync timing:</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=1 face=Verdana><span
style='font-size:7.5pt;font-family:Verdana'>for ($j=0; $j&lt;NNNN; $j++){<br>
&nbsp;&nbsp;unless ($fd-&gt;syswrite($buffer, MAXBUF)){<br>
&nbsp;&nbsp;&nbsp;die &quot;Unable to write $ARGV[0] : $!&quot;;<br>
&nbsp;&nbsp;}<br>
&nbsp;&nbsp;$fd-&gt;sync();</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=1 face=Verdana><span
style='font-size:7.5pt;font-family:Verdana'>&nbsp;}</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=1 face=Verdana><span
style='font-size:7.5pt;font-family:Verdana'>$fd-&gt;sync Works fine on Unix but
isn't implemented on Win32. $fd-&gt;sync is really what I want in this case and
not $fd-&gt;flush.</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=1 face=Verdana><span
style='font-size:7.5pt;font-family:Verdana'>Other than using cygwin.dll -
anybody have an idea for Win32?</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=1 face=Verdana><span
style='font-size:7.5pt;font-family:Verdana'>Thanks,</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=1 face=Verdana><span
style='font-size:7.5pt;font-family:Verdana'>&nbsp;&nbsp; Stu</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;</span></font></p>

</div>

<div class=MsoNormal align=center style='margin-left:.5in;text-align:center'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=1 width="100%" align=center>

</span></font></div>

<p class=MsoNormal style='margin-left:.5in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>Do you Yahoo!?<br>
Yahoo! Movies - <a href="http://movies.yahoo.com/showtimes/movie?mid=1808405861">Buy
advance tickets for 'Shrek 2' </a></span></font></p>

</div>

</body>

</html>