gecko-dev/xpcom/threads
Imanol Fernandez cee36f038b Bug 1636456 - Implement WebXR idle deadline detection r=kip,daoshengmu,smaug,rbarker
Gecko Idle detection relies heavily on RefreshDriver. GC/CC scheduling, including when to run GC or CC slices, and the length of the slices, is mostly based on idle time. As WebXR isn't using normal RefreshDriver, the content process thinks it's idle and GC and CC get basically up to 50 ms slices.

Not having WebXR idle detection is causing stutter frames during immersive presentation. This patch implements idle deadline hint and sets the correct GC slices budgets during WebXR presentation.

Differential Revision: https://phabricator.services.mozilla.com/D74426
2020-05-13 22:10:27 +00:00
..
AbstractEventQueue.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
AbstractThread.cpp Bug 1631304 - Use thread observers for the tail dispatcher. r=jya 2020-04-28 21:18:24 +00:00
AbstractThread.h Bug 1592488 - P3. Update AbstractThread comment to reflect current mode of operation. r=mattwoodrow 2020-05-12 10:42:52 +00:00
BlockingResourceBase.cpp Bug 1609907 - Add AUTO_PROFILER_THREAD_SLEEP around wait_for in DEBUG OffTheBooksCondVar::Wait - r=mstange 2020-05-01 22:12:56 +00:00
BlockingResourceBase.h
CPUUsageWatcher.cpp
CPUUsageWatcher.h
CondVar.h Bug 1613985 - Use MOZ_COUNTED_DEFAULT_CTOR_*/MOZ_COUNTED_DTOR_* macros. r=froydnj 2020-02-20 11:40:14 +00:00
DataMutex.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
DeadlockDetector.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
EventQueue.cpp Bug 1627391 - Add missing includes and namespaces to xpcom/threads. r=xpcom-reviewers,sg 2020-04-07 22:10:29 +00:00
EventQueue.h Bug 1597158 part 3. Expose whether there are any idle runnables on PrioritizedEventQueue. r=smaug 2019-11-22 14:06:29 +00:00
IdlePeriodState.cpp Bug 1627741: Expect an idle token only if we're actually using cross-process idle scheduling. r=smaug 2020-04-06 17:25:06 +00:00
IdlePeriodState.h Bug 1627741: Expect an idle token only if we're actually using cross-process idle scheduling. r=smaug 2020-04-06 17:25:06 +00:00
IdleTaskRunner.cpp Bug 1620594 - Part 3: Use default target for timers using SystemGroup. r=nika 2020-04-07 15:16:46 +00:00
IdleTaskRunner.h Bug 1620594 - Part 3: Use default target for timers using SystemGroup. r=nika 2020-04-07 15:16:46 +00:00
InputEventStatistics.cpp
InputEventStatistics.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
LazyIdleThread.cpp Bug 1600545 - Remove useless inclusions of header files generated from IDL files in modules/, netwerk/, parser/, security/, startupcache/, storage/, toolkit/, tools/, uriloader/, widget/, xpcom/ and xpfe/ r=Ehsan 2019-12-06 09:17:57 +00:00
LazyIdleThread.h
LeakRefPtr.h
MainThreadIdlePeriod.cpp Bug 1636456 - Implement WebXR idle deadline detection r=kip,daoshengmu,smaug,rbarker 2020-05-13 22:10:27 +00:00
MainThreadIdlePeriod.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
MainThreadQueue.h Bug 1597157. Remove unused mNextIdleDeadline bits. r=smaug 2019-11-18 17:05:30 +00:00
MainThreadUtils.h
Monitor.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
MozPromise.h Bug 1592488 - P1. Add MozPromise::Private::UseSynchronousTaskDispatch. r=bholley 2020-05-12 10:53:48 +00:00
MozPromiseInlines.h Bug 1625138 - Part 37: Replace mozilla::IsSame with std::is_same in xpcom/. r=froydnj 2020-03-28 13:57:21 +00:00
Mutex.h Bug 1619165 - Reformat recent changes to the Google coding style r=andi 2020-04-25 09:40:08 +00:00
PerformanceCounter.cpp Bug 1627391 - Add missing includes and namespaces to xpcom/threads. r=xpcom-reviewers,sg 2020-04-07 22:10:29 +00:00
PerformanceCounter.h Bug 1627391 - Add missing includes and namespaces to xpcom/threads. r=xpcom-reviewers,sg 2020-04-07 22:10:29 +00:00
PrioritizedEventQueue.cpp Bug 1627935 - PrioritizedEventQueue::GetEvent doesn't return the correct priority value, r=bas 2020-04-13 22:22:57 +00:00
PrioritizedEventQueue.h Bug 1625138 - Part 41: Remove no longer needed includes for mozilla/TypeTraits. r=froydnj 2020-03-28 16:00:09 +00:00
Queue.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
RWLock.cpp
RWLock.h Bug 1615072 - don't trigger the deadlock detector from static initializers for RWLock; r=mccr8 2020-02-14 21:44:05 +00:00
RecursiveMutex.cpp
RecursiveMutex.h
ReentrantMonitor.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
SchedulerGroup.cpp Bug 1620594 - Part 7: Remove TabGroup and SystemGroup. r=nika,bas 2020-04-07 15:17:47 +00:00
SchedulerGroup.h Bug 1619165 - Reformat recent changes to the Google coding style r=andi 2020-04-25 09:40:08 +00:00
SharedThreadPool.cpp Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
SharedThreadPool.h Bug 1600545 - Remove useless inclusions of header files generated from IDL files in modules/, netwerk/, parser/, security/, startupcache/, storage/, toolkit/, tools/, uriloader/, widget/, xpcom/ and xpfe/ r=Ehsan 2019-12-06 09:17:57 +00:00
StateMirroring.h
StateWatching.h Bug 1631304 - Mark the tail dispatcher as unavailable outside of event dispatch. r=jya 2020-04-28 21:18:21 +00:00
SyncRunnable.h Bug 1563335 - Part 1: Implement mechanism to throttle JS execution. r=smaug,asuth 2020-03-26 00:36:24 +00:00
SynchronizedEventQueue.cpp
SynchronizedEventQueue.h Bug 1627391 - Add missing includes and namespaces to xpcom/threads. r=xpcom-reviewers,sg 2020-04-07 22:10:29 +00:00
TaskCategory.h
TaskDispatcher.h Bug 1631304 - Don't lazily create a TailDispatcher from MaybeDrainDirectTasks. r=jya 2020-04-28 21:18:15 +00:00
TaskQueue.cpp Bug 1634950 - Add event dispatch-and-run MOZ_LOG to our xpcom threads, r=froydnj 2020-05-12 12:48:49 +00:00
TaskQueue.h Bug 1624776 - Replace MOZ_MUST_USE with [[nodiscard]] in xpcom. r=xpcom-reviewers,KrisWright 2020-03-27 17:21:48 +00:00
ThreadBound.h
ThreadDelay.cpp
ThreadDelay.h
ThreadEventQueue.cpp Bug 1609907 - Remove AUTO_PROFILER_THREAD_SLEEP before mozilla::CondVar waits - r=mstange 2020-05-01 22:12:22 +00:00
ThreadEventQueue.h Bug 1572337: Monitor running event delays and start times r=froydnj 2019-11-08 21:07:36 +00:00
ThreadEventTarget.cpp Bug 1634950 - Add event dispatch-and-run MOZ_LOG to our xpcom threads, r=froydnj 2020-05-12 12:48:49 +00:00
ThreadEventTarget.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
ThreadLocalVariables.cpp Bug 1627391 - Add missing includes and namespaces to xpcom/threads. r=xpcom-reviewers,sg 2020-04-07 22:10:29 +00:00
ThrottledEventQueue.cpp Bug 1634950 - Add event dispatch-and-run MOZ_LOG to our xpcom threads, r=froydnj 2020-05-12 12:48:49 +00:00
ThrottledEventQueue.h Bug 1624776 - Replace MOZ_MUST_USE with [[nodiscard]] in xpcom. r=xpcom-reviewers,KrisWright 2020-03-27 17:21:48 +00:00
TimerThread.cpp Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
TimerThread.h
components.conf
moz.build Bug 1620594 - Part 7: Remove TabGroup and SystemGroup. r=nika,bas 2020-04-07 15:17:47 +00:00
nsEnvironment.cpp Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
nsEnvironment.h
nsICancelableRunnable.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
nsIEnvironment.idl
nsIEventTarget.idl Bug 1602646 - Remove vestigial references to cooperative scheduling r=froydnj 2019-12-12 00:56:53 +00:00
nsIIdlePeriod.idl
nsIIdleRunnable.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
nsINamed.idl
nsIProcess.idl
nsIRunnable.idl Bug 1606672. Change nsIRunnablePriority values so increasing value indicates increased priority. r=smaug 2020-01-02 20:07:40 +00:00
nsISerialEventTarget.idl
nsISupportsPriority.idl
nsIThread.idl Bug 1572337: Make GetRunningEventDelay handle threadpools r=froydnj 2019-11-08 21:07:45 +00:00
nsIThreadInternal.idl
nsIThreadManager.idl Bug 1620594 - Part 3: Use default target for timers using SystemGroup. r=nika 2020-04-07 15:16:46 +00:00
nsIThreadPool.idl Bug 1604549 - remove scriptability and classinfo from nsThreadPool; r=bzbarsky 2019-12-17 17:12:14 +00:00
nsITimer.idl Bug 1635709: part 2) Add unit to `nsITimer`'s `init` methods. r=froydnj 2020-05-06 15:23:22 +00:00
nsMemoryPressure.cpp
nsMemoryPressure.h
nsProcess.h Bug 1600545 - Remove useless inclusions of header files generated from IDL files in modules/, netwerk/, parser/, security/, startupcache/, storage/, toolkit/, tools/, uriloader/, widget/, xpcom/ and xpfe/ r=Ehsan 2019-12-06 09:17:57 +00:00
nsProcessCommon.cpp Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
nsProxyRelease.cpp
nsProxyRelease.h Bug 1620594 - Part 7: Remove TabGroup and SystemGroup. r=nika,bas 2020-04-07 15:17:47 +00:00
nsThread.cpp Bug 1634950 - Add event dispatch-and-run MOZ_LOG to our xpcom threads, r=froydnj 2020-05-12 12:48:49 +00:00
nsThread.h Bug 1634253 - P1. Fix constness. r=froydnj 2020-05-08 20:20:35 +00:00
nsThreadManager.cpp Bug 1620594 - Part 3: Use default target for timers using SystemGroup. r=nika 2020-04-07 15:16:46 +00:00
nsThreadManager.h Bug 1631304 - Drill a fast path to accessing the main thread. r=erahm 2020-04-28 21:18:10 +00:00
nsThreadPool.cpp Bug 1634950 - Add event dispatch-and-run MOZ_LOG to our xpcom threads, r=froydnj 2020-05-12 12:48:49 +00:00
nsThreadPool.h Bug 1572337: Make GetRunningEventDelay handle threadpools r=froydnj 2019-11-08 21:07:45 +00:00
nsThreadSyncDispatch.h
nsThreadUtils.cpp Bug 1592488 - P13. Add TailDispatchingTarget class. r=bholley 2020-05-12 10:45:23 +00:00
nsThreadUtils.h Bug 1592488 - P13. Add TailDispatchingTarget class. r=bholley 2020-05-12 10:45:23 +00:00
nsTimerImpl.cpp Bug 1635709: part 2) Add unit to `nsITimer`'s `init` methods. r=froydnj 2020-05-06 15:23:22 +00:00
nsTimerImpl.h