VirtualBox

Changeset 51934 in vbox for trunk/src/VBox/VMM/VMMR3/EM.cpp


Ignore:
Timestamp:
Jul 8, 2014 2:35:49 PM (10 years ago)
Author:
vboxsync
Message:

VMM/EM: Reschedule halted VCPUs if NMI/SMI shows up.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/EM.cpp

    r49893 r51934  
    25512551                        rc = VMR3WaitHalted(pVM, pVCpu, false /*fIgnoreInterrupts*/);
    25522552                        if (   rc == VINF_SUCCESS
    2553                             && VMCPU_FF_IS_PENDING(pVCpu, VMCPU_FF_INTERRUPT_APIC | VMCPU_FF_INTERRUPT_PIC))
     2553                            && VMCPU_FF_IS_PENDING(pVCpu, VMCPU_FF_INTERRUPT_APIC | VMCPU_FF_INTERRUPT_PIC
     2554                                                        | VMCPU_FF_INTERRUPT_NMI  | VMCPU_FF_INTERRUPT_SMI))
    25542555                        {
    25552556                            Log(("EMR3ExecuteVM: Triggering reschedule on pending IRQ after MWAIT\n"));
     
    25582559                    }
    25592560                    else
     2561                    {
    25602562                        rc = VMR3WaitHalted(pVM, pVCpu, !(CPUMGetGuestEFlags(pVCpu) & X86_EFL_IF));
     2563                        if (   rc == VINF_SUCCESS
     2564                            && VMCPU_FF_IS_PENDING(pVCpu, VMCPU_FF_INTERRUPT_NMI | VMCPU_FF_INTERRUPT_SMI))
     2565                        {
     2566                            Log(("EMR3ExecuteVM: Triggering reschedule on pending NMI/SMI after HLT\n"));
     2567                            rc = VINF_EM_RESCHEDULE;
     2568                        }
     2569                    }
    25612570
    25622571                    STAM_REL_PROFILE_STOP(&pVCpu->em.s.StatHalted, y);
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