|
From: Tom H. <th...@cy...> - 2004-07-04 18:42:05
|
I've been looking at bug 83060 which provides a patch to implement support for the new asynchronous I/O system calls in 2.6 kernels. The patch is largely fine. I've got it applied and I've got a test case which seems to work if --pointercheck=no is specified. The reason it fails with pointer checking on is that the io_setup call allocates an I/O context in user space - it actually allocates one or more pages of user memory. There is no way to pass an address hint to it so valgrind has no control over the address that the memory will be allocated at. As a result it typically seems to get allocated in the valgrind part of the address space which can't be accessed by the client while pointer checking is turned on. As libaio tries to peek at it in order to avoid entering the kernel when io_getevents is called and there are no events pending this is a problem... Anybody got any suggestions for a way of handling this? Tom -- Tom Hughes (th...@cy...) Software Engineer, Cyberscience Corporation http://www.cyberscience.com/ |