首页 > 解决方案 > 有没有办法在 Linux 上获取 io_setup() 调用事件数量的内部限制?

问题描述

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

标签: linuxaio

解决方案


这种情况在内核源代码中是硬编码的,在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


推荐阅读