VPP XDP with rx-queue-size stuck
VM 4 CPU, 24G memory
set system option kernel cpu disable-nmi-watchdog set system option kernel cpu isolate-cpus '2-3' set system option kernel cpu nohz-full '2-3' set system option kernel cpu rcu-no-cbs '2-3' set system option kernel disable-hpet set system option kernel disable-mce set system option kernel disable-softlockup set system option kernel memory default-hugepage-size '2M' set system option kernel memory disable-numa-balancing set system option kernel memory hugepage-size 2M hugepage-count '4096' set vpp settings interface eth0 driver 'xdp' set vpp settings interface eth1 driver 'xdp' set vpp settings interface eth1 xdp-options rx-queue-size 8 commit
commit:
vyos@r14# commit
[ vpp ]
DEBUG: {'rxq_size': 0, 'txq_size': 0, 'rxq_num': 0}
An error occurred: VPP API call failed: -7. VPP service will be
restarted with the previous configuration
[[vpp]] failed
Commit failed
Traceback (most recent call last):
File "/usr/libexec/vyos/reset_section.py", line 97, in <module>
os.unlink(hint_name)
PermissionError: [Errno 1] Operation not permitted: '/tmp/apply_5953'
[edit]
vyos@r14#After commit, it stuck and interfaces were in the down state
vyos@r14# run show int Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down Interface IP Address MAC VRF MTU S/L Description ----------- ------------ ----------------- ------- ----- ----- ------------- eth0 - 52:54:00:77:fa:36 default 1500 A/D WAN eth1 192.0.2.1/30 52:54:00:28:23:f1 default 1500 A/D LAN
Previous config:
vyos@r14# discard Changes have been discarded [edit] vyos@r14# [edit] vyos@r14# [edit] vyos@r14# load Load complete. Use 'commit' to make changes effective. [edit] vyos@r14# compare commands set vpp settings interface eth0 driver 'dpdk' set vpp settings interface eth1 dpdk-options promisc set vpp settings interface eth1 driver 'dpdk' set vpp settings memory main-heap-page-size '2M' set vpp settings memory main-heap-size '4G' set vpp settings statseg page-size '2M' set vpp settings statseg size '1G' set vpp settings unix poll-sleep-usec '222' [edit] vyos@r14#
ethtool:
vyos@r14# sudo ethtool -l eth0 Channel parameters for eth0: Pre-set maximums: RX: n/a TX: n/a Other: n/a Combined: 5 Current hardware settings: RX: n/a TX: n/a Other: n/a Combined: 4 [edit] vyos@r14# [edit] vyos@r14# sudo ethtool -g eth0 Ring parameters for eth0: Pre-set maximums: RX: 256 RX Mini: n/a RX Jumbo: n/a TX: 256 TX push buff len: n/a Current hardware settings: RX: 256 RX Mini: n/a RX Jumbo: n/a TX: 256 RX Buf Len: n/a CQE Size: n/a TX Push: off RX Push: off TX push buff len: n/a TCP data split: n/a [edit] vyos@r14# vyos@r14# sudo ethtool -l eth1 Channel parameters for eth1: Pre-set maximums: RX: n/a TX: n/a Other: n/a Combined: 8 Current hardware settings: RX: n/a TX: n/a Other: n/a Combined: 4 [edit] vyos@r14# [edit] vyos@r14# sudo ethtool -g eth1 Ring parameters for eth1: Pre-set maximums: RX: 256 RX Mini: n/a RX Jumbo: n/a TX: 256 TX push buff len: n/a Current hardware settings: RX: 256 RX Mini: n/a RX Jumbo: n/a TX: 256 RX Buf Len: n/a CQE Size: n/a TX Push: off RX Push: off TX push buff len: n/a TCP data split: n/a [edit] vyos@r14#