On Wed, 2006-01-04 at 21:09 +0900, Goldwyn Rodrigues wrote: > Hi, > > I am using bios (no buffer_heads) for a filesystem which tries to job > of the block system layer as well. The filesystem, just takes the > sector number and allocates a multipage bio for the I/O.. of the order > 128 vectors or 2MB of 16K pages (I am using an IA64 machine). the idea > is to perform clustered I/O and avoid buffer_heads. > > The test program performs write()s and read()s one after the other in > an endless cycle. If write()s are immediately followed by a read(), > the read does not reflect the data which was written. This does not > happen always, but sometimes. If I put in a delay between writes and > reads, it seems to work fine. This does not reflect with one or two > processes, but with multiple processes it results in hte problem, and > probability increases with the number of processes. > > I have tried WRITE_BARRIER but it does not work, returning > -EOPNOTSUPP. The end_bio function does not return any error either. I > tried different elevator algorithms as well, but to no success. > > Any pointers..? maybe give an url to your code so that people can see if there's bugs? -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/