
Solarflare
Server
Adapter
User
Guide
SR
‐
IOV
Virtualization
Using
KVM
Issue
20
©
Solarflare
Communications
2017
328
Users
are
advised
to
consult
the
server
vendor
BIOS
options
documentation.
Kernel
Configuration
On
an
Intel
platform,
the
IOMMU
must
be
explicitly
enabled
by
appending
intel_iommu=on
to
the
kernel
line
in
the
/boot/grub/grub.conf
file.
The
equivalent
setting
on
an
AMD
system
is
amd_iommu=on
.
Solarflare
recommends
that
users
also
enable
the
pci=realloc
kernel
parameter
in
the
/boot/grub/grub.conf
file.
This
allows
the
kernel
to
reassign
addresses
to
PCIe
apertures
(i.e.
bridges,
ports)
in
the
system
when
the
BIOS
does
not
allow
enough
PCI
apertures
for
the
maximum
number
of
supported
VFs.
KVM
‐
Interrupt
Re
‐
Mapping
To
use
PCIe
VF
passthrough,
the
server
must
support
interrupt
re
‐
mapping.
If
the
target
server
does
not
support
interrupt
re
‐
mapping
it
is
necessary
to
set
the
following
option
in
a
user
created
file
e.g.
kvm_iommu_map_guest.conf
in
the
/
etc/modprobe.d
directory:
[RHEL
6]
options
kvm
allow_unsafe_assigned_interrupts=1
[RHEL
7]
options
vfio_iommu_type1
allow_unsafe_assigned_interrupts=1
Alternative
Routing
‐
ID
Interpretation
(ARI)
The
ARI
extension
to
the
PCI
Express
Base
Specification
extends
the
capacity
of
a
PCIe
endpoint
by
increasing
the
number
of
accessible
functions
(PF+VF)
from
8,
up
to
256.
Without
ARI
support
‐
which
is
a
feature
of
the
server
hardware
and
BIOS,
a
server
hosting
a
virtualized
environment
will
be
limited
to
8
functions.
Solarflare
SFN7000
and
SFN8000
series
adapters
can
expose
up
to
16
PFs
and
240
VFs
per
adapter.
Users
should
consult
the
appropriate
server
vendor
documentation
to
ensure
that
the
host
server
supports
ARI.
Supported
Adapters
All
Solarflare
SFN7000
and
SFN8000
series
adapters
fully
support
SR
‐
IOV.
Features
described
in
this
chapter
are
not
supported
by
Solarflare
SFN5000
or
SFN6000
series
adapters
which
support
a
limited
SR
‐
IOV
implementation.
The
sfboot
utility
allows
the
user
to
configure:
•
The
number
of
PFs
exposed
to
host
and/or
Virtual
Machine
(VM).
•
The
number
VFs
exposed
to
host
and/or
Virtual
Machine
(VM).
•
The
number
of
MSI
‐
X
interrupts
assigned
to
each
PF
or
VF.
The
Solarflare
implementation
uses
a
single
driver
(sfc.ko)
that
binds
to
both
PFs
and
VFs.