1

我正在阅读 Linux 设备驱动程序 3rd。在第 6 章:投票和选择中,作者说:

“*unsigned int (*poll) (struct file *filp, poll_table wait); 每当用户空间程序执行涉及与驱动程序关联的文件描述符的 poll、select 或 epoll 系统调用时,都会调用驱动程序方法。

那么如果我的epoll调用中有数百个fd,每次到达epoll(),驱动中的这个poll会被调用数百次吗?

谢谢。

4

1 回答 1

1

是的,内核将遍历所有文件描述符并调用 poll() 方法。它需要对所有文件描述符的当前状态进行采样,以便将它们报告回用户空间中的调用者。

注意,select和poll也是这样,我对epoll不熟悉,但是如果它使用相同的文件op,那么它也应该在这里应用。

于 2013-01-10T15:42:11.913 回答