我正在阅读Linux设备驱动程序第3版。在第6章:民意调查和选择中,作者说:
“* unsigned int(* poll)(struct file * filp,poll_table wait); 每当用户空间程序执行轮询时,都会调用驱动程序方法,选择, 或涉及与驱动程序关联的文件描述符的epoll系统调用。“
所以如果我的epoll通话中有数百个fd,每次到达epoll()时,驱动程序中的这个轮询都会被调用数百次?
感谢。
答案 0 :(得分:1)
是的,内核将循环遍历所有文件描述符并调用poll()方法。它需要对所有文件描述符的当前状态进行采样,以便将它们报告给用户空间中的调用者。
注意,对于select和poll这是正确的,我不熟悉epoll,但是如果它使用相同的文件op,那么它也应该适用于此。