Hello, While looking into the busy polling in Linux kernel, three questions come into my mind:
1. In the document[1], it claims sysctl.net.busy_poll depends on either SO_BUSY_POLL or sysctl.net.busy_read. However, from the code in ep_set_busy_poll_napi_id(), I don't see such a dependency. It simply checks sysctl_net_busy_poll and sk->sk_napi_id, but sk->sk_napi_id is always set as long as we enable CONFIG_NET_RX_BUSY_POLL. So what I am missing here? 2. Why there is no socket option for sysctl.net.busy_poll? Clearly sysctl_net_busy_poll is global and SO_BUSY_POLL only works for sysctl.net.busy_read. 3. How is SO_INCOMING_NAPI_ID supposed to be used? I can't find any useful documents online. Any example or more detailed doc? Thanks! 1. https://www.kernel.org/doc/Documentation/sysctl/net.txt