VirtualBox

Ignore:
Timestamp:
Jul 8, 2020 7:14:39 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
139060
Message:

ValKit/bs2-test1: IA32_FLUSH_CMD benchmark (disabled).

Location:
trunk/src/VBox/ValidationKit/bootsectors
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bootsector2-test1-template.mac

    r82968 r85120  
    2727
    2828%include "bootsector2-template-header.mac"
     29
     30;;
     31; Run the CPUID benchmark for this mode.
     32;
     33; @uses nothing
     34;
     35BEGINCODELOW
     36BITS 16
     37BEGINPROC TMPL_NM(BenchmarkFlushCmd_rm)
     38        call    TMPL_NM(Bs2IsModeSupported_rm)
     39        jz      .done
     40        call    TMPL_NM(Bs2EnterMode_rm)
     41BITS TMPL_BITS
     42        push    xBP
     43        mov     xBP, xSP
     44        push    sAX
     45        push    sBX
     46        push    sCX
     47        push    sDX
     48        push    sDI
     49        sub     sSP, 20h
     50
     51        ; Get the current time.
     52        mov     xAX, xSP
     53        call    TMPL_NM_CMN(GetNanoTS)
     54
     55        ; Do the test.
     56        mov     edi, TEST_INSTRUCTION_COUNT_IO / 4
     57%define MSR_IA32_FLUSH_CMD                  0x10b
     58%define MSR_IA32_FLUSH_CMD_F_L1D            RT_BIT_32(0)
     59        mov     ecx, MSR_IA32_FLUSH_CMD
     60        mov     eax, MSR_IA32_FLUSH_CMD_F_L1D
     61        xor     edx, edx
     62.again:
     63        wrmsr
     64        wrmsr
     65        wrmsr
     66        wrmsr
     67        dec     edi
     68        jnz     .again
     69
     70        ; Calc the elapsed time and report the result.
     71        mov     xAX, xSP
     72        call    TMPL_NM_CMN(GetElapsedNanoTS)
     73
     74        mov     xCX, .s_szTestName
     75        mov     edx, TEST_INSTRUCTION_COUNT_IO
     76        mov     xAX, xSP
     77        call    TMPL_NM_CMN(ReportResult)
     78
     79        add     sSP, 20h
     80        pop     sDI
     81        pop     sDX
     82        pop     sCX
     83        pop     sBX
     84        pop     sAX
     85        leave
     86
     87        call    TMPL_NM(Bs2ExitMode)
     88BITS 16
     89.done:
     90        ret
     91
     92.s_szTestName:
     93        db TMPL_MODE_STR, ', FLUSH_CMD', 0
     94ENDPROC TMPL_NM(BenchmarkFlushCmd_rm)
     95
     96TMPL_BEGINCODE
     97BITS TMPL_BITS
     98
    2999
    30100;;
  • trunk/src/VBox/ValidationKit/bootsectors/bootsector2-test1.asm

    r82968 r85120  
    7171        call    Bs2PanicIfVMMDevTestingIsMissing_r86
    7272
     73%if 0
     74        ;
     75        ; IA32_FLUSH_CMD.
     76        ;
     77        mov     ax, .s_szTstFlushCmd
     78        call    TestSub_r86
     79        call    BenchmarkFlushCmd_rm_pp32
     80        call    BenchmarkFlushCmd_rm_pae32
     81        call    BenchmarkFlushCmd_rm_lm64
     82        call    BenchmarkFlushCmd_rm_pe16
     83        call    BenchmarkFlushCmd_rm_pe32
     84        call    BenchmarkFlushCmd_rm_rm
     85%endif
     86
    7387        ;
    7488        ; CPUID.
     
    141155.s_szTstCpuId:
    142156        db      'CPUID EAX=1', 0
     157.s_szTstFlushCmd:
     158        db      'IA32_FLUSH_CMD', 0
    143159.s_szTstRdTsc:
    144160        db      'RDTSC', 0
Note: See TracChangeset for help on using the changeset viewer.

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