io_setup()的手册页说,如果指定的maxevents超出内部限制,它将以EINVAL失败。 有没有办法找出这个“内部极限”是什么?
答案 0 :(得分:2)
这种情况在fs/aio.c
的内核源代码中进行了硬编码。而且,它很大!
/* Prevent overflows */
if (nr_events > (0x10000000U / sizeof(struct io_event))) {
pr_debug("ENOMEM: nr_events too high\n");
return ERR_PTR(-EINVAL);
}
通常,/proc/sys/fs/aio-max-nr
是您需要担心的。我最近看过的所有地方似乎都是65536。