Re: aio: compat_ioctl issue?

From: Michael Tokarev
Date: Mon Mar 08 2010 - 17:41:44 EST


Michael Tokarev wrote:
> Jeff Moyer wrote:
> []
>>>>> I just come across a situation (next in a long row :)
>>>>> when on x86, 32bit userspace does not work with 64bit
>>>>> kernel. This time this is about aio requests.
>> [snip]
[]
>> Could you maybe print out the values that are passed to io_getevents?
>
> They were in my first email, here it goes again:
>
> io_submit: lio_opcode=7 reqprio=0 iov=0x9cd7018{0xf5599000,4096}, niov=1, offset=0
> io_getevents: expected 4096 got -22 (EINVAL)
>
> This is what gets passed to libaio -- strace here
> does not decode the arguments unfortunately.
[]
> My *guess* is that it handles read/write correctly but
> does not properly handle preadv/pwritev (opcode=7 is
> IO_CMD_PREADV as far as I can see). That'll explain
> my "testcase" with Oracle which does not use preadv.

Actually, looking at the code in fs/compat.c, I don't see
where it converts iovecs. Yes it converts iocbs, but for
readv/writev it also needs to convert iovecs. Oh well,
that expects to be quite painful... :(

> Thanks!
>
> /mjt
> --
> 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/

--
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/