Re: scsi-mq V2

From: Jens Axboe
Date: Thu Jul 10 2014 - 16:07:05 EST

On 2014-07-10 22:05, Jeff Moyer wrote:
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. ;-)

See the patches from back then - INT_MAX basically just meant the same as 0, but 0 could not be used because of the (silly) setup with the wrappers around the syscalls. So INT_MAX was overloaded to mean "no ring events, I don't care".

Jens Axboe

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at