Hide Forgot
Description of problem: Failed to enable VFs of Intel 82576 NIC on 32bits host. Version-Release number of selected component (if applicable): kernel-xen-2.6.18-257.el5.i686 xen-3.0.3-128.el5 How reproducible: 100% Steps to Reproduce: 1- boot up xen host with iommu and pci_pt_e820_access enabled Add "iommu=1" in kernel line Add "pci_pt_e820_access=on" in module line Example: title Red Hat Enterprise Linux Server (2.6.18-164.9.1.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-164.9.1.el5 iommu=1 loglvl=all guest_loglvl=all module /vmlinuz-2.6.18-164.9.1.el5xen ro root=/dev/VolGroup01/LogVol00 pci_pt_e820_access=on module /initrd-2.6.18-164.9.1.el5xen.img 2- Check whether PF enabled in Dom0 Example: # lspci | grep 82576 Two PF NIC should be shown 3- Reload igb (driver for intel 82576 NIC) module with max_vfs=7 parameter # modprobe -r igb # modprobe igb max_vfs=7 4- - Check whether N VFs enabled in Dom0 # lspci | grep 82576 Corresponding number of VFs should be shown. Actual results: On Step 4, only 2 PFs should be shown Expected results: On Step 4, 14 VFs and 2 PFs should be shown Addition info: It works fine with kernel-xen-2.6.18-257.el5.x86_64 for 64bits host. It also works fine for for kernel-xen-2.6.18-256.el5 on both 32bit and 64bit host. Furthermore, it also works fine with bare metal kernel (kernel-2.6.18-257.el5.i686).
Created attachment 493061 [details] dmesg log
At first glance I don't see any suspicious commits in the kernel between -256 and -257, and nothing changed in the hypervisor. Can we get the dmesg from the working 32-bit -256 kernel? Actually, it might be easier if we just get access to the machine.
Diffing the dmesgs revealed a typo on the -257 command line < Kernel command line: ro root=LABEL=/ pci_pt_e820_access=on < pci_pt_e820_access: enabled --- > Kernel command line: ro root=LABEL=/ pci_pt_e820=access=on note the extra = that should be a '_' in pci_pt_e820=access=on Correcting the typo in grub and rebooting restores the functionality.