Changeset 244233 in webkit
- Timestamp:
- Apr 12, 2019, 4:26:43 PM (7 years ago)
- Location:
- trunk/Source
- Files:
-
- 1 added
- 10 edited
-
JavaScriptCore/ChangeLog (modified) (1 diff)
-
JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (modified) (2 diffs)
-
JavaScriptCore/Sources.txt (modified) (1 diff)
-
JavaScriptCore/assembler/CPU.cpp (added)
-
JavaScriptCore/assembler/CPU.h (modified) (2 diffs)
-
JavaScriptCore/heap/MachineStackMarker.h (modified) (1 diff)
-
JavaScriptCore/runtime/JSLock.cpp (modified) (1 diff)
-
JavaScriptCore/runtime/Options.cpp (modified) (2 diffs)
-
JavaScriptCore/wasm/WasmWorklist.cpp (modified) (2 diffs)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/WebProcess/com.apple.WebProcess.sb.in (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r244222 r244233 1 2019-04-12 Saam barati <sbarati@apple.com> 2 3 Sometimes we need to user fewer CPUs in our threading calculations 4 https://bugs.webkit.org/show_bug.cgi?id=196794 5 <rdar://problem/49389497> 6 7 Reviewed by Yusuke Suzuki. 8 9 * JavaScriptCore.xcodeproj/project.pbxproj: 10 * Sources.txt: 11 * assembler/CPU.cpp: Added. 12 (JSC::isKernTCSMAvailable): 13 (JSC::enableKernTCSM): 14 (JSC::kernTCSMAwareNumberOfProcessorCores): 15 * assembler/CPU.h: 16 (JSC::isKernTCSMAvailable): 17 (JSC::enableKernTCSM): 18 (JSC::kernTCSMAwareNumberOfProcessorCores): 19 * heap/MachineStackMarker.h: 20 (JSC::MachineThreads::addCurrentThread): 21 * runtime/JSLock.cpp: 22 (JSC::JSLock::didAcquireLock): 23 * runtime/Options.cpp: 24 (JSC::computeNumberOfWorkerThreads): 25 (JSC::computePriorityDeltaOfWorkerThreads): 26 * wasm/WasmWorklist.cpp: 27 (JSC::Wasm::Worklist::Worklist): 28 1 29 2019-04-12 Robin Morisset <rmorisset@apple.com> 2 30 -
trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
r244143 r244233 3393 3393 521322431ECBCE8200F65615 /* WebAssemblyFunctionBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyFunctionBase.cpp; path = js/WebAssemblyFunctionBase.cpp; sourceTree = "<group>"; }; 3394 3394 521322441ECBCE8200F65615 /* WebAssemblyFunctionBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebAssemblyFunctionBase.h; path = js/WebAssemblyFunctionBase.h; sourceTree = "<group>"; }; 3395 52335628225EB8E900268BD2 /* CPU.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CPU.cpp; sourceTree = "<group>"; }; 3395 3396 523FD88C225566C3003B3DCC /* WebAssemblyFunctionHeapCellType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WebAssemblyFunctionHeapCellType.h; path = js/WebAssemblyFunctionHeapCellType.h; sourceTree = "<group>"; }; 3396 3397 523FD88D225566C4003B3DCC /* WebAssemblyFunctionHeapCellType.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = WebAssemblyFunctionHeapCellType.cpp; path = js/WebAssemblyFunctionHeapCellType.cpp; sourceTree = "<group>"; }; … … 7799 7800 86E116B00FE75AC800B512BC /* CodeLocation.h */, 7800 7801 0F30D7BF1D95D62F0053089D /* CPU.h */, 7802 52335628225EB8E900268BD2 /* CPU.cpp */, 7801 7803 0F37308E1C0CD68500052BFA /* DisallowMacroScratchRegisterUsage.h */, 7802 7804 0FF4275615914A20004CB9FF /* LinkBuffer.cpp */, -
trunk/Source/JavaScriptCore/Sources.txt
r244143 r244233 44 44 45 45 assembler/AbstractMacroAssembler.cpp 46 assembler/CPU.cpp 46 47 assembler/LinkBuffer.cpp 47 48 assembler/MacroAssembler.cpp -
trunk/Source/JavaScriptCore/assembler/CPU.h
r237173 r244233 27 27 28 28 #include "Options.h" 29 #include <wtf/NumberOfCores.h> 29 30 30 31 namespace JSC { … … 132 133 } 133 134 135 #if (CPU(X86) || CPU(X86_64)) && OS(DARWIN) 136 bool isKernTCSMAvailable(); 137 bool enableKernTCSM(); 138 int kernTCSMAwareNumberOfProcessorCores(); 139 #else 140 ALWAYS_INLINE bool isKernTCSMAvailable() { return false; } 141 ALWAYS_INLINE bool enableKernTCSM() { return false; } 142 ALWAYS_INLINE int kernTCSMAwareNumberOfProcessorCores() { return WTF::numberOfProcessorCores(); } 143 #endif 144 134 145 } // namespace JSC 135 146 -
trunk/Source/JavaScriptCore/heap/MachineStackMarker.h
r231158 r244233 49 49 50 50 // Only needs to be called by clients that can use the same heap from multiple threads. 51 void addCurrentThread() { m_threadGroup->addCurrentThread(); }51 bool addCurrentThread() { return m_threadGroup->addCurrentThread() == ThreadGroupAddResult::NewlyAdded; } 52 52 53 53 WordLock& getLock() { return m_threadGroup->getLock(); } -
trunk/Source/JavaScriptCore/runtime/JSLock.cpp
r243312 r244233 149 149 m_vm->setStackPointerAtVMEntry(p); 150 150 151 m_vm->heap.machineThreads().addCurrentThread(); 151 if (m_vm->heap.machineThreads().addCurrentThread()) { 152 if (isKernTCSMAvailable()) 153 enableKernTCSM(); 154 } 155 152 156 #if ENABLE(WEBASSEMBLY) 153 157 if (Wasm::isSupported()) -
trunk/Source/JavaScriptCore/runtime/Options.cpp
r243857 r244233 206 206 static unsigned computeNumberOfWorkerThreads(int maxNumberOfWorkerThreads, int minimum = 1) 207 207 { 208 int cpusToUse = std::min( WTF::numberOfProcessorCores(), maxNumberOfWorkerThreads);208 int cpusToUse = std::min(kernTCSMAwareNumberOfProcessorCores(), maxNumberOfWorkerThreads); 209 209 210 210 // Be paranoid, it is the OS we're dealing with, after all. … … 215 215 static int32_t computePriorityDeltaOfWorkerThreads(int32_t twoCorePriorityDelta, int32_t multiCorePriorityDelta) 216 216 { 217 if ( WTF::numberOfProcessorCores() <= 2)217 if (kernTCSMAwareNumberOfProcessorCores() <= 2) 218 218 return twoCorePriorityDelta; 219 219 -
trunk/Source/JavaScriptCore/wasm/WasmWorklist.cpp
r241610 r244233 29 29 #if ENABLE(WEBASSEMBLY) 30 30 31 #include "CPU.h" 31 32 #include "WasmPlan.h" 32 33 #include <wtf/NumberOfCores.h>34 33 35 34 namespace JSC { namespace Wasm { … … 208 207 , m_planEnqueued(AutomaticThreadCondition::create()) 209 208 { 210 unsigned numberOfCompilationThreads = Options::useConcurrentJIT() ? WTF::numberOfProcessorCores() : 1;209 unsigned numberOfCompilationThreads = Options::useConcurrentJIT() ? kernTCSMAwareNumberOfProcessorCores() : 1; 211 210 m_threads.reserveCapacity(numberOfCompilationThreads); 212 211 LockHolder locker(*m_lock); -
trunk/Source/WebKit/ChangeLog
r244230 r244233 1 2019-04-12 Saam barati <sbarati@apple.com> 2 3 Sometimes we need to user fewer CPUs in our threading calculations 4 https://bugs.webkit.org/show_bug.cgi?id=196794 5 <rdar://problem/49389497> 6 7 Reviewed by Yusuke Suzuki. 8 9 * WebProcess/com.apple.WebProcess.sb.in: 10 1 11 2019-04-12 Devin Rousso <drousso@apple.com> 2 12 -
trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in
r243916 r244233 173 173 "machdep.cpu.brand_string" 174 174 "security.mac.sandbox.sentinel" 175 "kern.tcsm_enable" 176 "kern.tcsm_available" 175 177 "vm.footprint_suspend") 176 178 (sysctl-name-regex #"^hw.(active|avail)cpu") … … 182 184 (sysctl-name-regex #"^net.routetable") 183 185 ) 186 187 (allow sysctl-write 188 (sysctl-name 189 "kern.tcsm_enable")) 184 190 185 191 (deny iokit-get-properties)
Note:
See TracChangeset
for help on using the changeset viewer.