Jens Axboe <axboe@xxxxxxxxx> writes:
On 2014-07-10 17:11, Jeff Moyer wrote:
Benjamin LaHaise <bcrl@xxxxxxxxx> writes:
[ 186.339064] ioctx_alloc: nr_events=-2 aio_max_nr=65536
[ 186.339065] ioctx_alloc: nr_events=-2 aio_max_nr=65536
[ 186.339067] ioctx_alloc: nr_events=-2 aio_max_nr=65536
[ 186.339068] ioctx_alloc: nr_events=-2 aio_max_nr=65536
[ 186.339069] ioctx_alloc: nr_events=-2 aio_max_nr=65536
Something is horribly wrong here. There is no way that value for nr_events
should be passed in to ioctx_alloc(). This implies that userland is calling
io_setup() with an impossibly large value for nr_events. Can you post the
actual diff for your fs/aio.c relative to linus' tree?
fio does exactly this! it passes INT_MAX.
That's correct, I had actually forgotten about this. It was a change
made a few years back, in correlation with the aio optimizations
posted then, basically telling aio to ignore that silly (and broken)
user ring.
I still don't see how you accomplish that. Making it bigger doesn't get
rid of it. ;-)