exit timing analysis - optimizations v1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I know these are a lot of numbers :-/
Thererfore I summarize the result a bit.

Improvements rework the interrupt delivery path, some kvm_stat exit accouting and the usage of findfirstbit. These optimizations save ~1µs on nearly every exit (look at new avg and min values).
That leads to an overall speed improvement of 11%pv/19%nopv.

Thats not yet the big snarl I'd like to find but a good first step.


Values of the optimized kvm code:
NOPV:
count 20 csum 13722482 sum 117424658 avg 5871232.900 => ~1:57 runtime
MMIO count 10000 min 45 max 1550 sum 2933679 avg 293.3679 stddev 294.569 % 2.50 DCR count 5141 min 40 max 130 sum 230901 avg 44.9136 stddev 6.603 % 0.20 SIGNAL count 659 min 63 max 620 sum 52477 avg 79.6313 stddev 53.867 % 0.04 ITLBREAL count 72059 min 11 max 65 sum 873286 avg 12.1190 stddev 2.286 % 0.74 ITLBVIRT count 848813 min 20 max 645 sum 19494094 avg 22.9663 stddev 3.645 % 16.60 DTLBREAL count 83901 min 12 max 81 sum 1051450 avg 12.5320 stddev 2.247 % 0.90 DTLBVIRT count 840848 min 20 max 551 sum 19486145 avg 23.1744 stddev 4.038 % 16.59 SYSCALL count 7616 min 10 max 59 sum 77276 avg 10.1465 stddev 1.576 % 0.07 ISI count 9837 min 10 max 56 sum 99511 avg 10.1160 stddev 2.252 % 0.08 DSI count 18611 min 10 max 58 sum 187475 avg 10.0733 stddev 1.793 % 0.16 EMULINST count 4953567 min 10 max 3708 sum 63937759 avg 12.9074 stddev 37.267 % 54.45 DEC count 9902 min 52 max 1349 sum 565012 avg 57.0604 stddev 23.644 % 0.48 EXTINT count 27 min 35 max 573 sum 6181 avg 228.9259 stddev 187.173 % 0.01 FP_UNAVAIL count 260 min 10 max 10 sum 2600 avg 10.0000 stddev 0.000 % 0.00 TIMEINGUEST count 6861241 min 0 max 3703 sum 8426812 avg 1.2282 stddev 9.534 % 7.18

PV:
count 20 csum 8348740 sum 82362754 avg 4118137.700 => ~1:22 runtime
MMIO count 10508 min 45 max 5078 sum 2921817 avg 278.0564 stddev 272.303 % 3.55 DCR count 5147 min 40 max 792 sum 256065 avg 49.7503 stddev 37.294 % 0.31 SIGNAL count 652 min 63 max 2347 sum 242326 avg 371.6656 stddev 271.899 % 0.29 ITLBREAL count 70628 min 12 max 134 sum 857714 avg 12.1441 stddev 2.425 % 1.04 ITLBVIRT count 716360 min 20 max 1232 sum 16617104 avg 23.1966 stddev 7.661 % 20.18 DTLBREAL count 80688 min 12 max 122 sum 1057913 avg 13.1112 stddev 2.268 % 1.28 DTLBPV count 28786 min 19 max 506 sum 602458 avg 20.9289 stddev 5.840 % 0.73 DTLBVIRT count 741001 min 20 max 893 sum 17304816 avg 23.3533 stddev 6.933 % 21.01 SYSCALL count 7613 min 10 max 57 sum 84461 avg 11.0943 stddev 2.138 % 0.10 HCALL count 1 min 18 max 18 sum 18 avg 18.0000 stddev 0.000 % 0.00 ISI count 9837 min 10 max 56 sum 99223 avg 10.0867 stddev 1.885 % 0.12 DSI count 17434 min 10 max 60 sum 175595 avg 10.0720 stddev 1.608 % 0.21 EMULINST count 2477375 min 10 max 3869 sum 36067189 avg 14.5586 stddev 54.974 % 43.79 DEC count 6284 min 52 max 1080 sum 363704 avg 57.8778 stddev 24.201 % 0.44 EXTINT count 1811 min 33 max 1756 sum 268117 avg 148.0491 stddev 126.669 % 0.33 FP_UNAVAIL count 245 min 10 max 53 sum 2493 avg 10.1755 stddev 2.742 % 0.00 TIMEINGUEST count 4174370 min 0 max 3854 sum 5441741 avg 1.3036 stddev 13.208 % 6.61

---
Old non-optimized cases for comparison:
NOPV:
MMIO count 10105 min 46 max 1534 sum 2952467 avg 292.1788 stddev 295.933 % 2.04 DCR count 5428 min 40 max 209 sum 246168 avg 45.3515 stddev 6.758 % 0.17 SIGNAL count 695 min 65 max 3755 sum 89767 avg 129.1612 stddev 314.421 % 0.06 ITLBREAL count 80045 min 13 max 108 sum 1063127 avg 13.2816 stddev 2.338 % 0.73 ITLBVIRT count 1000585 min 21 max 264827 sum 24300596 avg 24.2864 stddev 264.753 % 16.78 DTLBREAL count 91206 min 13 max 69 sum 1285214 avg 14.0913 stddev 2.225 % 0.89 DTLBVIRT count 977434 min 21 max 1446 sum 24007008 avg 24.5613 stddev 4.426 % 16.58 SYSCALL count 10460 min 11 max 55 sum 116447 avg 11.1326 stddev 1.929 % 0.08 ISI count 11724 min 11 max 61 sum 130007 avg 11.0890 stddev 1.929 % 0.09 DSI count 20737 min 11 max 57 sum 230009 avg 11.0917 stddev 1.914 % 0.16 EMULINST count 5683356 min 11 max 3778 sum 79339467 avg 13.9600 stddev 50.275 % 54.78 DEC count 13079 min 50 max 826 sum 732712 avg 56.0220 stddev 22.382 % 0.51 EXTINT count 55 min 30 max 1478 sum 10996 avg 199.9273 stddev 238.150 % 0.01 FP_UNAVAIL count 280 min 11 max 53 sum 3163 avg 11.2964 stddev 3.495 % 0.00 TIMEINGUEST count 7905189 min 0 max 3688 sum 10330742 avg 1.3068 stddev 8.970 % 7.13 csum 15810378 sumsum 144837890 => ~2:24 runtime sumavg 7241894

PV:
MMIO count 12505 min 46 max 3087 sum 3693782 avg 295.3844 stddev 260.788 % 4.01 DCR count 5595 min 40 max 706 sum 273578 avg 48.8969 stddev 31.305 % 0.30 SIGNAL count 654 min 65 max 4132 sum 300027 avg 458.7569 stddev 571.130 % 0.33 ITLBREAL count 71711 min 13 max 104 sum 943053 avg 13.1507 stddev 2.360 % 1.02 ITLBVIRT count 750649 min 21 max 1503 sum 18178245 avg 24.2167 stddev 7.335 % 19.71 DTLBREAL count 83356 min 13 max 102 sum 1146242 avg 13.7512 stddev 2.406 % 1.24 DTLBPV count 30086 min 20 max 237 sum 653556 avg 21.7229 stddev 4.639 % 0.71 DTLBVIRT count 772811 min 21 max 713 sum 19079477 avg 24.6884 stddev 6.593 % 20.69 SYSCALL count 7647 min 11 max 57 sum 84821 avg 11.0921 stddev 1.897 % 0.09 HCALL count 1 min 19 max 19 sum 19 avg 19.0000 stddev 0.000 % 0.00 ISI count 9895 min 11 max 73 sum 109667 avg 11.0831 stddev 1.904 % 0.12 DSI count 17974 min 10 max 57 sum 199504 avg 11.0996 stddev 2.046 % 0.22 EMULINST count 2567245 min 11 max 4212 sum 40501314 avg 15.7762 stddev 65.673 % 43.92 DEC count 7488 min 51 max 641 sum 426813 avg 56.9996 stddev 23.893 % 0.46 EXTINT count 2215 min 31 max 1677 sum 297495 avg 134.3093 stddev 116.219 % 0.32 FP_UNAVAIL count 258 min 11 max 11 sum 2838 avg 11.0000 stddev 0.000 % 0.00 TIMEINGUEST count 4340090 min 0 max 3850 sum 6316079 avg 1.4553 stddev 12.599 % 6.85 csum 8680180 sumsum 92206510 => ~1:32 runtime sumavg 4610325

--

Grüsse / regards, Christian Ehrhardt
IBM Linux Technology Center, Open Virtualization

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM Development]     [KVM ARM]     [KVM ia64]     [Linux Virtualization]     [Linux USB Devel]     [Linux Video]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux