[Bug 232153] Processes without explicit cpuset only use half the SMP threads (on a Ryzen)

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Oct 10 16:22:48 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=232153

            Bug ID: 232153
           Summary: Processes without explicit cpuset only use half the
                    SMP threads (on a Ryzen)
           Product: Base System
           Version: CURRENT
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs at FreeBSD.org
          Reporter: greg at unrelenting.technology

(AMD Ryzen 7 1700: 1 package(s) x 2 cache groups x 4 core(s) x 2 hardware
threads)

Somewhere in the 12-ALPHA cycle, the following started happening:

All processes are only being scheduled on half the hardware threads — either
CPUs 0-7 or 8-15 (rebooting can change which half it is).

Launching a benchmark or build process with 16 threads only uses 8 CPUs; it's
clearly visible in sysutils/htop that half the CPUs always sit at 0.0% with
occasional 0.5%-1% tasks while the other half is constantly getting at least
1-3% utilization for the random background activity on the system, etc. etc.

But launching a process explicitly with 'cpuset -l0-15 some_command' DOES use
all 16 CPUs just fine!!

It's just the default cpuset that's avoiding half of the CPU. But cpuset(1)
does not report anything unusual, the default cpusets include all 16 CPUs:

~ % cpuset -s 0 -g                                                             
                                                                               
                                                           cpuset 0 mask: 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
cpuset 0 domain policy: first-touch mask: 0
~ % cpuset -s 1 -g                                                             
                                                                               
                                                           cpuset 1 mask: 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
cpuset 1 domain policy: first-touch mask: 0
~ % cpuset -s 2 -g                                                              
cpuset 2 mask: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
cpuset 2 domain policy: interleave mask: 0

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list