Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login
    Introducing Netgate Nexus: Multi-Instance Management at Your Fingertips.

    PSA for anyone with a hyperthreading CPU, or one with P-cores + E-cores…

    Scheduled Pinned Locked Moved Hardware
    5 Posts 4 Posters 363 Views 6 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • luckman212L Offline
      luckman212 LAYER 8 Rebel Alliance
      last edited by

      I was debugging a very high interrupt (intr process in top/ps/btop etc) when pushing high amounts of data across my 10G ixl interfaces. After much research (I'll spare you the boring parts) I discovered that the FreeBSD iflib driver was spreading the load across multiple cores of my "10-core" Intel i7-1255U CPU, treating each one equally. In fact, only core#0 and #2 were true "P-cores" (performance) -- the rest were just HT cores or low perf E-cores.

      I figured out that by adding these sysctls to /boot/loader.conf.local, I could force those queues to use the P-cores and my CPU usage when pushing 10G traffic dropped from >25% to ~11%.

      dev.ixl.0.iflib.override_qs_enable=1
      dev.ixl.0.iflib.core_offset=0
      dev.ixl.0.iflib.override_nrxqs=2
      dev.ixl.0.iflib.override_ntxqs=2
      dev.ixl.1.iflib.override_qs_enable=1
      dev.ixl.1.iflib.core_offset=0
      dev.ixl.1.iflib.override_nrxqs=2
      dev.ixl.1.iflib.override_ntxqs=2
      

      Your overrides may be different if you have a different CPU, so double check.

      After tuning this, you want to kick off some high bandwidth transfers and watch your iterrupts, check that they are hitting the P-cores with something like systat -vmstat 1 and top -HPST -p $(pgrep -Sx intr):

      9f3204ac-3430-47ce-a9d2-6d3954bf59cc-screen.png

      89df2c7e-d662-4cbd-9734-b192c1a4629b-CleanShot 2026-09-10 at 8.53.38 AM.png

      160a64ad-e734-4c9f-a714-8f4374d0b8f1-CleanShot 2026-09-10 at 9.22.53 AM.png

      I couldn't find anything about this in the docs (probably because it doesn't really affect current Netgate hardware) so passing this along. Hope it helps someone.

      1 Reply Last reply Reply Quote 4
      • KOMK Offline
        KOM
        last edited by

        I specifically avoid Intel CPUS now (and have for years since the sidechannel attacks) due to that and this sort of nonsense. AMD all the way. They're not perfect but I was just sick & tired of Intel's garbage. IIRC VMware had an issue with mixed cores but Proxmox handled them just fine. I just avoid mixed cores (and Intel) whenever I can.

        AndyRHA 1 Reply Last reply Reply Quote 0
        • AndyRHA Offline
          AndyRH @KOM
          last edited by

          @KOM AMD will be doing 3 core types. That is the way all will be. Apple is doing it with ARM CPUs.

          o|||||||o
          8200

          KOMK 1 Reply Last reply Reply Quote 0
          • KOMK Offline
            KOM @AndyRH
            last edited by

            @AndyRH Dammit. I don't want p cores, e cores, and lpe cores all being juggled by a scheduler that may or may not handle them efficiently and transparently.

            1 Reply Last reply Reply Quote 0
            • stephenw10S Offline
              stephenw10 Netgate Administrator
              last edited by

              Just use one very fast core. Solved! 😜

              1 Reply Last reply Reply Quote 0
              • First post
                Last post
              Copyright 2026 Rubicon Communications LLC (Netgate). All rights reserved.
              Privacy Policy · Cookie Policy