Re: Patch for Retry based AIO-DIO (Was AIO and DIO testing on 2.6.0-test7-mm1)

From: Suparna Bhattacharya
Date: Thu Oct 23 2003 - 08:45:59 EST


On Thu, Oct 23, 2003 at 04:19:23PM +0530, Suparna Bhattacharya wrote:
> On Wed, Oct 22, 2003 at 05:40:32PM -0700, Daniel McNeil wrote:
> > Suparna and Andrew,
> >
> > I've been doing more testing using the test programs I wrote to
> > try and hit the AIO verses buffered read race conditions.
> >
> > I tested 2.6.0-test8, 2.6.0-test8-mm1+(your first incomplete fix) and
> > 2.6.0-test8-mm1+aio-dio-retry patch. I used my test programs
> > (http://developer.osdl.org/daniel/AIO/TESTS/) by doing:
> >
> > Run "dirty" program which allocates and writes 0xaa to a file and then
> > frees the space.
> > Run "dio_sparse" or "aiodio-sparse - which creates "file", truncates it
> > up to 64MB and then writes zeros into the holes (using DIO or
> > AIO+DIO). At same time, a forked child is reading the file
> > looking for non-zero data.
> > rm "file"
> >
> > On 2.6.0-test8
> > ==============
> > I hit the race condition and see uninitialized data:
> > ~/AIO/TESTS/dio_sparse
> > non zero buffer at buf[4] => 0xaaaaaaaa,aaaaaaaa,aaaaaaaa,aaaaaaaa
> > non-zero read at offset 24182785
> >
> > ~/AIO/TESTS/aiodio_sparse
> > non zero buffer at buf[4] -> 0xaaaaaaaa,aaaaaaaa,aaaaaaaa,aaaaaaaa
> > non-zero read at offset 8323062
> >
> >
> > On 2.6.0-test8-mm1+1st-direct-io-aio_complete patch and
> > 2.6.0-test8-mm1+aio-dio-retry patch
> >
> > I never see uninitialized data.
>
> That's good news.
>
> You seem to be able to run test8-mm1 just fine; I have been
> running into strange oops on syscall return for io_getevents :(
> - haven't seen this before.
> What library and header files are you using for libaio ? Do you have
> 4G-4G turned on in your build ?

It turns out that backing out gcc-Os.patch (on RH 9) or switching
to a system with an older compiler version made those errors go away.

Regards
Suparna

--
Suparna Bhattacharya (suparna@xxxxxxxxxx)
Linux Technology Center
IBM Software Labs, India

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/