Bug 264036 - [WPE][GTK] MemoryPressureMonitor should depend on GMemoryMonitor
Summary: [WPE][GTK] MemoryPressureMonitor should depend on GMemoryMonitor
Status: RESOLVED DUPLICATE of bug 205806
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: WebKit Nightly Build
Hardware: PC Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-11-01 06:24 PDT by Michael Catanzaro
Modified: 2024-01-31 07:31 PST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Catanzaro 2023-11-01 06:24:33 PDT
Currently we have a handrolled MemoryPressureMonitor used only by the Linux ports WPE and GTK. Both ports already depend on GLib, which has its own GMemoryMonitor. We might as well depend on logic that is already available to us. Benefits:

 * The current code attempts to access /sys/fs/cgroup, but this will almost always fail because bubblewrap sandbox is now mandatory if not running inside flatpak, and this location is not accessible in either or bubblewrap and flatpak sandboxes
 * GMemoryMonitor has various backends including one that uses xdg-desktop-portal, escaping the above limitation
 * It can become smarter in the future without requiring changes in WebKit. E.g. there is a plan to switch from depending on low-memory-monitor to depending on systemd in https://gitlab.gnome.org/GNOME/glib/-/issues/2931
 * It's used by lots of applications rather than WebKit alone, and we don't have to maintain it

The downside is the GMemoryMonitor API currently does nothing if low-memory-monitor is not running. This should be available on all desktops nowadays, but might be missing on embedded devices. Having a fallback to our existing MemoryPressureMonitor wouldn't hurt. But this problem would also go away if GMemoryMonitor were to use systemd instead.
Comment 1 Michael Catanzaro 2024-01-31 07:31:15 PST

*** This bug has been marked as a duplicate of bug 205806 ***