Branch: refs/heads/webkitglib/2.54
Home: https://github.com/WebKit/WebKit
Commit: 6d1d5b05986b356b3eed80c912d72ed79cc215af
https://github.com/WebKit/WebKit/commit/6d1d5b05986b356b3eed80c912d72ed79cc215af
Author: Justin Michaud <[email protected]>
Date: 2026-09-19 (Sat, 19 Sep 2026)
Changed paths:
M Source/JavaScriptCore/jit/JITWorklistThread.cpp
M Source/JavaScriptCore/wasm/WasmWorklist.cpp
M Source/WTF/wtf/AutomaticThread.cpp
M Source/WTF/wtf/AutomaticThread.h
M Source/WTF/wtf/PlatformGTK.cmake
M Source/WTF/wtf/PlatformJSCOnly.cmake
M Source/WTF/wtf/PlatformWPE.cmake
M Source/WTF/wtf/Threading.cpp
M Source/WTF/wtf/Threading.h
M Source/WTF/wtf/ThreadingEnums.h
A Source/WTF/wtf/linux/HighPriorityThreads.cpp
A Source/WTF/wtf/linux/HighPriorityThreads.h
R Source/WTF/wtf/linux/RealTimeThreads.cpp
R Source/WTF/wtf/linux/RealTimeThreads.h
M Source/WTF/wtf/posix/ThreadingPOSIX.cpp
M Source/WTF/wtf/win/ThreadingWin.cpp
M Source/WebCore/platform/audio/RealtimeAudioThread.cpp
M Source/WebKit/WebProcess/WebProcess.cpp
M Source/WebKit/WebProcess/glib/WebProcessGLib.cpp
M Tools/TestWebKitAPI/Tests/WTF/Threading.cpp
Log Message:
-----------
Cherry-pick 319617@main (9a18171a13fb).
https://bugs.webkit.org/show_bug.cgi?id=319535
[Linux] Remove RT threads
https://bugs.webkit.org/show_bug.cgi?id=319535
Reviewed by Carlos Garcia Campos.
(reland due to macOS regression; now there is no behaviour change on darwin)
Patch 1 of 2, the second removes sched_yield.
RT threads showed a 10% win on MotionMark clamped to two cores. This
goes away if you turn off DVFS, so I believe the biggest mechanism
behind this is the increased effective clock speed.
We can recover that by setting the min clamp for DVFS directly. Most WPE
workloads probably won't be using DVFS (that is, they will be set to
performance), but this seems like the right call to me for desktop anyway.
Finally, in this 2-core case, we use nice to lower the priority of the
jit workers, and this gives us a small but noticable bump on SP3.
We use RTKit still to raise the priority of the former RT threads, which
gives a further small boost.
Canonical link: https://commits.webkit.org/318709@main
* Source/JavaScriptCore/jit/JITWorklistThread.cpp:
(JSC::JITWorklistThread::JITWorklistThread):
* Source/JavaScriptCore/wasm/WasmWorklist.cpp:
* Source/WTF/wtf/AutomaticThread.cpp:
(WTF::AutomaticThread::AutomaticThread):
(WTF::AutomaticThread::start):
* Source/WTF/wtf/AutomaticThread.h:
* Source/WTF/wtf/PlatformGTK.cmake:
* Source/WTF/wtf/PlatformJSCOnly.cmake:
* Source/WTF/wtf/PlatformWPE.cmake:
* Source/WTF/wtf/Threading.cpp:
(WTF::Thread::entryPoint):
(WTF::Thread::create):
(WTF::Thread::setCurrentThreadIsUserInteractive):
(WTF::Thread::setCurrentThreadIsUserInitiated):
(WTF::Thread::setCurrentThreadQOS):
(WTF::Thread::currentThreadQOS):
(WTF::Thread::currentThreadIsRealtime):
* Source/WTF/wtf/Threading.h:
* Source/WTF/wtf/ThreadingEnums.h:
(WTF::compilerThreadQOS):
* Source/WTF/wtf/linux/HighPriorityThreads.cpp: Added.
(WTF::HighPriorityThreads::singleton):
(WTF::HighPriorityThreads::HighPriorityThreads):
(WTF::HighPriorityThreads::registerThread):
(WTF::HighPriorityThreads::setEnabled):
(WTF::HighPriorityThreads::applyState):
(WTF::realTimeKitGetProperty):
(WTF::HighPriorityThreads::realTimeKitMakeThreadHighPriority):
(WTF::HighPriorityThreads::scheduleDiscardRealTimeKitProxy):
(WTF::HighPriorityThreads::discardRealTimeKitProxyTimerFired):
* Source/WTF/wtf/linux/HighPriorityThreads.h: Renamed from
Source/WTF/wtf/linux/RealTimeThreads.h.
* Source/WTF/wtf/linux/RealTimeThreads.cpp: Removed.
* Source/WTF/wtf/posix/ThreadingPOSIX.cpp:
(WTF::schedulingAttributesForQOS):
(WTF::logSchedulingAttributesFailure):
(WTF::Thread::establishHandle):
(WTF::Thread::updateSchedulingAttributes const):
(WTF::Thread::initializeSchedulingAttributes):
(WTF::Thread::initializeCurrentTLS):
* Source/WTF/wtf/win/ThreadingWin.cpp:
(WTF::Thread::updateSchedulingAttributes const):
(WTF::Thread::initializeSchedulingAttributes):
(WTF::Thread::initializeCurrentTLS):
* Source/WebCore/platform/audio/RealtimeAudioThread.cpp:
(WebCore::shouldCreateRealtimeThread):
(WebCore::createMaybeRealtimeAudioThread):
(): Deleted.
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::createWebPage):
(WebKit::WebProcess::removeWebPage):
(WebKit::WebProcess::pageActivityStateDidChange):
* Source/WebKit/WebProcess/glib/WebProcessGLib.cpp:
(WebKit::WebProcess::platformInitializeProcess):
* Tools/TestWebKitAPI/Tests/WTF/Threading.cpp:
(TestWebKitAPI::TEST(WTF_Thread, SchedulingAttributesFollowQOS)):
(TestWebKitAPI::TEST(WTF_Thread,
HighPriorityThreadsRestoresClampWhenReenabled)):
Canonical link: https://commits.webkit.org/319617@main
Canonical link: https://commits.webkit.org/317695.341@webkitglib/2.54
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications