[webkit-changes] [WebKit/WebKit] 39cca3: Drain suspended process message queues more determ...

bnham noreply at github.com
Mon Jul 8 05:58:23 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 39cca367b0f91ba76f28b795fbd56fa2a113ebe0
      https://github.com/WebKit/WebKit/commit/39cca367b0f91ba76f28b795fbd56fa2a113ebe0
  Author: Ben Nham <nham at apple.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M Source/WebKit/Platform/IPC/Connection.cpp
    M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp
    M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h

  Log Message:
  -----------
  Drain suspended process message queues more deterministically
https://bugs.webkit.org/show_bug.cgi?id=276301
rdar://131274197

Reviewed by Per Arne Vollan.

When we detect that a message queue for a suspended process has filled up, we currently wake it up
for a fixed 3 second duration. This fixed duration might be too short to drain the message queue,
which somewhat defeats the purpose of the logic, or it might be too long to drain the message queue,
giving the process more runtime than we want.

Instead, we now wake up the process for long enough to handle a MainThreadPing, which lets us know
that the process has drained its message queue up to that point. We provide an additional 1 second
of runtime in case the message handlers do any deferred work.

We also want to be able to better debug these types of issues, so I've added some logging which
prints out the most frequent message that is ending up in the stuck message queues.

* Source/WebKit/Platform/IPC/Connection.cpp:
(IPC::Connection::sendMessageImpl):
* Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::AuxiliaryProcessProxy):
(WebKit::AuxiliaryProcessProxy::wakeUpTemporarilyForIPC):
* Source/WebKit/UIProcess/AuxiliaryProcessProxy.h:

Canonical link: https://commits.webkit.org/280728@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