Data not reflected in case of multipage bio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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..?

Kernel: SLES9 - 2.6.5-7.241-default
Arch: ia64x4

Thanks,

--
Goldwyn

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux