VirtualBox

vbox的更動 49141 路徑 trunk/src/VBox/VMM/testcase


忽略:
時間撮記:
2013-10-16 下午02:07:14 (11 年 以前)
作者:
vboxsync
訊息:

tstVMM: Extended it with a 'msr' mode for dump the MSRs of the host CPU brute-force style.

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/VMM/testcase/tstVMM.cpp

    r46915 r49141  
    5555*   Internal Functions                                                         *
    5656*******************************************************************************/
    57 VMMR3DECL(int) VMMDoTest(PVM pVM); /* Linked into VMM, see ../VMMTests.cpp. */
     57VMMR3DECL(int) VMMDoTest(PVM pVM);    /* Linked into VMM, see ../VMMTests.cpp. */
     58VMMR3DECL(int) VMMDoBruteForceMsrs(PVM pVM); /* Ditto. */
    5859
    5960
     
    210211    enum
    211212    {
    212         kTstVMMTest_VMM,  kTstVMMTest_TM
     213        kTstVMMTest_VMM,  kTstVMMTest_TM, kTstVMMTest_MSRs
    213214    } enmTestOpt = kTstVMMTest_VMM;
    214215
     
    230231                else if (!strcmp("tm", ValueUnion.psz))
    231232                    enmTestOpt = kTstVMMTest_TM;
     233                else if (!strcmp("msr", ValueUnion.psz) || !strcmp("msrs", ValueUnion.psz))
     234                    enmTestOpt = kTstVMMTest_MSRs;
    232235                else
    233236                {
     
    238241
    239242            case 'h':
    240                 RTPrintf("usage: tstVMM [--cpus|-c cpus] [--test <vmm|tm>]\n");
     243                RTPrintf("usage: tstVMM [--cpus|-c cpus] [--test <vmm|tm|msr>]\n");
    241244                return 1;
    242245
     
    274277                if (RT_FAILURE(rc))
    275278                    RTTestFailed(hTest, "VMMDoTest failed: rc=%Rrc\n", rc);
     279                STAMR3Dump(pUVM, "*");
    276280                break;
    277281            }
     
    290294                if (RT_FAILURE(rc))
    291295                    RTTestFailed(hTest, "VMMDoTest failed: rc=%Rrc\n", rc);
    292                 break;
    293             }
    294         }
    295 
    296         STAMR3Dump(pUVM, "*");
     296                STAMR3Dump(pUVM, "*");
     297                break;
     298            }
     299
     300            case kTstVMMTest_MSRs:
     301            {
     302                RTTestSub(hTest, "MSRs");
     303                if (g_cCpus == 1)
     304                {
     305                    rc = VMR3ReqCallWaitU(pUVM, 0 /*idDstCpu*/, (PFNRT)VMMDoBruteForceMsrs, 1, pVM);
     306                    if (RT_FAILURE(rc))
     307                        RTTestFailed(hTest, "VMMDoBruteForceMsrs failed: rc=%Rrc\n", rc);
     308                }
     309                else
     310                    RTTestFailed(hTest, "The MSR test can only be run with one VCpu!\n");
     311                break;
     312            }
     313        }
    297314
    298315        /*
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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