有没有办法获得Linux上io_setup()调用的事件数量的内部限制?

时间:2019-12-20 17:49:35

标签: linux aio

io_setup()的手册页说,如果指定的maxevents超出内部限制,它将以EINVAL失败。 有没有办法找出这个“内部极限”是什么?

1 个答案:

答案 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。

来源:https://github.com/torvalds/linux/blob/master/fs/aio.c