How to reproduce
- Configure 2GB of hugepages (less than needed with a default VPP settings)
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-mitigations set system option kernel disable-softlockup set system option kernel memory hugepage-size 2M hugepage-count '1024'
Commit and reboot.
- Try to enable VPP
set vpp settings interface eth0 commit
You should see (expected) error message:
[ vpp ] Not enough free memory to start VPP! 2M HugePages memory: available 2.0 GB, required 3.2 GB To add HugePages memory please use command "set system option kernel memory hugepage-size ..." and reboot! [[vpp]] failed Commit failed
- Without exiting from config mode, update VPP settings to fit into available hugepages memory:
set vpp settings resource-allocation memory main-heap-size 1G commit
You will see a traceback:
[edit]
vyos@vyos# commit
[ vpp ]
WARNING: NOTE: Current dataplane capacity (estimated): 2 M IPv4
routes. Exceeding these values will lead to a dataplane out-of-memory
condition and a crash. Extensive use of features like ACLs, NAT and
others may reduce the numbers above. Please read the documentation for
details: https://docs.vyos.io/
Traceback (most recent call last):
File "/usr/libexec/vyos/services/vyos-configd", line 157, in run_script
script.apply(c)
File "/usr/libexec/vyos/conf_mode/vpp.py", line 695, in apply
persist_config = JSONStorage('vpp_conf')
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/vyos/vpp/configdb.py", line 55, in __init__
raise FileExistsError(f'Cannot open locked storage: {self.__storage}')
FileExistsError: Cannot open locked storage: /run/vpp/vpp_conf.json
[[vpp]] failed
Commit failedThe lock file is in place, despite no config script is running at the moment:
[edit] vyos@vyos# ls -la /run/vpp/vpp_conf.lock -rw-r--r-- 1 root vyattacfg 0 Feb 20 11:52 /run/vpp/vpp_conf.lock