|
From: Tom H. <th...@cy...> - 2004-07-05 07:47:47
|
In message <1088989847.6827.6.camel@localhost>
Jeremy Fitzhardinge <je...@go...> wrote:
> On Sun, 2004-07-04 at 19:38 +0100, Tom Hughes wrote:
>> 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?
>
> The most immediate is to try and get the AIO people to change such a
> braindead API. There aren't any other instances of a syscall plonking
> things down in memory without some way to control it.
I agree that it's pretty braindead. In fact older versions of libaio
don't seem to peek at the memory in this way, but the fact that it is
mapped in user space suggests that it was always intended.
> Would mremap work on these things, so we can move them down into the
> client address space?
I don't think it would, because the kernel has other pointers to the
memory in question that wouldn't be adjusted by the mremap call.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|