是否可以配置DPDK,以便每当接收到数据包时NIC都会发送一个中断(而不是关闭中断并在RX队列上进行内核轮询)?我知道这似乎违反直觉,但是我想到一个用例可以从中受益。
DPDK声称允许您对RX队列使用中断(您可以调用rte_eth_dev_rx_intr_enable并传递端口/队列对作为参数),但是在深入研究代码时,这似乎具有误导性。有一个轮询线程,它调用epoll_wait,并在收到数据包后调用eal_intr_process_interrupts。然后,此函数遍历一系列回调函数(应该是中断处理程序)并执行每个回调函数。然后,该函数再次调用epoll_wait(即,它处于无限循环中)。
我对DPDK如何处理“中断”的理解正确吗?换句话说,即使您打开“中断”,DPDK真的只是在后台轮询然后执行回调函数(因此没有中断)?