Date: Thu, 8 Jul 2021 10:19:07 +0300 From: Rozhuk Ivan <rozhuk.im@gmail.com> To: George Mitchell <george+freebsd@m5p.com> Cc: FreeBSD Hackers <freebsd-hackers@FreeBSD.org> Subject: Re: Periodic rant about SCHED_ULE Message-ID: <20210708101907.0be3a3c2@rimwks.local> In-Reply-To: <13445948-7804-20b4-4ae6-aaac14d11e87@m5p.com> References: <13445948-7804-20b4-4ae6-aaac14d11e87@m5p.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 7 Jul 2021 13:47:47 -0400 George Mitchell <george+freebsd@m5p.com> wrote: > CPU: AMD Ryzen 5 2600X Six-Core Processor (3600.10-MHz K8-class CPU) > (12 threads). > > FreeBSD 12.2-RELEASE-p7 r369865 GENERIC amd64 (SCHED_ULE) vs > FreeBSD 12.2-RELEASE-p7 r369865 M5P amd64 (SCHED_4BSD). > > Comparing "make buildworld" time with misc/dnetc running vs not > running. (misc/dnetc is your basic 100% compute-bound task, running > at nice 20.) > > Three out of the four combinations build in roughly four hours, but > SCHED_ULE with dnetc running takes close to twelve! (And that was > overnight with basically nothing else running.) This is an even > worse disparity than I have seen in previous releases. I do not use dnetc, but shed_ule on 2700 compile wold faster than 4 hours. With ccache it takes ~10 minutes: world+kernel build and install and update loaders. # Make an SMP-capable kernel by default options SMP #b Symmetric MultiProcessor Kernel options NUMA #o Non-Uniform Memory Architecture support options EARLY_AP_STARTUP #o device cpufreq #m for non-ACPI CPU frequency control device cpuctl #m Provides access to MSRs, CPUID info and microcode update feature. # Kernel base options SCHED_ULE #b 4BSD/ULE scheduler options _KPOSIX_PRIORITY_SCHEDULING #b POSIX P1003_1B real-time extensions options PREEMPTION #b Enable kernel thread preemption and sysctl tunings on desktop only: # SCHEDULER kern.sched.steal_thresh=1 # Minimum load on remote CPU before we'll steal // workaround for freezes kern.sched.balance=0 # Enables the long-term load balancer kern.sched.balance_interval=1000 # Average period in stathz ticks to run the long-term balancer kern.sched.affinity=10000 # Number of hz ticks to keep thread affinity for
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20210708101907.0be3a3c2>