[webkit-changes] [WebKit/WebKit] a45b3b: WebContent process stays in the isUnderMemoryPress...
bnham
noreply at github.com
Thu Feb 22 13:13:34 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a45b3b20b1061b5faa7d063b15cfe93e24e7ee79
https://github.com/WebKit/WebKit/commit/a45b3b20b1061b5faa7d063b15cfe93e24e7ee79
Author: Ben Nham <nham at apple.com>
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 at 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
More information about the webkit-changes
mailing list