VirtualBox

Changeset 53470 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Dec 6, 2014 3:55:37 AM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
97200
Message:

timesupA.asm: Disabled SUPTscDeltaApply macro invocation, see review comments in code.

Location:
trunk/src/VBox/Runtime/common/time
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/time/timesupA.asm

    r44528 r53470  
    9595%include "timesupA.mac"
    9696
     97%undef ASYNC_GIP
     98%define INVARIANT_GIP
     99%ifdef IN_RC
     100 %undef NEED_TRANSACTION_ID
     101%endif
     102%define rtTimeNanoTSInternalAsm    RTTimeNanoTSLegacyInvariant
     103;%include "timesupA.mac"
     104;; @todo r=bird: later.
     105
    97106;
    98107; Alternative implementation that employs lfence instead of cpuid.
    99108;
    100 %undef  ASYNC_GIP
     109%undef  INVARIANT_GIP
    101110%define USE_LFENCE
    102111%define NEED_TRANSACTION_ID
     
    112121%include "timesupA.mac"
    113122
     123%undef  ASYNC_GIP
     124%define INVARIANT_GIP
     125%define NEED_TRANSACTION_ID
     126%define rtTimeNanoTSInternalAsm    RTTimeNanoTSLFenceInvariant
     127;%include "timesupA.mac"
     128;; @todo r=bird: later.
     129
    114130
    115131%endif ; !IN_GUEST
  • trunk/src/VBox/Runtime/common/time/timesupA.mac

    r53430 r53470  
    126126    mov     u32UpdateIntervalTSC, edx
    127127    rdtsc
    128     SupTscDeltaApply edi        ; Apply inter-cpu TSC-delta to have the normalized TSC value in edx:eax
     128;; @todo r-bird: Deltas are only valid in INVARIANT mode according to SUPDrv.c macro.
     129;; edi is pointing to aCpu[0] in INVARIANT and SYNC.  Code does more harm than good atm => disabled.
     130;; (Just drop the SUPTscDeltaApply macro btw.)  Sketched what is needed for invariant in timesupA.asm, more work .cpp files in IPRT and VMM.
     131;    SUPTscDeltaApply edi        ; Apply inter-cpu TSC-delta to have the normalized TSC value in edx:eax
    129132    mov     ecx, [edi + SUPGIPCPU.u64NanoTS]
    130133    mov     u64CurNanoTS, ecx
     
    545548    mov     u32UpdateIntervalTSC, [pGipCPU + SUPGIPCPU.u32UpdateIntervalTSC]
    546549    rdtsc
    547     SUPTscDeltaApply pGipCPU
     550;; @todo r-bird: Deltas are only valid in INVARIANT mode according to SUPDrv.c macro.
     551;; pGipCPU is pointing to aCpu[0] in INVARIANT and SYNC.  Code is 32-bit, i.e. inefficient. Code does more harm than good atm => disabled.
     552;; (Just drop the SUPTscDeltaApply macro btw.)  Sketched what is needed for invariant in timesupA.asm, more work .cpp files in IPRT and VMM.
     553;    SUPTscDeltaApply pGipCPU
    548554    mov     u64PrevNanoTS,        [pData + RTTIMENANOTSDATA.pu64Prev]
    549555    mov     u64PrevNanoTS,        [u64PrevNanoTS]
Note: See TracChangeset for help on using the changeset viewer.

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