env: sles11sp2 xen

1.BIOS Configuration:

打开vt-x ,vt-d  技术

 

2.检查硬件是否支持SRIOV

dom0-93:/opt # lspci | grep Eth
03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
05:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)

 

dom0-93:/opt # lspci -vvk -s 0b:00.1 | grep SR-IOV

Capabilities: [160] Single Root I/O Virtualization (SR-IOV)

 

3.Modifying modprobe.conf

append as follows to  /etc/modprobe.conf  :

options igb max_vfs=7

blacklist igbvf

options loop max_loop=128

 

4.Modifying grub.conf, add iommu=1

kernel /boot/xen.gz vga=mode-0x317  iommu=1

 

5.reboot machine, after rebooting

dom0-93:/opt # lspci | grep Eth
03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
05:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
0b:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
0b:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
0c:10.0 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:10.1 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:10.4 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:10.5 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:11.0 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:11.1 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:11.4 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:11.5 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:12.0 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:12.1 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:12.4 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:12.5 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:13.0 Ethernet controller: Intel Corporation Device 1520 (rev 01)
0c:13.1 Ethernet controller: Intel Corporation Device 1520 (rev 01)

 

modifying grub.conf

title Xen -- SUSE Linux Enterprise Server 11 SP2 - 3.0.13-0.27
    root (hd0,0)
    kernel /boot/xen.gz vga=mode-0x317  iommu=1
    module /boot/vmlinuz-3.0.13-0.27-xen root=/dev/disk/by-id/cciss-3600508b100104839535656314933001b-part1 resume=/dev/disk/by-id/cciss-3600508b100104839535656314933001b-part2 splash=silent showopts vga=0x317 pciback.hide=(0c:10.0)(0c:10.1)(0c:10.4)(0c:10.5)(0c:11.0)(0c:11.1)(0c:11.4)(0c:11.5)(0c:12.0)(0c:12.1)(0c:12.4)(0c:12.5)(0c:13.0)(0c:13.1)
    module /boot/initrd-3.0.13-0.27-xen

 

6.reboot machine, Assigning a Virtual Function to a Virtual Machine

1)modifying vm.conf , add pci setting.

dom0-93:/etc/xen/vm # cat sles10sp4r2
name="sles10sp4r2"
description="None"
uuid="a847c466-adeb-704f-4ec5-c6fc0bdb96aa"
memory=1024
maxmem=1024
vcpus=4
on_poweroff="destroy"
on_reboot="restart"
on_crash="destroy"
localtime=0
keymap="en-us"
builder="linux"
bootloader="/usr/lib/xen/boot/domUloader.py"
bootargs="--entry=xvda2:/boot/vmlinuz-xen,/boot/initrd-xen"
#extra=" swiotlb=force "
extra=" "  (加不加swiotlb=force都行)
disk=[ 'phy:/dev/domu/sles10sp4,xvda,w', ]
vif=[ 'mac=00:16:3e:5f:5e:f5,bridge=br1',  'mac=00:16:3e:5f:5e:f6,bridge=br2', ]
vfb=['type=vnc,vncunused=1']
pci=['0c:10.0']

2)start vm

3)in domU,

vsles10sp4:~ # lspci
00:00.0 Ethernet controller: Intel Corporation Device 1520 (rev 01)

vsles10sp4:~ # dmesg | grep -i pci
PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
PCI: setting up Xen PCI frontend stub
PCI: System does not support PCI
PCI: System does not support PCI
pcifront pci-0: Installing PCI frontend
pcifront pci-0: Creating PCI Frontend Bus 0000:00

 

swiotlb :

For DMA access to work for pci devices in a PV guest it is required to enable the swiotlb in the domU (guest VM) kernel. (for some explanation about the swiotlb see http://lwn.net/Articles/91870/)

Add this option to your domU (guest VM) kernel boot options (cmdline arguments) list :

swiotlb=force

NOTE: This option is only required for older PV guest kernel versions (linux-2.6.18-xen, RHEL5, SLES10/11, Debian etch/lenny).

upstream kernel.org (pvops) Linux domU kernels requires just this option:

iommu=soft

4) in domU,install  the igbvf driver

vsles10sp4:/opt/igbvf-1.1.5/src # make
make -C /lib/modules/2.6.16.60-0.85.1-xen/build SUBDIRS=/opt/igbvf-1.1.5/src modules
make[1]: Entering directory `/usr/src/linux-2.6.16.60-0.85.1-obj/x86_64/xen'
make -C ../../../linux-2.6.16.60-0.85.1 O=../linux-2.6.16.60-0.85.1-obj/x86_64/xen modules
  Updating /opt/igbvf-1.1.5/src/Makefile.xen
  CC [M]  /opt/igbvf-1.1.5/src/netdev.o
  CC [M]  /opt/igbvf-1.1.5/src/ethtool.o
  CC [M]  /opt/igbvf-1.1.5/src/param.o
  CC [M]  /opt/igbvf-1.1.5/src/e1000_vf.o
  CC [M]  /opt/igbvf-1.1.5/src/kcompat.o
  CC [M]  /opt/igbvf-1.1.5/src/e1000_mbx.o
  LD [M]  /opt/igbvf-1.1.5/src/igbvf.o
  Building modules, stage 2.
  MODPOST
  CC      /opt/igbvf-1.1.5/src/igbvf.mod.o
  LD [M]  /opt/igbvf-1.1.5/src/igbvf.ko
make[1]: Leaving directory `/usr/src/linux-2.6.16.60-0.85.1-obj/x86_64/xen'
vsles10sp4:/opt/igbvf-1.1.5/src # insmod igbvf.ko
vsles10sp4:/opt/igbvf-1.1.5/src # lspci -vk
00:00.0 Ethernet controller: Intel Corporation Device 1520 (rev 01)
        Subsystem: Intel Corporation Device 0002
        Flags: bus master, fast devsel, latency 0
        Memory at fdc00000 (32-bit, non-prefetchable) [size=16K]
        Memory at fdc20000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: [70] MSI-X: Enable+ Mask- TabSize=3
        Capabilities: [a0] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [150] Alternative Routing-ID Interpretation (ARI)
        Capabilities: [1a0] #17
        Capabilities: [1d0] Access Control Services
        Kernel driver in use: igbvf

vsles10sp4:/opt/igbvf-1.1.5/src # ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3E:5F:5E:F5
          inet addr:10.6.193.92  Bcast:10.6.193.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe5f:5ef5/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:162968 errors:0 dropped:0 overruns:0 frame:0
          TX packets:39709 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:124790243 (119.0 Mb)  TX bytes:2657146 (2.5 Mb)

eth1      Link encap:Ethernet  HWaddr 00:16:3E:5F:5E:F6
          inet addr:192.168.1.81  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe5f:5ef6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13865 errors:0 dropped:0 overruns:0 frame:0
          TX packets:336 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2921773 (2.7 Mb)  TX bytes:20036 (19.5 Kb)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:644 (644.0 b)  TX bytes:644 (644.0 b)

vsles10sp4:/opt/igbvf-1.1.5/src # ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:16:3E:5F:5E:F5
          inet addr:10.6.193.92  Bcast:10.6.193.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe5f:5ef5/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:162988 errors:0 dropped:0 overruns:0 frame:0
          TX packets:39709 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:124791876 (119.0 Mb)  TX bytes:2657146 (2.5 Mb)

eth1      Link encap:Ethernet  HWaddr 00:16:3E:5F:5E:F6
          inet addr:192.168.1.81  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe5f:5ef6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13866 errors:0 dropped:0 overruns:0 frame:0
          TX packets:336 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2921833 (2.7 Mb)  TX bytes:20036 (19.5 Kb)

eth2      Link encap:Ethernet  HWaddr 22:BA:70:FE:1A:4D
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:644 (644.0 b)  TX bytes:644 (644.0 b)

sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

trouble-shooting tools:

dom0-93:/sys/bus/pci/drivers/igb/0000:0b:00.0/virtfn0 # xm pci-list-assignable-devices
0000:0c:10.1
0000:0c:10.4
0000:0c:10.5
0000:0c:11.0
0000:0c:11.1
0000:0c:11.4
0000:0c:11.5
0000:0c:12.0
0000:0c:12.1
0000:0c:12.4
0000:0c:12.5
0000:0c:13.0
0000:0c:13.1
dom0-93:/sys/bus/pci/drivers/igb/0000:0b:00.0/virtfn0 # xm pci-list 5
Device
0000:0c:10.0

12-23 22:08