Re: True fsync() in Linux (on IDE)

From: Peter Zaitsev
Date: Thu Mar 18 2004 - 15:20:26 EST


On Thu, 2004-03-18 at 12:11, Chris Mason wrote:

> > I believe some missed set_page_writeback() calls caused fsync() to never
> > really wait on anything, pretty broken... IIRC, it's fixed in latest
> > -mm, or maybe it's just pending for next release.
>
> This should have only been broken in -mm. Which kernels exactly are you
> comparing? Maybe the 3ware array defaults to different writecache
> settings under 2.6?

I'm trying RH AS 3.0 kernel, however I have the same behavior on my
SuSE 8.2 workstation.

I use 2.6.3 kernel for tests now (It is not the latest I know)
EXT3 file system.

3WARE has writeback cache setting in both cases.


Here is the test program I was using:


#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>


char buffer[4096] __attribute__((__aligned__(4096)));

main()
{
int rc2,rc;
int i;
buffer[0]=(char)getpid();
rc=open("write",O_RDWR | O_CREAT,0666);
if (rc==-1) printf("Error at open: %d\n",errno);
for(i=0;i<1000;i++)
{
rc2=write(rc,&buffer,4096);
printf(".");
fflush(stdout);
if (rc2<0)
{
printf("Error code: %d\n",errno);
return;
}
fsync(rc);
}

}





--
Peter Zaitsev, Senior Support Engineer
MySQL AB, www.mysql.com

Meet the MySQL Team at User Conference 2004! (April 14-16, Orlando,FL)
http://www.mysql.com/uc2004/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/