> Benjamin LaHaise wrote:
O_DIRECT buffers must be aligned on block sized boundaries (minimum 512
bytes). Check the actual return code from the aiocb and you'll find that
it is likely -EINVAL, no -EINPROGRESS. See the man page for
posix_memalign() to properly align the pointer.
EEP!! I forgot all about buffer alignment!! Thanks for pointing it out
:)
------------------
Two more questions.
1. Is aio_fsync of any use while 'aio_read'ing and 'aio_write'ing to
a 'raw' device or a '/dev/sdb' with O_DIRECT?
2. I have an Ultra320 SCSI disk whose datasheet says it has a max.
possible throughput of 78MBps
I did a 'aio_write' onto '/dev/sdb' with O_DIRECT.
Following are some throughput values.
Buffer for IO | Avg Speed
(in KBytes) |
----------------O-----------
Upto 512KB | 69MBps
1024KB | 125MBps
2048KB | 250MBps
4096KB | 500MBps
8192KB | 1GBps -- What the !! --
Buffer cache does not come into consideration.
Does this mean that the SCSI lower layer (aic79xx) can transfer data
only upto 512 KB?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]