Changeset 72671 in vbox
- Timestamp:
- Jun 23, 2018 12:37:29 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/NEMR3Native-win.cpp
r72669 r72671 2901 2901 * @subsection sec_nem_win_benchmarks Benchmarks. 2902 2902 * 2903 * @subsubsection subsect_nem_win_benchmarks 2903 * @subsubsection subsect_nem_win_benchmarks_bs2t1 Bootsector2-test1 2904 2904 * 2905 2905 * This is ValidationKit/bootsectors/bootsector2-test1.asm as of 2018-06-22 … … 3009 3009 * OSes like Linux cache the CR4 value specifically to avoid these kinds of exits. 3010 3010 * 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.