VirtualBox

Changeset 54414 in vbox


Ignore:
Timestamp:
Feb 24, 2015 3:13:20 AM (10 years ago)
Author:
vboxsync
Message:

mp-r0drv-nt.cpp: Enabled new RTMpOnSpecific code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r0drv/nt/mp-r0drv-nt.cpp

    r54413 r54414  
    621621        && (   RTMpGetOnlineCount() <= 2
    622622            || KeGetCurrentIrql()   > APC_LEVEL) )
     623    {
    623624        rc = rtMpCallUsingBroadcastIpi(pfnWorker, pvUser1, pvUser2, rtmpNtOnSpecificBroadcastIpiWrapper,
    624625                                       idCpu, NIL_RTCPUID, &cHits);
    625     else
    626         rc = rtMpCallUsingDpcs(pfnWorker, pvUser1, pvUser2, RT_NT_CPUID_SPECIFIC, idCpu, NIL_RTCPUID, &cHits);
     626        if (RT_SUCCESS(rc))
     627        {
     628            if (cHits == 1)
     629                return VINF_SUCCESS;
     630            rc = cHits == 0 ? VERR_CPU_OFFLINE : VERR_CPU_IPE_1;
     631        }
     632        return rc;
     633    }
     634
     635#if 0
     636    rc = rtMpCallUsingDpcs(pfnWorker, pvUser1, pvUser2, RT_NT_CPUID_SPECIFIC, idCpu, NIL_RTCPUID, &cHits);
    627637    if (RT_SUCCESS(rc))
    628638    {
     
    633643    return rc;
    634644
    635 #if 0 /** @todo Untested code replacing the rtMpCallUsingDpcs caste. Needs some tuning too, I guess. */
     645#else
    636646    /*
    637647     * Initialize the argument package and the objects within it.
     
    674684
    675685    /* Different CPU, so queue it if the CPU is still online. */
    676     int rc;
    677686    if (RTMpIsCpuOnline(idCpu))
    678687    {
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