On 20 Feb 2020, at 23:49, William Tu wrote:
Hi, I'm trying to save some CPU cycles when there is no packet arrives. I enable the poll syscall option of xdpsock, by doing $ ./xdpsock -r -p -S -i ens16 sock0@ens160:0 rxdrop xdp-skb poll() pps pkts 1.00 rx 0 0 tx 0 0 Since there is no packet coming, I though by calling poll() system call, the xdpsock process will be blocked and CPU utilization should be way under 100%. However, I'm still seeing 100% CPU utilization. Am I understanding this correctly?
Hi William, I can remember I saw this in the past two with this code. It had something to do with the way xdpsock waits for the buffers to be free’ ed by the kernel. What I can remember it had something to do with the veth interfaces also.
I do remember that I fixed it in the tutorial for AF_XDP: https://github.com/xdp-project/xdp-tutorial/blob/master/advanced03-AF_XDP/af_xdp_user.c
Maybe you can see if you have the same problem with this example. //Eelco
Thanks, William