This is my fourth mail in my desperate attempt to get DPDK running in KVM and no comments so far, not even any "it works for me". Am I the only one crazy enough to believe that this can be done?
Anyway, out of desperation I tried to get it running without having ixgbe or ixgbevf kernel modules loaded in host nor guest. I followed the instructions in the Programmer's Guide, chapter "Setting Up a KVM Virtual Machine Monitor", using the PMD version of the instructions. I get as far as being able to see my four virtual functions in the guest using "lspci". But starting the DPDK application gives me the following error: PMD: The MAC address is not valid. The most likely cause of this error is that the VM host has not assigned a valid MAC address to this VF device. Please consult the DPDK Release Notes (FAQ section) for a possible solution to this problem. This may be true, but without any kernel modules loaded, how am I supposed to change any MAC addresses? Can this be done from within DPDK? As a side-note, I did try to load ixgbevf in the guest, but it produced no interfaces. There was no error messages in the syslog though. Is it possible to get X540 working in a guest or should I switch hardware? Since the instructions assumes I know the command line to KVM to start my guest (which I do not), I cannot followed them precisely. I use virsh and XML file, and maybe I've misunderstood how to translate the pci-assign parameter to XML code. I currently use a <hostdev> entry, but I've also tried <interface type='hostdev'>. Neither has been working for me so far, though the <interface> version got me as far as being able to receive packets at least, but not transmitting. Regards Mats On Mon, Feb 3, 2014 at 12:13 PM, Mats Liljegren <liljegren.mats2 at gmail.com> wrote: > Never mind, I was hit by the infamous MAC spoofing... I got it working > on both the host and the guest using ixgbevf driver, so apparently the > cables are correctly attached. > > Using DPDK is still no-go. It can receive packets, but when sending > the packets the function returns success, but the driver reports > nothing (i.e. no errors, no sent packets, no nothing, except for > received packets of course). > > What could cause this behavior? > > Regards > Mats > > On Fri, Jan 31, 2014 at 7:30 PM, Mats Liljegren > <liljegren.mats2 at gmail.com> wrote: >> I have a follow-up on this: >> >> ixgbe version 3.13.10-k >> ixgbevf version 2.7.12-k >> >> (These are what was provided by Ubuntu 13.10) >> >> I tried the following sequence on the host, before starting the guest: >> 1) sudo rmmod ixgbe >> 2) sudo modprobe ixgbe max_vfs=2 >> 3) sudo ifconfig em1 up # This is the physical function >> 4) sudo ifconfig em1_0 192.168.2.2 # This is the virtual function >> 5) ping 192.168.2.1 >> >> I can see that the ping request reaches its target, and a reply is >> sent back. But this reply is not received by the ping shell command. >> >> Why? >> >> Regards, >> Mats >> >> On Wed, Jan 29, 2014 at 6:56 PM, Mats Liljegren >> <liljegren.mats2 at gmail.com> wrote: >>> I'm trying to get a modified version of the l2fwd example running, and >>> have problems with packets being silently thrown away. I can receive >>> packets, and my printf's indicates that the packets are being sent to >>> the correct port, using correct MAC address as source address. And >>> still, the packets are lost. >>> >>> Since the port is a virtual function, it seems like I cannot use >>> tcpdump on it to see the network traffic. There is nothing coming out >>> of the cable (activity light not flashing, the receiving end running >>> tcpdump does not see any traffic). >>> >>> I'm using two X540 with two virtual functions each. The application >>> runs in a KVM/Qemu environmen. >>> >>> Any suggestions how to debug this? >>> >>> Regards, >>> Mats