
Solarflare
Server
Adapter
User
Guide
Solarflare
Adapters
on
Linux
Issue
20
©
Solarflare
Communications
2017
86
XPS
‐
Example
Configuration
System
Configuration:
•
Single
Solarflare
adapter
•
2
x
8
core
processors
with
hyperthreading
enabled
to
give
a
total
of
32
cores
•
rss_cpus=8
•
Only
1
interface
on
the
adapter
is
configured
•
The
IRQ
Balance
service
is
disabled
Identify
interrupts
for
the
configured
interface:
#
cat
/proc/interrupts
|
grep
’eth3\
|
CPU’
>
cat
/proc/irq/132/smp_affinity
00000000,00000000,00000000,00000001
>
cat
/proc/irq/133/smp_affinity
00000000,00000000,00000000,00000100
>
cat
/proc/irq/134/smp_affinity
00000000,00000000,00000000,00000002
[...snip...]
>
cat
/proc/irq/139/smp_affinity
00000000,00000000,00000000,00000800
The
output
identifies
that
IRQ
‐
132
is
the
first
queue
and
is
routed
to
CPU0.
IRQ
‐
133
is
the
second
queue
routed
to
CPU8,
IRQ
‐
134
to
CPU2
and
so
on.
Map
TX
queue
to
CPU
Hyperthreaded
cores
are
included
with
the
associated
physical
core:
>
echo
110011
>
/sys/class/net/eth3/queues/tx
‐
0/xps_cpus
>
echo
11001100
>
/sys/class/net/eth3/queues/tx
‐
1/xps_cpus
>
echo
220022
>
/sys/class/net/eth3/queues/tx
‐
2/xps_cpus
>
echo
22002200
>
/sys/class/net/eth3/queues/tx
‐
3/xps_cpus
>
echo
440044
>
/sys/class/net/eth3/queues/tx
‐
4/xps_cpus
>
echo
44004400
>
/sys/class/net/eth3/queues/tx
‐
5/xps_cpus
>
echo
880088
>
/sys/class/net/eth3/queues/tx
‐
6/xps_cpus
>
echo
88008800
>
/sys/class/net/eth3/queues/tx
‐
7/xps_cpus
Configure
Global
and
Per
Queue
Tables
•
The
flow
count
(number
of
active
connections
at
any
one
time)
=
32768
•
Number
of
queues
=
8
(rss_cpus)
•
So
the
flow
count
for
each
queue
will
be
32768/8
>
echo
32768
>
/proc/sys/net/core/rps_sock_flow_entries
>
echo
4096
>
/sys/class/net/eth3/queues/rx
‐
0/rps_flow_cnt
>
echo
4096
>
/sys/class/net/eth3/queues/rx
‐
1/rps_flow_cnt
>
echo
4096
>
/sys/class/net/eth3/queues/rx
‐
2/rps_flow_cnt
>
echo
4096
>
/sys/class/net/eth3/queues/rx
‐
3/rps_flow_cnt
>
echo
4096
>
/sys/class/net/eth3/queues/rx
‐
4/rps_flow_cnt