Quellcode durchsuchen

SRIOV support

Enable SR-IOV support on server.

Change-Id: I7dabe340abd398cc0422698112cbdd81804446b7
Epic: PROD-8956
tags/2017.4
Jakub Pavlik vor 7 Jahren
Ursprung
Commit
5398d873d5
5 geänderte Dateien mit 67 neuen und 0 gelöschten Zeilen
  1. +19
    -0
      README.rst
  2. +11
    -0
      linux/system/grub.sls
  3. +7
    -0
      linux/system/hugepages.sls
  4. +3
    -0
      linux/system/init.sls
  5. +27
    -0
      linux/system/sriov.sls

+ 19
- 0
README.rst Datei anzeigen

@@ -242,6 +242,25 @@ with memory allocation/deallocation by decreasing memory fragmentation.

Note: not recommended to use both pagesizes in concurrently.

Intel SR-IOV
~~~~~~~~~~~~

PCI-SIG Single Root I/O Virtualization and Sharing (SR-IOV) specification defines a standardized mechanism to virtualize PCIe devices. The mechanism can virtualize a single PCIe Ethernet controller to appear as multiple PCIe devices.

.. code-block:: yaml

linux:
system:
kernel:
sriov: True
unsafe_interrupts: False # Default is false. for older platforms and AMD we need to add interrupt remapping workaround
rc:
local: |
#!/bin/sh -e
# Enable 7 VF on eth1
echo 7 > /sys/class/net/eth1/device/sriov_numvfs; sleep 2; ifup -a
exit 0


Repositories
~~~~~~~~~~~~

+ 11
- 0
linux/system/grub.sls Datei anzeigen

@@ -0,0 +1,11 @@
grub_d_directory:
file.directory:
- name: /etc/default/grub.d
- user: root
- group: root
- mode: 755
- makedirs: True

grub_update:
cmd.wait:
- name: update-grub

+ 7
- 0
linux/system/hugepages.sls Datei anzeigen

@@ -1,11 +1,18 @@
{%- from "linux/map.jinja" import system with context %}

include:
- linux.system.grub

{%- if "pse" in grains.cpu_flags or "pdpe1gb" in grains.cpu_flags %}

/etc/default/grub.d/90-hugepages.cfg:
file.managed:
- source: salt://linux/files/grub_hugepages
- template: jinja
- require:
- file: grub_d_directory
- watch_in:
- cmd: grub_update

{%- for hugepages_type, hugepages in system.kernel.hugepages.iteritems() %}


+ 3
- 0
linux/system/init.sls Datei anzeigen

@@ -14,6 +14,9 @@ include:
{%- if system.kernel.hugepages is defined %}
- linux.system.hugepages
{%- endif %}
{%- if system.kernel.sriov is defined %}
- linux.system.sriov
{%- endif %}
{%- endif %}
{%- if system.cpu is defined %}
- linux.system.cpu

+ 27
- 0
linux/system/sriov.sls Datei anzeigen

@@ -0,0 +1,27 @@
{%- from "linux/map.jinja" import system with context %}

include:
- linux.system.grub

/etc/default/grub.d/90-sriov.cfg:
file.managed:
- contents: 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT intel_iommu=on iommu=pt"'
- require:
- file: grub_d_directory
- watch_in:
- cmd: grub_update

/etc/modprobe.d/sriov.conf:
file.managed:
- contents: |
blacklist ixgbevf
blacklist igbvf
blacklist i40evf

{%- if system.kernel.get('unsafe_interrupts', false) %}

/etc/modprobe.d/iommu_unsafe_interrupts.conf:
file.managed:
- contents: options vfio_iommu_type1 allow_unsafe_interrupts=1

{%- endif %}

Laden…
Abbrechen
Speichern