Changeset 61795 in vbox
- Timestamp:
- Jun 21, 2016 2:18:04 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 108193
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/APICAll.cpp
r61794 r61795 2091 2091 * 2092 2092 * We'll also manually manage the APIC base MSR here. We want a single-point of commit 2093 * at the end of this function rather than touching it in APICR3Reset. This means we also2093 * at the end of this function rather than updating it in apicR3ResetCpu. This means we also 2094 2094 * need to update the CPUID leaf ourselves. 2095 2095 */ 2096 apicR3Reset Ex(pVCpu, false /* fResetApicBaseMsr */);2096 apicR3ResetCpu(pVCpu, false /* fResetApicBaseMsr */); 2097 2097 uBaseMsr &= ~(MSR_IA32_APICBASE_EN | MSR_IA32_APICBASE_EXTD); 2098 2098 CPUMSetGuestCpuIdPerCpuApicFeature(pVCpu, false /*fVisible*/); … … 2398 2398 case XAPICDELIVERYMODE_EXTINT: 2399 2399 { 2400 Log2(("APIC%u: APICLocalInterrupt: %s ExtINT through LINT%u\n", pVCpu->idCpu,2400 Log2(("APIC%u: apicLocalInterrupt: %s ExtINT through LINT%u\n", pVCpu->idCpu, 2401 2401 u8Level ? "Raising" : "Lowering", u8Pin)); 2402 2402 if (u8Level) … … 2426 2426 { 2427 2427 /* LINT0 behaves as an external interrupt pin. */ 2428 Log2(("APIC%u: APICLocalInterrupt: APIC hardware-disabled, %s INTR\n", pVCpu->idCpu,2428 Log2(("APIC%u: apicLocalInterrupt: APIC hardware-disabled, %s INTR\n", pVCpu->idCpu, 2429 2429 u8Level ? "raising" : "lowering")); 2430 2430 if (u8Level) … … 2436 2436 { 2437 2437 /* LINT1 behaves as NMI. */ 2438 Log2(("APIC%u: APICLocalInterrupt: APIC hardware-disabled, raising NMI\n", pVCpu->idCpu));2438 Log2(("APIC%u: apicLocalInterrupt: APIC hardware-disabled, raising NMI\n", pVCpu->idCpu)); 2439 2439 apicSetInterruptFF(pVCpu, PDMAPICIRQ_NMI); 2440 2440 } … … 2454 2454 NOREF(pu32TagSrc); 2455 2455 2456 LogFlow(("APIC%u: APICGetInterrupt:\n", pVCpu->idCpu));2456 LogFlow(("APIC%u: apicGetInterrupt:\n", pVCpu->idCpu)); 2457 2457 2458 2458 PXAPICPAGE pXApicPage = VMCPU_TO_XAPICPAGE(pVCpu); … … 2475 2475 && XAPIC_TPR_GET_TP(uVector) <= XAPIC_TPR_GET_TP(uTpr)) 2476 2476 { 2477 Log2(("APIC%u: APICGetInterrupt: Interrupt masked. uVector=%#x uTpr=%#x SpuriousVector=%#x\n", pVCpu->idCpu,2477 Log2(("APIC%u: apicGetInterrupt: Interrupt masked. uVector=%#x uTpr=%#x SpuriousVector=%#x\n", pVCpu->idCpu, 2478 2478 uVector, uTpr, pXApicPage->svr.u.u8SpuriousVector)); 2479 2479 *pu8Vector = uVector; … … 2496 2496 apicSignalNextPendingIntr(pVCpu); 2497 2497 2498 Log2(("APIC%u: APICGetInterrupt: Valid Interrupt. uVector=%#x\n", pVCpu->idCpu, uVector));2498 Log2(("APIC%u: apicGetInterrupt: Valid Interrupt. uVector=%#x\n", pVCpu->idCpu, uVector)); 2499 2499 *pu8Vector = uVector; 2500 2500 return VINF_SUCCESS; … … 2503 2503 { 2504 2504 STAM_COUNTER_INC(&pVCpu->apic.s.StatMaskedByPpr); 2505 Log2(("APIC%u: APICGetInterrupt: Interrupt's priority is not higher than the PPR. uVector=%#x PPR=%#x\n",2505 Log2(("APIC%u: apicGetInterrupt: Interrupt's priority is not higher than the PPR. uVector=%#x PPR=%#x\n", 2506 2506 pVCpu->idCpu, uVector, uPpr)); 2507 2507 } 2508 2508 } 2509 2509 else 2510 Log2(("APIC%u: APICGetInterrupt: No pending bits in IRR\n", pVCpu->idCpu));2510 Log2(("APIC%u: apicGetInterrupt: No pending bits in IRR\n", pVCpu->idCpu)); 2511 2511 } 2512 2512 else 2513 Log2(("APIC%u: APICGetInterrupt: APIC %s disabled\n", pVCpu->idCpu, !fApicHwEnabled ? "hardware" : "software"));2513 Log2(("APIC%u: apicGetInterrupt: APIC %s disabled\n", pVCpu->idCpu, !fApicHwEnabled ? "hardware" : "software")); 2514 2514 2515 2515 return VERR_APIC_INTR_NOT_PENDING; … … 2536 2536 *(uint32_t *)pv = uValue; 2537 2537 2538 Log2(("APIC%u: APICReadMmio: offReg=%#RX16 uValue=%#RX32\n", pVCpu->idCpu, offReg, uValue));2538 Log2(("APIC%u: apicReadMmio: offReg=%#RX16 uValue=%#RX32\n", pVCpu->idCpu, offReg, uValue)); 2539 2539 return rc; 2540 2540 } … … 2694 2694 uint64_t const cTicksToNext = (uint64_t)uInitialCount << uTimerShift; 2695 2695 2696 Log2(("APIC%u: APICStartTimer: uInitialCount=%#RX32 uTimerShift=%u cTicksToNext=%RU64\n", pVCpu->idCpu, uInitialCount,2696 Log2(("APIC%u: apicStartTimer: uInitialCount=%#RX32 uTimerShift=%u cTicksToNext=%RU64\n", pVCpu->idCpu, uInitialCount, 2697 2697 uTimerShift, cTicksToNext)); 2698 2698 … … 2721 2721 Assert(TMTimerIsLockOwner(pApicCpu->CTX_SUFF(pTimer))); 2722 2722 2723 Log2(("APIC%u: APICStopTimer\n", pVCpu->idCpu));2723 Log2(("APIC%u: apicStopTimer\n", pVCpu->idCpu)); 2724 2724 2725 2725 PTMTIMER pTimer = pApicCpu->CTX_SUFF(pTimer); -
trunk/src/VBox/VMM/VMMR3/APIC.cpp
r61794 r61795 292 292 * @param fResetApicBaseMsr Whether to reset the APIC base MSR. 293 293 */ 294 VMMR3_INT_DECL(void) apicR3Reset Ex(PVMCPU pVCpu, bool fResetApicBaseMsr)294 VMMR3_INT_DECL(void) apicR3ResetCpu(PVMCPU pVCpu, bool fResetApicBaseMsr) 295 295 { 296 296 VMCPU_ASSERT_EMT_OR_NOT_RUNNING(pVCpu); 297 297 298 LogFlow(("APIC%u: APICR3Reset: fResetApicBaseMsr=%RTbool\n", pVCpu->idCpu, fResetApicBaseMsr));298 LogFlow(("APIC%u: apicR3ResetCpu: fResetApicBaseMsr=%RTbool\n", pVCpu->idCpu, fResetApicBaseMsr)); 299 299 300 300 #ifdef VBOX_STRICT … … 1301 1301 TMTimerStop(pApicCpu->pTimerR3); 1302 1302 1303 apicR3Reset Ex(pVCpuDest, true /* fResetApicBaseMsr */);1303 apicR3ResetCpu(pVCpuDest, true /* fResetApicBaseMsr */); 1304 1304 1305 1305 /* Clear the interrupt pending force flag. */ … … 1505 1505 /* Initialize the virtual-APIC state. */ 1506 1506 RT_BZERO(pApicCpu->pvApicPageR3, pApicCpu->cbApicPage); 1507 apicR3Reset Ex(pVCpu, true /* fResetApicBaseMsr */);1507 apicR3ResetCpu(pVCpu, true /* fResetApicBaseMsr */); 1508 1508 1509 1509 #ifdef DEBUG_ramshankar … … 1667 1667 1668 1668 /* 1669 * We always require R0 functionality (e.g. APICGetTpr() called by HMR0 VT-x/AMD-V code).1669 * We always require R0 functionality (e.g. apicGetTpr() called by HMR0 VT-x/AMD-V code). 1670 1670 * Hence, 'fRZEnabled' strictly only applies to MMIO and MSR read/write handlers returning 1671 * to ring-3. We still need other handlers like APICGetTpr() in ring-0 for now.1671 * to ring-3. We still need other handlers like apicGetTpr() in ring-0 for now. 1672 1672 */ 1673 1673 { … … 1837 1837 APIC_REG_COUNTER(&pApicCpu->StatTprRead, "Number of TPR reads.", "/Devices/APIC/%u/TprRead"); 1838 1838 APIC_REG_COUNTER(&pApicCpu->StatEoiWrite, "Number of EOI writes.", "/Devices/APIC/%u/EoiWrite"); 1839 APIC_REG_COUNTER(&pApicCpu->StatMaskedByTpr, "Number of times TPR masks an interrupt in APICGetInterrupt.",1839 APIC_REG_COUNTER(&pApicCpu->StatMaskedByTpr, "Number of times TPR masks an interrupt in apicGetInterrupt.", 1840 1840 "/Devices/APIC/%u/MaskedByTpr"); 1841 APIC_REG_COUNTER(&pApicCpu->StatMaskedByPpr, "Number of times PPR masks an interrupt in APICGetInterrupt.",1841 APIC_REG_COUNTER(&pApicCpu->StatMaskedByPpr, "Number of times PPR masks an interrupt in apicGetInterrupt.", 1842 1842 "/Devices/APIC/%u/MaskedByPpr"); 1843 1843 APIC_REG_COUNTER(&pApicCpu->StatTimerIcrWrite, "Number of times the timer ICR is written.", -
trunk/src/VBox/VMM/include/APICInternal.h
r61794 r61795 1349 1349 /** Profiling of APICUpdatePendingInterrupts(). */ 1350 1350 STAMPROFILE StatUpdatePendingIntrs; 1351 /** Profiling of APICPostInterrupt(). */1351 /** Profiling of apicPostInterrupt(). */ 1352 1352 STAMPROFILE StatPostIntr; 1353 1353 /** Number of times an interrupt is already pending in 1354 * APICPostInterrupts().*/1354 * apicPostInterrupts().*/ 1355 1355 STAMCOUNTER StatPostIntrAlreadyPending; 1356 1356 /** Number of times the timer callback is invoked. */ … … 1362 1362 /** Number of times the EOI is written. */ 1363 1363 STAMCOUNTER StatEoiWrite; 1364 /** Number of times TPR masks an interrupt in APICGetInterrupt(). */1364 /** Number of times TPR masks an interrupt in apicGetInterrupt(). */ 1365 1365 STAMCOUNTER StatMaskedByTpr; 1366 /** Number of times PPR masks an interrupt in APICGetInterrupt(). */1366 /** Number of times PPR masks an interrupt in apicGetInterrupt(). */ 1367 1367 STAMCOUNTER StatMaskedByPpr; 1368 1368 /** Number of times the timer ICR is written. */ … … 1439 1439 1440 1440 #ifdef IN_RING3 1441 VMMR3_INT_DECL(void) apicR3Reset Ex(PVMCPU pVCpu, bool fResetApicBaseMsr);1441 VMMR3_INT_DECL(void) apicR3ResetCpu(PVMCPU pVCpu, bool fResetApicBaseMsr); 1442 1442 #endif 1443 1443
Note:
See TracChangeset
for help on using the changeset viewer.