From 25252ae71e60ebe73b491bbbadcb04678ccc66cb Mon Sep 17 00:00:00 2001 From: Marco Castelluccio Date: Thu, 25 Jan 2024 19:32:32 +0000 Subject: [PATCH] Backed out 3 changesets (bug 1867190) for bustages on PHC.cpp . CLOSED TREE Backed out changeset ce5606473bf9 (bug 1867190) Backed out changeset 3766cf32a308 (bug 1867190) Backed out changeset 16ce5caa9557 (bug 1867190) UltraBlame original commit: 6497cc2893d106073139365b5ebb6738adc3bbc9 --- memory/build/PHC.cpp | 387 +++++------------- memory/build/PHC.h | 12 - modules/libpref/init/StaticPrefList.yaml | 57 --- .../components/nimbus/FeatureManifest.yaml | 82 ---- xpcom/base/PHCManager.cpp | 136 ------ 5 files changed, 101 insertions(+), 573 deletions(-) diff --git a/memory/build/PHC.cpp b/memory/build/PHC.cpp index 4371f3666df4..a8ca1a6f854f 100644 --- a/memory/build/PHC.cpp +++ b/memory/build/PHC.cpp @@ -876,21 +876,51 @@ Time ) ) ; +static +const +Delay +kAvgFirstAllocDelay += +64 +* +1024 +; +static +const +Delay +kAvgAllocDelay += +16 +* +1024 +; +static +const +Delay +kAvgPageReuseDelay += +256 +* +1024 +; +template +< +Delay +AvgDelay +> constexpr Delay Rnd64ToDelay ( -Delay -aAvgDelay uint64_t aRnd ) { -MOZ_ASSERT +static_assert ( IsPowerOfTwo ( -aAvgDelay +AvgDelay ) " must @@ -903,59 +933,17 @@ two ) ; return -( aRnd -& -( -uint64_t +% ( -aAvgDelay -) +AvgDelay * 2 -- -1 -) ) + 1 ; } -constexpr -Delay -CheckProbability -( -int64_t -aProb -) -{ -return -RoundUpPow2 -( -std -: -: -min -( -std -: -: -max -( -aProb -int64_t -( -2 -) -) -int64_t -( -0x80000000 -) -) -) -; -} class PtrKind { @@ -1237,10 +1225,6 @@ static bool AllocDelayHasWrapped ( -Delay -aAvgAllocDelay -Delay -aAvgFirstAllocDelay ) { return @@ -1253,8 +1237,8 @@ std : max ( -aAvgAllocDelay -aAvgFirstAllocDelay +kAvgAllocDelay +kAvgFirstAllocDelay ) ; } @@ -2956,98 +2940,11 @@ PHCState aState ) { -if -( -mPhcState -! -= -PHCState -: -: -Enabled -& -& -aState -= -= -PHCState -: -: -Enabled -) -{ -MutexAutoLock -lock -( -GMut -: -: -sMutex -) -; -GAtomic -: -: -Init -( -Rnd64ToDelay -( -mAvgFirstAllocDelay -Random64 -( -lock -) -) -) -; -} mPhcState = aState ; } -void -SetProbabilities -( -int64_t -aAvgDelayFirst -int64_t -aAvgDelayNormal -int64_t -aAvgDelayPageReuse -) -{ -MutexAutoLock -lock -( -GMut -: -: -sMutex -) -; -mAvgFirstAllocDelay -= -CheckProbability -( -aAvgDelayFirst -) -; -mAvgAllocDelay -= -CheckProbability -( -aAvgDelayNormal -) -; -mAvgPageReuseDelay -= -CheckProbability -( -aAvgDelayPageReuse -) -; -} private : template @@ -3376,65 +3273,6 @@ Relaxed DEFAULT_STATE ) ; -Delay -mAvgFirstAllocDelay -= -64 -* -1024 -; -Delay -mAvgAllocDelay -= -16 -* -1024 -; -Delay -mAvgPageReuseDelay -= -256 -* -1024 -; -public -: -Delay -GetAvgAllocDelay -( -const -MutexAutoLock -& -) -{ -return -mAvgAllocDelay -; -} -Delay -GetAvgFirstAllocDelay -( -const -MutexAutoLock -& -) -{ -return -mAvgFirstAllocDelay -; -} -Delay -GetAvgPageReuseDelay -( -const -MutexAutoLock -& -) -{ -return -mAvgPageReuseDelay -; -} } ; Mutex @@ -3614,6 +3452,20 @@ get ) ) ; +uint64_t +rand +; +if +( +GAtomic +: +: +AllocDelayHasWrapped +( +) +) +{ +{ MutexAutoLock lock ( @@ -3623,55 +3475,28 @@ GMut sMutex ) ; -Delay -avg_delay -= -gMut -- -> -GetAvgAllocDelay -( -lock -) -; -Delay -avg_first_delay +rand = gMut - > -GetAvgFirstAllocDelay +Random64 ( lock ) ; -if -( -GAtomic -: -: -AllocDelayHasWrapped -( -avg_delay -avg_first_delay -) -) -{ +} GAtomic : : SetAllocDelay ( Rnd64ToDelay -( -avg_delay -gMut -- +< +kAvgAllocDelay > -Random64 ( -lock -) +rand ) ) ; @@ -3824,6 +3649,42 @@ GMut ( ) ; +{ +MutexAutoLock +lock +( +GMut +: +: +sMutex +) +; +Delay +firstAllocDelay += +Rnd64ToDelay +< +kAvgFirstAllocDelay +> +( +gMut +- +> +Random64 +( +lock +) +) +; +GAtomic +: +: +Init +( +firstAllocDelay +) +; +} # ifndef XP_WIN @@ -4027,14 +3888,10 @@ Delay newAllocDelay = Rnd64ToDelay -( -gMut -- +< +kAvgAllocDelay > -GetAvgAllocDelay ( -lock -) gMut - > @@ -4780,29 +4637,20 @@ GMutLock aLock ) { -Delay -avg_reuse_delay -= -gMut -- -> -GetAvgPageReuseDelay -( -aLock -) -; return ( -avg_reuse_delay +kAvgPageReuseDelay / 2 ) + Rnd64ToDelay -( -avg_reuse_delay +< +kAvgPageReuseDelay / 2 +> +( gMut - > @@ -7074,37 +6922,4 @@ aState ) ; } -void -SetPHCProbabilities -( -int64_t -aAvgDelayFirst -int64_t -aAvgDelayNormal -int64_t -aAvgDelayPageReuse -) -{ -if -( -! -maybe_init -( -) -) -{ -return -; -} -gMut -- -> -SetProbabilities -( -aAvgDelayFirst -aAvgDelayNormal -aAvgDelayPageReuse -) -; -} } diff --git a/memory/build/PHC.h b/memory/build/PHC.h index ea9e4185a339..1ee88760ce29 100644 --- a/memory/build/PHC.h +++ b/memory/build/PHC.h @@ -217,18 +217,6 @@ PHCState aState ) ; -MOZ_JEMALLOC_API -void -SetPHCProbabilities -( -int64_t -aAvgDelayFirst -int64_t -aAvgDelayNormal -int64_t -aAvgDelayPageReuse -) -; struct MemoryUsage { diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml index e50b69625232..75fba8fa6445 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml @@ -66759,63 +66759,6 @@ value mirror : always -- -name -: -memory -. -phc -. -avg_delay -. -first -type -: -uint32_t -value -: -65536 -mirror -: -always -- -name -: -memory -. -phc -. -avg_delay -. -normal -type -: -uint32_t -value -: -16384 -mirror -: -always -- -name -: -memory -. -phc -. -avg_delay -. -page_reuse -type -: -uint32_t -value -: -262144 -mirror -: -always # - - diff --git a/toolkit/components/nimbus/FeatureManifest.yaml b/toolkit/components/nimbus/FeatureManifest.yaml index 4c58f175fd9d..1c86db2b5e8b 100644 --- a/toolkit/components/nimbus/FeatureManifest.yaml +++ b/toolkit/components/nimbus/FeatureManifest.yaml @@ -14349,88 +14349,6 @@ memory phc . min_ram_mb -phcAvgDelayFirst -: -description -: -The -delay -before -the -first -PHC -allocation -type -: -int -setPref -: -branch -: -user -pref -: -memory -. -phc -. -avg_delay -. -first -phcAvgDelayNormal -: -description -: -The -delay -between -PHC -allocations -type -: -int -setPref -: -branch -: -user -pref -: -memory -. -phc -. -avg_delay -. -normal -phcAvgDelayPageReuse -: -description -: -The -delay -before -reusing -a -PHC -page -type -: -int -setPref -: -branch -: -user -pref -: -memory -. -phc -. -avg_delay -. -page_reuse mailto : description diff --git a/xpcom/base/PHCManager.cpp b/xpcom/base/PHCManager.cpp index 7045de0e7e9a..6afdc016e9cf 100644 --- a/xpcom/base/PHCManager.cpp +++ b/xpcom/base/PHCManager.cpp @@ -93,57 +93,6 @@ min_ram_mb " ; static -const -char -kPHCAvgDelayFirst -[ -] -= -" -memory -. -phc -. -avg_delay -. -first -" -; -static -const -char -kPHCAvgDelayNormal -[ -] -= -" -memory -. -phc -. -avg_delay -. -normal -" -; -static -const -char -kPHCAvgDelayPageRuse -[ -] -= -" -memory -. -phc -. -avg_delay -. -page_reuse -" -; -static bool sWasPHCEnabled = @@ -192,28 +141,6 @@ mem_size min_mem_size ) { -SetPHCProbabilities -( -StaticPrefs -: -: -memory_phc_avg_delay_first -( -) -StaticPrefs -: -: -memory_phc_avg_delay_normal -( -) -StaticPrefs -: -: -memory_phc_avg_delay_page_reuse -( -) -) -; SetPHCState ( Enabled @@ -270,42 +197,6 @@ aPrefName kPHCMinRamMBPref ) ) -| -| -( -0 -= -= -strcmp -( -aPrefName -kPHCAvgDelayFirst -) -) -| -| -( -0 -= -= -strcmp -( -aPrefName -kPHCAvgDelayNormal -) -) -| -| -( -0 -= -= -strcmp -( -aPrefName -kPHCAvgDelayPageRuse -) -) ) ; UpdatePHCState @@ -336,33 +227,6 @@ PrefChangeCallback kPHCMinRamMBPref ) ; -Preferences -: -: -RegisterCallback -( -PrefChangeCallback -kPHCAvgDelayFirst -) -; -Preferences -: -: -RegisterCallback -( -PrefChangeCallback -kPHCAvgDelayNormal -) -; -Preferences -: -: -RegisterCallback -( -PrefChangeCallback -kPHCAvgDelayPageRuse -) -; UpdatePHCState ( )