VirtualBox

Changeset 72671 in vbox


Ignore:
Timestamp:
Jun 23, 2018 12:37:29 AM (7 years ago)
Author:
vboxsync
Message:

NEM/win: Added some more benchmark numbers to the doxygen @page. bugref:9044

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/NEMR3Native-win.cpp

    r72669 r72671  
    29012901 * @subsection sec_nem_win_benchmarks           Benchmarks.
    29022902 *
    2903  * @subsubsection subsect_nem_win_benchmarks        Bootsector2-test1
     2903 * @subsubsection subsect_nem_win_benchmarks_bs2t1 Bootsector2-test1
    29042904 *
    29052905 * This is ValidationKit/bootsectors/bootsector2-test1.asm as of 2018-06-22
     
    30093009 * OSes like Linux cache the CR4 value specifically to avoid these kinds of exits.
    30103010 *
    3011  */
    3012 
     3011 *
     3012 * @subsubsection subsect_nem_win_benchmarks_w2k    Windows 2000 Boot & Shutdown
     3013 *
     3014 * Timing the startup and automatic shutdown of a Windows 2000 SP4 guest serves
     3015 * as a real world benchmark and example of why exit performance is import.  When
     3016 * Windows 2000 boots up is doing a lot of VGA redrawing of the boot animation,
     3017 * which is very costly.  Not having installed guest additions leaves it in a VGA
     3018 * mode after the bootup sequence is done, keep up the screen access expenses,
     3019 * though the graphics driver more economical than the bootvid code.
     3020 *
     3021 * The VM was configured to automatically logon.  A startup script was installed
     3022 * to perform the automatic shuting down and powering off the VM (thru
     3023 * vts_shutdown.exe -f -p).  The test time run time is caculated from the
     3024 * monotonic VBox.log timestamps, starting with the state change to 'RUNNING'
     3025 * and stopping at 'POWERING_OFF'.
     3026 *
     3027 * The host OS and VirtualBox build is the same as for the bootsector2-test1
     3028 * scenario.
     3029 *
     3030 * Results:
     3031 *
     3032 *  - WinHv API for all but physical page mappings:
     3033 *         32 min 12.19 seconds
     3034 *
     3035 *  - The default NEM/win configuration where we put the main execution loop
     3036 *    in ring-0, using hypercalls when we can and VID for managing execution:
     3037 *         3 min 23.18 seconds
     3038 *
     3039 *  - Regular VirtualBox using AMD-V directly, hyper-V is disabled, main
     3040 *    execution loop in ring-0:
     3041 *        TODO
     3042 *
     3043 *  - WinHv API with exit history based optimizations:
     3044 *        58.66 seconds
     3045 *
     3046 *  - Hypercall + VID.SYS with exit history base optimizations:
     3047 *        58.94 seconds
     3048 *
     3049 * With a well above average machine needing over half an hour for booting a
     3050 * nearly 20 year old guest kind of says it all.  The 13%-20% exit performance
     3051 * increase we get by using hypercalls and VID.SYS directly pays off a lot here.
     3052 * The 3m23s is almost acceptable in comparison to the half an hour.
     3053 *
     3054 */
     3055
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