[Ocfs2-tools-devel] [PATCH 07/11] libocfs2: Add aio read support

Sunil Mushran sunil.mushran at oracle.com
Fri Sep 30 12:15:59 PDT 2011


On 09/23/2011 01:24 PM, Sunil Mushran wrote:
> On 09/23/2011 12:52 PM, Goldwyn Rodrigues wrote:
>> Okay, pass 0 might be a bit too early. I am not talking of a
>> multi-threaded application either. For example, you can abstract it
>> all in inode_scan itself. Keep two buffers instead of one. io_submit
>> into first buffer while the second buffer is being
>> consumed.io_getevents on the first and io_submit on second, once
>> second is fully consumed. vice versa once first is consumed.
>>
>> You're keeping tracking information already. So, keeping additional io
>> context data structures should not hurt as much.


So I tried this. There is almost no gain. Mainly because consuming
the inodes is way faster than reading. So most of the time is spent
waiting for the previously submitted io to complete. One possible
solution is adding another buffer. I'll work on that. But for now I am
reposting the patches with the aio->vec change as suggested.


> Pass 1: Checking inodes and blocks
>     I/O read disk/cache: 64698MB / 66MB, write: 0MB, rate: 35.60MB/s
>     Times real: 1819.134s, user: 268.868s, sys: 25.884s
>     Times syncread: 1548.872s, asyncread: 0.000s, syncwrite: 0.000s, asyncwrite: 0.000s
>
> Pass 2: Checking directory entries
>     I/O read disk/cache: 3902MB / 3938MB, write: 0MB, rate: 22.71MB/s
>     Times real: 345.144s, user: 135.752s, sys: 13.291s
>     Times syncread: 28.028s, asyncread: 30.299s, syncwrite: 0.000s, asyncwrite: 0.000s
>
> Maybe I should rename io_aio_read_blocks() to io_readv_blocks().
> And add io_read_submit_blocks() and io_read_reap_blocks(). And
> use it in pass 1.
>
>
>
>
> _______________________________________________
> Ocfs2-tools-devel mailing list
> Ocfs2-tools-devel at oss.oracle.com
> http://oss.oracle.com/mailman/listinfo/ocfs2-tools-devel




More information about the Ocfs2-tools-devel mailing list