gecko-dev/xpcom/threads
Gabriele Svelto 67a43f4a6a Bug 1451005 - Forward all memory-pressure events to the child processes; r=njn
When memory-pressure events were first used in an e10s environment it was
to implement memory minimization from about:memory. However when low memory
detection was first introduced in Firefox OS an issue arised with this scheme:
every process was using a kernel-based low-latency mechanism to detect low
memory scenarios and send memory-pressure events; but the main process events
were also being forwarded to all child processes causing listeners to be
triggered twice. Because of this -no-forward events were introduced and used.
Currently however low-memory is detected via polling, so there will always be
a significant delay between the beginning of the low-memory scenario and its
detection. Because of this there is no value in having content processes poll
on their own and it's best to have only the main process do it and then
forward the memory-pressure events to all child processes.

MozReview-Commit-ID: AMQOsEgECme

--HG--
extra : rebase_source : 1b408b31dd27940981407f50f2e5f07e354b16d7
2018-05-12 01:21:13 +02:00
..
AbstractEventQueue.h Bug 1434856 - move runnable prioritization checks outside of event queue locks; r=erahm 2018-02-02 13:55:05 -05:00
AbstractThread.cpp Bug 1447744 - don't implement nsINamed for mozilla::Runnable when it's unused; r=erahm 2018-03-23 14:53:55 -04:00
AbstractThread.h Bug 1416724 - part 1 - AbstractThread::Dispatch should propage errors if failing the dispatching of Runnables, r=jwwang 2017-11-15 07:58:02 +01:00
BlockingResourceBase.cpp Bug 1437167 - Part 1: Stop using PRIntervalTime as the argument to CondVar::Wait and Monitor::Wait, r=mstange, r=froydnj 2018-04-10 17:49:47 -04:00
BlockingResourceBase.h Bug 1423773 - Part 1: Remove usage of nsStringGlue.h. r=glandium 2017-12-06 16:52:51 -08:00
CondVar.h Bug 1437167 - Part 1: Stop using PRIntervalTime as the argument to CondVar::Wait and Monitor::Wait, r=mstange, r=froydnj 2018-04-10 17:49:47 -04:00
CooperativeThreadPool.cpp Bug 1412191 - Fix CooperativeThreadPool thread count assertion (r=froydnj) 2017-11-11 21:04:20 -08:00
CooperativeThreadPool.h
CPUUsageWatcher.cpp
CPUUsageWatcher.h Backed out 4 changesets (bug 525063) on request from Andi. a=backout 2018-04-13 16:01:28 +03:00
DeadlockDetector.h Bug 1445302 - Replace TArray.RemoveElementAt(TArray.Length() - 1) pattern with TArray.RemoveLastElement() or TArray.PopLastElement() r=froydnj 2018-03-13 14:51:33 +01:00
EventQueue.cpp Bug 1410096 - Move labeled queues to SchedulerGroup. r=smaug 2017-12-15 21:17:31 +01:00
EventQueue.h Bug 1436263 - Part 1: Replace final override virtual function specifiers with just final. r=froydnj 2018-02-05 22:46:57 -08:00
HangAnnotations.cpp
HangAnnotations.h
HangMonitor.cpp Bug 1437167 - Part 1: Stop using PRIntervalTime as the argument to CondVar::Wait and Monitor::Wait, r=mstange, r=froydnj 2018-04-10 17:49:47 -04:00
HangMonitor.h
IdleTaskRunner.cpp Bug 1404198: Part 2b - Switch to NS_NewTimer* in xpcom. r=njn 2017-10-15 23:11:22 -07:00
IdleTaskRunner.h
InputEventStatistics.cpp Bug 1402044 - don't inline InputEventStatistics::Get(); r=erahm 2017-10-23 12:15:16 -04:00
InputEventStatistics.h Bug 1402044 - don't inline InputEventStatistics::Get(); r=erahm 2017-10-23 12:15:16 -04:00
LabeledEventQueue.cpp Bug 1397426 - Rename TabChild's notion of "active tabs" to "visible tabs" and move logic into renderLayers. r=billm 2017-11-03 11:27:29 -04:00
LabeledEventQueue.h Bug 1436263 - Part 1: Replace final override virtual function specifiers with just final. r=froydnj 2018-02-05 22:46:57 -08:00
LazyIdleThread.cpp Bug 1404198: Part 2b - Switch to NS_NewTimer* in xpcom. r=njn 2017-10-15 23:11:22 -07:00
LazyIdleThread.h
LeakRefPtr.h
MainThreadIdlePeriod.cpp Bug 1414150 - Remove the "idle_queue.*" prefs. r=farre. 2017-11-08 07:54:16 +11:00
MainThreadIdlePeriod.h Bug 1414150 - Remove the "idle_queue.*" prefs. r=farre. 2017-11-08 07:54:16 +11:00
MainThreadQueue.h Bug 1410096 - Move labeled queues to SchedulerGroup. r=smaug 2017-12-15 21:17:31 +01:00
MainThreadUtils.h Bug 1435174 - Remove the renaming 'using namespace workers', r=bkelly 2018-02-05 19:55:07 +01:00
Monitor.h Bug 1437167 - Part 1: Stop using PRIntervalTime as the argument to CondVar::Wait and Monitor::Wait, r=mstange, r=froydnj 2018-04-10 17:49:47 -04:00
moz.build Bug 1437438 - Add a performance counter to track scheduler activity - r=farre,froydnj 2018-03-06 10:19:19 +01:00
MozPromise.h Backed out 4 changesets (bug 525063) on request from Andi. a=backout 2018-04-13 16:01:28 +03:00
Mutex.h
nsEnvironment.cpp
nsEnvironment.h
nsICancelableRunnable.h
nsIEnvironment.idl
nsIEventTarget.idl
nsIIdlePeriod.idl
nsIIdleRunnable.h
nsILabelableRunnable.cpp Bug 1410232 - fix SchedulerGroupSet::Put when transitioning to multiple groups; r=billm 2017-10-23 08:49:41 -04:00
nsILabelableRunnable.h
nsINamed.idl
nsIProcess.idl
nsIRunnable.idl
nsISerialEventTarget.idl
nsISupportsPriority.idl
nsIThread.idl
nsIThreadInternal.idl
nsIThreadManager.idl Bug 1443932 - part 1 - add nsIThreadManager::kThreadPoolStackSize; r=erahm 2018-03-07 20:33:17 -05:00
nsIThreadPool.idl
nsITimer.idl Bug 1404198: Part 2a - Add non-virtual constructors for nsITimer. r=njn 2017-10-15 23:10:17 -07:00
nsMemoryPressure.cpp Bug 1335148 - Part 2: Introduce notification for end of memory pressure. r=gsvelto,snorp 2018-03-30 13:26:24 +02:00
nsMemoryPressure.h Bug 1335148 - Part 2: Introduce notification for end of memory pressure. r=gsvelto,snorp 2018-03-30 13:26:24 +02:00
nsProcess.h Bug 1406971 - Change nsProcess to use LaunchApp from IPC, instead of NSPR, on Unix. r=froydnj 2017-10-06 19:58:33 -06:00
nsProcessCommon.cpp Bug 1406971 - Change nsProcess to use LaunchApp from IPC, instead of NSPR, on Unix. r=froydnj 2017-10-06 19:58:33 -06:00
nsProxyRelease.cpp
nsProxyRelease.h Bug 1447744 - don't implement nsINamed for mozilla::Runnable when it's unused; r=erahm 2018-03-23 14:53:55 -04:00
nsThread.cpp Bug 1451005 - Forward all memory-pressure events to the child processes; r=njn 2018-05-12 01:21:13 +02:00
nsThread.h Bug 1452580 - remove RELEASE_OR_BETA defines for PerformanceCounter usage - r=baku,erahm,farre 2018-04-24 22:03:06 +02:00
nsThreadManager.cpp Bug 1435174 - Remove the renaming 'using namespace workers', r=bkelly 2018-02-05 19:55:07 +01:00
nsThreadManager.h Bug 1431755 - Part 1: Add a variant of NS_GetCurrentThread that does not auto-create an nsIThread. r=froydnj 2018-01-19 09:41:22 -06:00
nsThreadPool.cpp Bug 1437167 - Part 1: Stop using PRIntervalTime as the argument to CondVar::Wait and Monitor::Wait, r=mstange, r=froydnj 2018-04-10 17:49:47 -04:00
nsThreadPool.h
nsThreadSyncDispatch.h
nsThreadUtils.cpp Bug 1447744 - don't implement nsINamed for mozilla::Runnable when it's unused; r=erahm 2018-03-23 14:53:55 -04:00
nsThreadUtils.h Bug 1434710 - Replaced all instances of mozilla::IndexSequence, mozilla::MakeIndexSequence and mozilla::IndexSequenceFor with std::index_sequence, std::make_index_sequence and std::index_sequence_for and removed mfbt/IndexSequence.h. r=botond 2018-04-09 21:12:13 +10:00
nsTimerImpl.cpp Backed out 4 changesets (bug 525063) on request from Andi. a=backout 2018-04-13 16:01:28 +03:00
nsTimerImpl.h
PerformanceCounter.cpp Bug 1437438 - Add a performance counter to track scheduler activity - r=farre,froydnj 2018-03-06 10:19:19 +01:00
PerformanceCounter.h Bug 1437438 - Add a performance counter to track scheduler activity - r=farre,froydnj 2018-03-06 10:19:19 +01:00
PrioritizedEventQueue.cpp Bug 1454052 - make MakeScopeExit a MOZ_MUST_USE function; r=gerald 2018-04-18 12:14:18 -04:00
PrioritizedEventQueue.h Bug 1436263 - Part 1: Replace final override virtual function specifiers with just final. r=froydnj 2018-02-05 22:46:57 -08:00
Queue.h Backed out 4 changesets (bug 525063) on request from Andi. a=backout 2018-04-13 16:01:28 +03:00
RecursiveMutex.cpp
RecursiveMutex.h Bug 1412119 - Re-fix mode lines in xpcom. r=erahm 2017-10-26 14:39:00 -04:00
ReentrantMonitor.h
RWLock.cpp
RWLock.h
Scheduler.cpp Bug 1457281 - Remove dom.ipc.scheduler pref. r=froydnj 2018-04-26 14:21:25 -07:00
Scheduler.h Bug 1457281 - Remove dom.ipc.scheduler pref. r=froydnj 2018-04-26 14:21:25 -07:00
SchedulerGroup.cpp Bug 1448544 - remove AutoVsyncTelemetry; r=farre 2018-04-07 11:54:03 -04:00
SchedulerGroup.h Bug 1447744 - don't implement nsINamed for mozilla::Runnable when it's unused; r=erahm 2018-03-23 14:53:55 -04:00
SharedThreadPool.cpp Bug 1351655 - Log which SharedThreadPools are not yet destroyed on shutdown-threads. r=froydnj 2018-01-23 11:40:37 +01:00
SharedThreadPool.h Bug 1443932 - part 1 - add nsIThreadManager::kThreadPoolStackSize; r=erahm 2018-03-07 20:33:17 -05:00
StateMirroring.h Bug 1416724 - part 1 - AbstractThread::Dispatch should propage errors if failing the dispatching of Runnables, r=jwwang 2017-11-15 07:58:02 +01:00
StateWatching.h
SynchronizedEventQueue.cpp
SynchronizedEventQueue.h
SyncRunnable.h
SystemGroup.cpp Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj 2017-11-05 19:37:28 -08:00
SystemGroup.h
TaskCategory.h Bug 1447768 - part 2 - Dispatch counters in the parent process - r=baku 2018-04-04 13:36:25 +02:00
TaskDispatcher.h Bug 1416724 - part 1 - AbstractThread::Dispatch should propage errors if failing the dispatching of Runnables, r=jwwang 2017-11-15 07:58:02 +01:00
TaskQueue.cpp Bug 1416724 - part 1 - AbstractThread::Dispatch should propage errors if failing the dispatching of Runnables, r=jwwang 2017-11-15 07:58:02 +01:00
TaskQueue.h Bug 1416724 - part 1 - AbstractThread::Dispatch should propage errors if failing the dispatching of Runnables, r=jwwang 2017-11-15 07:58:02 +01:00
ThreadEventQueue.cpp Backed out 4 changesets (bug 525063) on request from Andi. a=backout 2018-04-13 16:01:28 +03:00
ThreadEventQueue.h Bug 1436263 - Part 1: Replace final override virtual function specifiers with just final. r=froydnj 2018-02-05 22:46:57 -08:00
ThreadEventTarget.cpp Bug 1410023 - Non-unified build fixes for xpcom/threads. r=froydnj 2017-10-20 17:36:29 +01:00
ThreadEventTarget.h
ThrottledEventQueue.cpp Bug 1452410 - Simplify ThrottledEventQueue's shutdown behavior. r=froydnj 2018-04-06 14:44:42 -07:00
ThrottledEventQueue.h Bug 1452410 - Simplify ThrottledEventQueue's shutdown behavior. r=froydnj 2018-04-06 14:44:42 -07:00
TimerThread.cpp Bug 1437167 - Part 1: Stop using PRIntervalTime as the argument to CondVar::Wait and Monitor::Wait, r=mstange, r=froydnj 2018-04-10 17:49:47 -04:00
TimerThread.h