On 2019/11/21 上午11:35, David Ahern wrote:
On 11/20/19 8:26 PM, Jason Wang wrote:On 2019/11/21 上午1:52, David Ahern wrote:Hi: Trying to load an XDP program on a virtio based nic is failing with: virtio_net: XDP expects header/data in single page, any_header_sg required I have not encountered this error before and not able to find what is missing. Any tips?Hi David: What qemu + guest kernel version did you use? And could you share you qemu cli? Old qemu requires vnet header to be placed into a separate sg which breaks the assumption of XDP. Recent qemu doesn't have such limitation (any_header_sg feature).Hi Jason, When I run qemu via my older vm-tools scripts XDP works fine. This is the first time I am trying to use XDP with guests started by libvirt. We isolated it to a libvirt xml file using an old machine type (pc-i440fx-1.5) - basically any machine with VIRTIO_F_VERSION_1 not set. Using a newer one move the problem forward.
Yes, if VERSION_1 implies ANY_HEADER_SG, and if you're using old qemu, make sure any_header_sg is enabled in qemu cli.
The current error message is: virtio_net: Too few free TX rings available again, looking for some libvirt setting for the vm create.
Make sure you have sufficient queues, e.g if you N vcpus with multiqueue enabled, you need 2*N queues for virtio-net.
Thanks