![]() | |||||||||||
Messages in this thread Complete thread (EXPERIMENTAL) |
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? | ||||||||||
![]() | |||||||||||
| Last update: 2005-10-11 05:13 [W:2.257 / U:0.030 seconds] ©2003-2005 Jasper Spaans | |||||||||||