
VMWare's engineering team has stated that this message is harmless.
The kernel code that prints this message prints a warning that a page flip in
the GPU hardware has not completed before the timeout period. In the
case of VMWare the GPU is virtualized.
/* Currently no support for overwriting flips, hence
* stall for previous one to execute completely. */
ret = wait_for_completion_timeout(&commit->flip_done,
messages (displayport code) (int)
Page flipping is a synchronization mechanism that replaces the frame buffer being scanned
out by the CRTC with a new frame buffer during vertical blanking, avoiding tearing (except
when requested otherwise through the DRM_MODE_PAGE_FLIP_ASYNC flag). When an application
requests a page flip the DRM core verifies that the new frame buffer is large enough to be
scanned out by the CRTC in the currently configured mode and then calls this hook with a
pointer to the new frame buffer.
The driver must wait for any pending rendering to the new framebuffer to complete before
executing the flip. It should also wait for any pending rendering from other drivers if the
underlying buffer is a shared dma-buf.
An application can request to be notified when the page flip has completed. The drm core
will supply a struct drm_event in the event parameter in this case. This can be handled by
the drm_crtc_send_vblank_event() function, which the driver should call on the provided
event upon completion of the flip. Note that if the driver supports vblank signalling and
timestamping the vblank counters and timestamps must agree with the ones returned from page
flip events. With the current vblank helper infrastructure this can be achieved by holding
a vblank reference while the page flip is pending, acquired through drm_crtc_vblank_get()
and released with drm_crtc_vblank_put(). Drivers are free to implement their own vblank
counter and timestamp tracking though, e.g. if they have accurate timestamp registers in
hardware.
https://docs.kernel.org/gpu/drm-kms.html?
highlight=page%20flipping%20synchronization%20mechanism
Disclaimer: Links contained herein to external website(s) are provided for
convenience only. Red Hat has not reviewed the links and is not responsible
for the content or its availability. The inclusion of any link to an external
website does not imply endorsement by Red Hat of the website or their
entities, products or services. You agree that Red Hat is not responsible or
liable for any loss or expenses that may result due to your use of (or
reliance on) the external site or content.
This solution is part of Red Hat’s fast-track publication program, providing a
huge library of solutions that Red Hat engineers have created while supporting
our customers. To give you the knowledge you need the instant it becomes
available, these articles may be presented in a raw and unedited form.
根源
评论