Changeset 64255 in vbox for trunk/src/VBox/Runtime/common
- Timestamp:
- Oct 13, 2016 3:18:21 PM (8 years ago)
- Location:
- trunk/src/VBox/Runtime/common/time
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/time/timesup.cpp
r62556 r64255 203 203 : pGip->fGetGipCpu & SUPGIPGETCPU_RDTSCP_MASK_MAX_SET_CPUS 204 204 ? RTTimeNanoTSLFenceAsyncUseRdtscp 205 : pGip->fGetGipCpu & SUPGIPGETCPU_RDTSCP_GROUP_IN_CH_NUMBER_IN_CL 206 ? RTTimeNanoTSLFenceAsyncUseRdtscpGroupChNumCl 205 207 : pGip->fGetGipCpu & SUPGIPGETCPU_APIC_ID 206 208 ? RTTimeNanoTSLFenceAsyncUseApicId … … 239 241 pfnWorker = pGip->fGetGipCpu & SUPGIPGETCPU_RDTSCP_MASK_MAX_SET_CPUS 240 242 ? RTTimeNanoTSLegacyAsyncUseRdtscp 243 : pGip->fGetGipCpu & SUPGIPGETCPU_RDTSCP_GROUP_IN_CH_NUMBER_IN_CL 244 ? RTTimeNanoTSLegacyAsyncUseRdtscpGroupChNumCl 241 245 : pGip->fGetGipCpu & SUPGIPGETCPU_IDTR_LIMIT_MASK_MAX_SET_CPUS 242 246 ? RTTimeNanoTSLegacyAsyncUseIdtrLim -
trunk/src/VBox/Runtime/common/time/timesupref.cpp
r62477 r64255 112 112 RT_EXPORT_SYMBOL(RTTimeNanoTSLegacyAsyncUseIdtrLim); 113 113 114 # undef TMPL_GET_CPU_METHOD 115 # define TMPL_GET_CPU_METHOD SUPGIPGETCPU_RDTSCP_GROUP_IN_CH_NUMBER_IN_CL 116 # undef rtTimeNanoTSInternalRef 117 # define rtTimeNanoTSInternalRef RTTimeNanoTSLegacyAsyncUseRdtscpGroupChNumCl 118 # include "timesupref.h" 119 RT_EXPORT_SYMBOL(RTTimeNanoTSLegacyAsyncUseRdtscpGroupChNumCl); 120 114 121 #else /* IN_RC || IN_RING0: Disable interrupts and call getter function. */ 115 122 … … 196 203 RT_EXPORT_SYMBOL(RTTimeNanoTSLFenceAsyncUseIdtrLim); 197 204 205 # undef TMPL_GET_CPU_METHOD 206 # define TMPL_GET_CPU_METHOD SUPGIPGETCPU_RDTSCP_GROUP_IN_CH_NUMBER_IN_CL 207 # undef rtTimeNanoTSInternalRef 208 # define rtTimeNanoTSInternalRef RTTimeNanoTSLFenceAsyncUseRdtscpGroupChNumCl 209 # include "timesupref.h" 210 RT_EXPORT_SYMBOL(RTTimeNanoTSLFenceAsyncUseRdtscpGroupChNumCl); 211 198 212 #else /* IN_RC || IN_RING0: Disable interrupts and call getter function. */ 199 213 -
trunk/src/VBox/Runtime/common/time/timesupref.h
r62477 r64255 91 91 uint8_t const idApic = ASMGetApicId(); 92 92 uint16_t const iGipCpu = pGip->aiCpuFromApicId[idApic]; 93 # elif TMPL_GET_CPU_METHOD == SUPGIPGETCPU_RDTSCP_MASK_MAX_SET_CPUS 93 # elif TMPL_GET_CPU_METHOD == SUPGIPGETCPU_RDTSCP_MASK_MAX_SET_CPUS \ 94 || TMPL_GET_CPU_METHOD == SUPGIPGETCPU_RDTSCP_GROUP_IN_CH_NUMBER_IN_CL 94 95 # if TMPL_MODE != TMPL_MODE_ASYNC 95 96 uint32_t const u32TransactionId = pGip->aCPUs[0].u32TransactionId; … … 97 98 uint32_t uAux; 98 99 ASMReadTscWithAux(&uAux); 100 # if TMPL_GET_CPU_METHOD == SUPGIPGETCPU_RDTSCP_MASK_MAX_SET_CPUS 99 101 uint16_t const iCpuSet = uAux & (RTCPUSET_MAX_CPUS - 1); 102 # else 103 uint16_t const iCpuSet = pGip->aiFirstCpuSetIdxFromCpuGroup[(uAux >> 8) & UINT8_MAX] + (uAux & UINT8_MAX); 104 # endif 100 105 uint16_t const iGipCpu = pGip->aiCpuFromCpuSetIdx[iCpuSet]; 101 106 # elif TMPL_GET_CPU_METHOD == SUPGIPGETCPU_IDTR_LIMIT_MASK_MAX_SET_CPUS … … 124 129 #elif TMPL_MODE != TMPL_MODE_ASYNC \ 125 130 && TMPL_GET_CPU_METHOD != SUPGIPGETCPU_APIC_ID \ 126 && TMPL_GET_CPU_METHOD != SUPGIPGETCPU_RDTSCP_MASK_MAX_SET_CPUS 131 && TMPL_GET_CPU_METHOD != SUPGIPGETCPU_RDTSCP_MASK_MAX_SET_CPUS \ 132 && TMPL_GET_CPU_METHOD != SUPGIPGETCPU_RDTSCP_GROUP_IN_CH_NUMBER_IN_CL 127 133 uint32_t const u32TransactionId = pGip->aCPUs[0].u32TransactionId; 128 134 ASMCompilerBarrier(); … … 149 155 #endif 150 156 uint64_t u64PrevNanoTS = ASMAtomicUoReadU64(pData->pu64Prev); 151 #if TMPL_GET_CPU_METHOD == SUPGIPGETCPU_RDTSCP_MASK_MAX_SET_CPUS 157 #if TMPL_GET_CPU_METHOD == SUPGIPGETCPU_RDTSCP_MASK_MAX_SET_CPUS \ 158 || TMPL_GET_CPU_METHOD == SUPGIPGETCPU_RDTSCP_GROUP_IN_CH_NUMBER_IN_CL 152 159 ASMCompilerBarrier(); 153 160 uint32_t uAux2; … … 168 175 # if TMPL_GET_CPU_METHOD == SUPGIPGETCPU_APIC_ID 169 176 if (RT_LIKELY(ASMGetApicId() == idApic)) 170 # elif TMPL_GET_CPU_METHOD == SUPGIPGETCPU_RDTSCP_MASK_MAX_SET_CPUS 177 # elif TMPL_GET_CPU_METHOD == SUPGIPGETCPU_RDTSCP_MASK_MAX_SET_CPUS \ 178 || TMPL_GET_CPU_METHOD == SUPGIPGETCPU_RDTSCP_GROUP_IN_CH_NUMBER_IN_CL 171 179 if (RT_LIKELY(uAux2 == uAux)) 172 180 # elif TMPL_GET_CPU_METHOD == SUPGIPGETCPU_IDTR_LIMIT_MASK_MAX_SET_CPUS
Note:
See TracChangeset
for help on using the changeset viewer.