Page MenuHomeVyOS Platform

VPP fails to run on 4vCPU Azure/AWS vm (minimal CPU requirements not met)
Closed, ResolvedPublicENHANCEMENT

Description

Azure VM: Standard_D4s_v3 (4 vCPU, 16gb RAM)
AWS VM: c5n.xlarge (4 vCPU, 10.5gb RAM)

VPP commit output:

[ vpp ]
This system does not meet minimal requirements for VPP. Minimum 4 CPU
cores are required.
[[vpp]] failed
Commit failed

lscpu command output:

adminuser@vyos-vm# lscpu
Architecture:                x86_64
  CPU op-mode(s):            32-bit, 64-bit
  Address sizes:             46 bits physical, 48 bits virtual
  Byte Order:                Little Endian
CPU(s):                      4
  On-line CPU(s) list:       0-3
Vendor ID:                   GenuineIntel
  Model name:                Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
    CPU family:              6
    Model:                   85
    Thread(s) per core:      2
    Core(s) per socket:      2
    Socket(s):               1
    Stepping:                4
    BogoMIPS:                4190.43
    Flags:                   fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx f
                             xsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology 
                             cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt
                              aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch pti tpr_shadow ept vp
                             id fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap
                              clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves vnmi md_clear
Virtualization features:     
  Virtualization:            VT-x
  Hypervisor vendor:         Microsoft
  Virtualization type:       full
Caches (sum of all):         
  L1d:                       64 KiB (2 instances)
  L1i:                       64 KiB (2 instances)
  L2:                        2 MiB (2 instances)
  L3:                        35.8 MiB (1 instance)
NUMA:                        
  NUMA node(s):              1
  NUMA node0 CPU(s):         0-3

/proc/cpuinfo output:

{
    "0": {
        "vendor_id": "GenuineIntel",
        "cpu family": "6",
        "model": "85",
        "model name": "Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz",
        "stepping": "4",
        "microcode": "0xffffffff",
        "cpu MHz": "2095.218",
        "cache size": "36608 KB",
        "physical id": "0",
        "siblings": "4",
        "core id": "0",
        "cpu cores": "2",
        "apicid": "0",
        "initial apicid": "0",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "21",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch pti tpr_shadow ept vpid fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves vnmi md_clear",
        "vmx flags": "vnmi invvpid tsc_offset vtpr ept vpid",
        "bugs": "cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit mmio_stale_data retbleed gds bhi its",
        "bogomips": "4190.43",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "46 bits physical, 48 bits virtual",
        "power management": ""
    },
    "1": {
        "vendor_id": "GenuineIntel",
        "cpu family": "6",
        "model": "85",
        "model name": "Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz",
        "stepping": "4",
        "microcode": "0xffffffff",
        "cpu MHz": "2095.218",
        "cache size": "36608 KB",
        "physical id": "0",
        "siblings": "4",
        "core id": "0",
        "cpu cores": "2",
        "apicid": "1",
        "initial apicid": "1",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "21",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch pti tpr_shadow ept vpid fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves vnmi md_clear",
        "vmx flags": "vnmi invvpid tsc_offset vtpr ept vpid",
        "bugs": "cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit mmio_stale_data retbleed gds bhi its",
        "bogomips": "4190.43",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "46 bits physical, 48 bits virtual",
        "power management": ""
    },
    "2": {
        "vendor_id": "GenuineIntel",
        "cpu family": "6",
        "model": "85",
        "model name": "Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz",
        "stepping": "4",
        "microcode": "0xffffffff",
        "cpu MHz": "2095.218",
        "cache size": "36608 KB",
        "physical id": "0",
        "siblings": "4",
        "core id": "1",
        "cpu cores": "2",
        "apicid": "2",
        "initial apicid": "2",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "21",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch pti tpr_shadow ept vpid fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves vnmi md_clear",
        "vmx flags": "vnmi invvpid tsc_offset vtpr ept vpid",
        "bugs": "cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit mmio_stale_data retbleed gds bhi its",
        "bogomips": "4190.43",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "46 bits physical, 48 bits virtual",
        "power management": ""
    },
    "3": {
        "vendor_id": "GenuineIntel",
        "cpu family": "6",
        "model": "85",
        "model name": "Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz",
        "stepping": "4",
        "microcode": "0xffffffff",
        "cpu MHz": "2095.218",
        "cache size": "36608 KB",
        "physical id": "0",
        "siblings": "4",
        "core id": "1",
        "cpu cores": "2",
        "apicid": "3",
        "initial apicid": "3",
        "fpu": "yes",
        "fpu_exception": "yes",
        "cpuid level": "21",
        "wp": "yes",
        "flags": "fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch pti tpr_shadow ept vpid fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves vnmi md_clear",
        "vmx flags": "vnmi invvpid tsc_offset vtpr ept vpid",
        "bugs": "cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit mmio_stale_data retbleed gds bhi its",
        "bogomips": "4190.43",
        "clflush size": "64",
        "cache_alignment": "64",
        "address sizes": "46 bits physical, 48 bits virtual",
        "power management": ""
    }
}

Steps to reproduce:

1. Azure/AWS vm with 4 vCPU
2. set vpp settings interface eth1 driver 'xdp'
3. commit

Details

Version
vyos-2025.09.01-0023-rolling-generic-amd64
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

Unknown Object (User) assigned this task to natali-rs1985.Sep 4 2025, 8:26 AM
Unknown Object (User) triaged this task as High priority.
Thread(s) per core:      2
Core(s) per socket:      2
Socket(s):               1

The calculation is okay for me: 1 socket, 2 cores. Threads or virtual cores will do more harm than good to performance. Should we disallow starting VPP on such instances?

Should we disallow starting VPP on such instances?

It's already disallowed. Vpp is not started with proper error message

It's already disallowed. Vpp is not started with proper error message

@natali-rs1985 I mean, should we keep the current behaviour? :)

a.kudientsov renamed this task from VPP fails to run on Azure vm (minimal CPU requirements not met) to VPP fails to run on 4vCPU Azure/AWS vm (minimal CPU requirements not met).Sep 4 2025, 2:17 PM
a.kudientsov updated the task description. (Show Details)

Have just checked it with AWS 4 vCPU vm and the behavior is the same as with Azure

Viacheslav changed the subtype of this task from "Bug" to "Enhancement".Sep 4 2025, 10:40 PM

Needs the correction of the error message to be clearer.

Viacheslav lowered the priority of this task from High to Normal.Sep 4 2025, 10:40 PM
natali-rs1985 changed the task status from Open to In progress.Sep 5 2025, 8:58 AM
natali-rs1985 changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.
natali-rs1985 changed Issue type from Bug (incorrect behavior) to Feature (new functionality).
natali-rs1985 moved this task from Need Triage to Completed on the VyOS Rolling board.
dmbaturin changed Issue type from Feature (new functionality) to Bug (incorrect behavior).