Sure.
This is what I've done for Customer 2. It's a VSX cluster on 5600 appliances, with only 4 CPU's and 4 bonds (SYNC is also part of a bonding group). As it's not production yet I've changed affinity a bit again to make my issue better visible.
#sim affinity -s
Usage : For each interface enter one of the following:
Return - To keep the default values (appearing in [ ])
all - To allow all processors for this interface
List of processors - A list of processor numbers between 0 and 3
Mgmt [0] : 0
Sync [0] : 1
eth1 [0] : 0
eth2 [0] : 0
eth3 [0] : 0
eth4 [0] : 0
eth5 [0] : 1
eth6 [0] : 1
eth7 [0] : 1
VS0 = Mgmt (offcourse)
VS1 = Virtual Switch
VS2 - VS3 = Virtual Systems
# fw ctl affinity -s -d -vsid 0-1 -cpu 2
VDevice 0-1 : CPU 2 - set successfully
Multi-queue affinity was not changed. For More info, see sk113834.
# fw ctl affinity -s -d -vsid 2-3 -cpu 3
VDevice 2-3 : CPU 3 - set successfully
Multi-queue affinity was not changed. For More info, see sk113834.
Affinity configuration will be shown as:
# fw ctl affinity -l -a
eth1: CPU 0
eth5: CPU 1
eth2: CPU 0
eth6: CPU 1
eth3: CPU 0
eth7: CPU 1
eth4: CPU 0
Sync: CPU 1
Mgmt: CPU 0
VS_0: CPU 2
VS_0 fwk: CPU 2
VS_1: CPU 2
VS_1 fwk: CPU 2
VS_2: CPU 3
VS_2 fwk: CPU 3
VS_3: CPU 3
VS_3 fwk: CPU 3
Actual affinity (before reboot) is shown as:
# fw ctl affinity -l -a -x -vsid 1
---------------------------------------------------------------------
|PID |VSID | CPU |SRC|V|KT |EXC| NAME
---------------------------------------------------------------------
| 17381 | 1 | 2 | V | | | | snmpd_1
| 19638 | 1 | 2 | V | | | | fwk_wd
| 19693 | 1 | 2 | V | | | | fwk
| 19942 | 1 | 2 | V | | | | cpd
| 19944 | 1 | 2 | V | | | | fwd
| 20013 | 1 | 2 | V | | | | cpviewd
---------------------------------------------------------------------
PID - represents the pid of the process
VSID - represents the virtual device id
CPU - represents the CPUs assigned to the specific process
SRC - represents the source configuration file of the process - (V)SID / (I)nstance / (P)rocess
V - represents validity,star means that the actual affinity is different than the configured affinity
KT - represents whether the process is a kernel thread
EXC - represents whether the process belongs to the process exception list (vsaffinity_exception.conf)
# fw ctl affinity -l -a -x -vsid 2
---------------------------------------------------------------------
|PID |VSID | CPU |SRC|V|KT |EXC| NAME
---------------------------------------------------------------------
| 4881 | 2 | 3 | V | | | | routed
| 6486 | 2 | 3 | V | | | | fwd
| 17402 | 2 | 3 | V | | | | snmpd_2
| 19691 | 2 | 3 | V | | | | fwk_wd
| 19696 | 2 | 3 | V | | | | fwk
| 19947 | 2 | 3 | V | | | | cpd
| 20030 | 2 | 3 | V | | | | cpviewd
| 20034 | 2 | 3 | V | | | | mpdaemon
| 20036 | 2 | 3 | V | | | | ci_http_server
| 28911 | 2 | 3 | V | | | | cphamcset
---------------------------------------------------------------------
PID - represents the pid of the process
VSID - represents the virtual device id
CPU - represents the CPUs assigned to the specific process
SRC - represents the source configuration file of the process - (V)SID / (I)nstance / (P)rocess
V - represents validity,star means that the actual affinity is different than the configured affinity
KT - represents whether the process is a kernel thread
EXC - represents whether the process belongs to the process exception list (vsaffinity_exception.conf)
# fw ctl affinity -l -a -x -vsid 3
---------------------------------------------------------------------
|PID |VSID | CPU |SRC|V|KT |EXC| NAME
---------------------------------------------------------------------
| 6254 | 3 | 3 | V | | | | fwd
| 17425 | 3 | 3 | V | | | | snmpd_3
| 19605 | 3 | 3 | V | | | | fwk_wd
| 19692 | 3 | 3 | V | | | | fwk
| 19893 | 3 | 3 | V | | | | cpd
| 19902 | 3 | 3 | V | | | | cpviewd
| 19904 | 3 | 3 | V | | | | mpdaemon
| 19938 | 3 | 3 | V | | | | ci_http_server
| 24492 | 3 | 3 | V | | | | cphamcset
| 29680 | 3 | 3 | V | | | | routed
---------------------------------------------------------------------
PID - represents the pid of the process
VSID - represents the virtual device id
CPU - represents the CPUs assigned to the specific process
SRC - represents the source configuration file of the process - (V)SID / (I)nstance / (P)rocess
V - represents validity,star means that the actual affinity is different than the configured affinity
KT - represents whether the process is a kernel thread
EXC - represents whether the process belongs to the process exception list (vsaffinity_exception.conf)
Now, when I perform a reboot the affinity configuration is still the same (as expected):
# fw ctl affinity -l -a
eth1: CPU 0
eth5: CPU 1
eth2: CPU 0
eth6: CPU 1
eth3: CPU 0
eth7: CPU 1
eth4: CPU 0
Sync: CPU 1
Mgmt: CPU 0
VS_0: CPU 2
VS_0 fwk: CPU 2
VS_1: CPU 2
VS_1 fwk: CPU 2
VS_2: CPU 3
VS_2 fwk: CPU 3
VS_3: CPU 3
VS_3 fwk: CPU 3
But now, after the reboot, the actual affinity differs from the configured affinity as confirmed by the * in the V column:
# fw ctl affinity -l -a -x -vsid 1
---------------------------------------------------------------------
|PID |VSID | CPU |SRC|V|KT |EXC| NAME
---------------------------------------------------------------------
| 14112 | 1 | 2 3 | V |*| | | snmpd_1
| 16657 | 1 | 2 3 | V |*| | | fwk_wd
| 16660 | 1 | 2 3 | V |*| | | fwk
| 18413 | 1 | 2 3 | V |*| | | cpd
| 18415 | 1 | 2 3 | V |*| | | fwd
| 18608 | 1 | 2 3 | V |*| | | cpviewd
---------------------------------------------------------------------
PID - represents the pid of the process
VSID - represents the virtual device id
CPU - represents the CPUs assigned to the specific process
SRC - represents the source configuration file of the process - (V)SID / (I)nstance / (P)rocess
V - represents validity,star means that the actual affinity is different than the configured affinity
KT - represents whether the process is a kernel thread
EXC - represents whether the process belongs to the process exception list (vsaffinity_exception.conf)
# fw ctl affinity -l -a -x -vsid 2
---------------------------------------------------------------------
|PID |VSID | CPU |SRC|V|KT |EXC| NAME
---------------------------------------------------------------------
| 2380 | 2 | 3 | V | | | | cphamcset
| 2400 | 2 | 2 | V |*| | | routed
| 14149 | 2 | 2 3 | V |*| | | snmpd_2
| 16598 | 2 | 2 3 | V |*| | | fwk_wd
| 16650 | 2 | 2 3 | V |*| | | fwk
| 18860 | 2 | 2 3 | V |*| | | cpd
| 19114 | 2 | 2 3 | V |*| | | fwd
| 19691 | 2 | 2 3 | V |*| | | cpviewd
| 19707 | 2 | 2 3 | V |*| | | mpdaemon
| 19709 | 2 | 2 3 | V |*| | | ci_http_server
---------------------------------------------------------------------
PID - represents the pid of the process
VSID - represents the virtual device id
CPU - represents the CPUs assigned to the specific process
SRC - represents the source configuration file of the process - (V)SID / (I)nstance / (P)rocess
V - represents validity,star means that the actual affinity is different than the configured affinity
KT - represents whether the process is a kernel thread
EXC - represents whether the process belongs to the process exception list (vsaffinity_exception.conf)
# fw ctl affinity -l -a -x -vsid 3
---------------------------------------------------------------------
|PID |VSID | CPU |SRC|V|KT |EXC| NAME
---------------------------------------------------------------------
| 14230 | 3 | 2 3 | V |*| | | snmpd_3
| 16579 | 3 | 2 3 | V |*| | | fwk_wd
| 16649 | 3 | 2 3 | V |*| | | fwk
| 18628 | 3 | 2 3 | V |*| | | cpd
| 18859 | 3 | 2 3 | V |*| | | fwd
| 21124 | 3 | 2 3 | V |*| | | cpviewd
| 21285 | 3 | 2 3 | V |*| | | mpdaemon
| 21293 | 3 | 2 3 | V |*| | | ci_http_server
| 24428 | 3 | 3 | V | | | | cphamcset
| 32591 | 3 | 2 | V |*| | | routed
---------------------------------------------------------------------
PID - represents the pid of the process
VSID - represents the virtual device id
CPU - represents the CPUs assigned to the specific process
SRC - represents the source configuration file of the process - (V)SID / (I)nstance / (P)rocess
V - represents validity,star means that the actual affinity is different than the configured affinity
KT - represents whether the process is a kernel thread
EXC - represents whether the process belongs to the process exception list (vsaffinity_exception.conf)
My blog: https://checkpoint.engineer