Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a45b3b20b1061b5faa7d063b15cfe93e24e7ee79
https://github.com/WebKit/WebKit/commit/a45b3b20b1061b5faa7d063b15cfe93e24e7ee79
Author: Ben Nham <[email protected]>
Date: 2024-02-22 (Thu, 22 Feb 2024)
Changed paths:
M Source/WTF/wtf/MemoryPressureHandler.cpp
M Source/WTF/wtf/MemoryPressureHandler.h
M Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm
M Source/WTF/wtf/unix/MemoryPressureHandlerUnix.cpp
M Source/WTF/wtf/win/MemoryPressureHandlerWin.cpp
M Source/WebKit/WebProcess/WebProcess.cpp
Log Message:
-----------
WebContent process stays in the isUnderMemoryPressure state forever after it
breaches the PROC_LIMIT_CRITICAL threshold
https://bugs.webkit.org/show_bug.cgi?id=269859
rdar://118126701
Reviewed by Antti Koivisto.
After 244148@main, a WebContent process that exceeds the PROC_LIMIT_CRITICAL
threshold ends up in
the isUnderMemoryPressure state forever. This is because we were mutating the
memory pressure state
instance variable when handling the process limit notification. Since the OS
only notifies you when
you exceed the proc limit, but not when you go back under the proc limit, that
state variable ended
up staying in the critical state forever. (This bug has occurred before, see
r234646.)
To fix this, stop mutating the memory pressure state when the process limit
notification fires, and
add a separate callback for handling process limit notifications.
* Source/WTF/wtf/MemoryPressureHandler.cpp:
(WTF::MemoryPressureHandler::setMemoryPressureStatus):
(WTF::MemoryPressureHandler::memoryPressureStatusChanged):
(WTF::MemoryPressureHandler::didExceedProcessMemoryLimit):
* Source/WTF/wtf/MemoryPressureHandler.h:
(WTF::MemoryPressureHandler::setMemoryPressureStatusChangedCallback):
(WTF::MemoryPressureHandler::setDidExceedProcessMemoryLimitCallback):
(WTF::MemoryPressureHandler::isUnderMemoryWarning const):
(WTF::MemoryPressureHandler::isUnderMemoryPressure const):
* Source/WTF/wtf/cocoa/MemoryPressureHandlerCocoa.mm:
(WTF::MemoryPressureHandler::install):
* Source/WTF/wtf/unix/MemoryPressureHandlerUnix.cpp:
(WTF::MemoryPressureHandler::triggerMemoryPressureEvent):
* Source/WTF/wtf/win/MemoryPressureHandlerWin.cpp:
(WTF::MemoryPressureHandler::windowsMeasurementTimerFired):
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Canonical link: https://commits.webkit.org/275198@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes