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-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html