VirtualBox

Changeset 77226 in vbox


Ignore:
Timestamp:
Feb 8, 2019 5:13:26 PM (6 years ago)
Author:
vboxsync
Message:

Devices/DevVGA-SVGA: move an assertion out of the FIFO access handler.
bugref:9376: Complete hardware cursor implementation in VMSVGA.
I put an assertion into the FIFO access handler that it would not trigger more
than once every 500ms. However, disabling it is not reliable, so that can
still happen. Instead, I moved the assertion to the code re-enabling the
handler. That should really not happen more frequently.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA.cpp

    r77207 r77226  
    24022402     * Temporarily disable the access handler now that we've kicked the FIFO thread.
    24032403     */
    2404 #  ifdef VBOX_STRICT /** @todo r=bird: This is _not_ guaranteed at all.  Expect spurious assertions! */
    2405     /* Invariant: The access handler should never trigger twice within a certain
    2406        time span; calling it 500ms here for simplicity. */
    2407     uint64_t TimeNow = RTTimeMilliTS();
    2408     Assert(TimeNow - pThis->svga.pSvgaR3State->TimeLastFIFOIntercept > 500);
    2409     pThis->svga.pSvgaR3State->TimeLastFIFOIntercept = TimeNow;
    2410 #  endif
    24112404
    24122405    STAM_REL_COUNTER_INC(&pThis->svga.pSvgaR3State->StatFifoAccessHandler);
     
    34173410            else
    34183411            {
     3412# ifdef VBOX_STRICT
     3413                /* Invariant: The access handler should never be reset twice within
     3414                   a certain time span; calling it 500ms here for simplicity. */
     3415                uint64_t TimeNow = RTTimeMilliTS();
     3416                Assert(TimeNow - pSVGAState->TimeLastFIFOIntercept > 500);
     3417                pSVGAState->TimeLastFIFOIntercept = TimeNow;
     3418# endif
    34193419                int rc2 = PGMHandlerPhysicalReset(PDMDevHlpGetVM(pDevIns), pThis->svga.GCPhysFIFO);
    34203420                AssertRC(rc2); /* No break. Racing EMTs unmapping and remapping the region. */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette