[Webkit-unassigned] [Bug 253791] `RemoteRenderingBackendProxy` should send all requests asynchronously instead of synchronously

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Mar 13 11:35:15 PDT 2023


https://bugs.webkit.org/show_bug.cgi?id=253791

Kimmo Kinnunen <kkinnunen at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://bugs.webkit.org/sho
                   |                            |w_bug.cgi?id=243838

--- Comment #1 from Kimmo Kinnunen <kkinnunen at apple.com> ---
Thanks for the report and especially of the repro case. I'll take a look in the near future.

> `RemoteRenderingBackendProxy` sends requests to the GPU process. At the time of writing, there are 19 requests, 5 of which are synchronous. If possible, those 5 requests should be made asynchronous to avoid deadlock.

I think in general this is not the intention. Some GPU related operations are synchronous, like GL calls and such. For the time being these are intended to be synchronous, so the solution needs to account for these.

> Deadlock is possible between the Web process and the GPU process if the GPU process sends a synchronous request to the Web process. (I haven’t looked into whether the GPU process makes any such requests to the Web process.)

The design intention is that GPU process doesn't send synchronously to Web process.

> Deadlock is possible between the Web process and the UI process when the connection to the GPU process has not yet been established since the UI process facilitates the connection establishment.

There are couple "rare" cases of plain WEB -> UI, UI -> WEB deadlock scenarios that we have not yet solved.

It's unclear if you're running into these or if it's a different failure scenario. 

> However, the deadlock is still possible if the Web process synchronously makes a request to the GPU process before the UI process has finished facilitating the connection between the Web process and the GPU process.

The intention of the linked bug was to mostly address these. It may well be that it did not catch all cases, I'll check your repro case.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20230313/266aa697/attachment.htm>


More information about the webkit-unassigned mailing list