Hello Adrian,
* Adrian-Ken Rueegsegger <ken@...309...> [2015-07-09 15:59:11 +0200]:
The first set of numbers for the top 10 threads were collected when pressing a key in the guest VM bootloader. So they basically cover the base-hw/Virtualbox init and start:
pd_label | label | spent | % of total ---------------------+--------------+------------+----------- init -> virtualbox | EMT | 5283917631 | 39.8206% init -> virtualbox | virtualbox | 4629194169 | 34.8865% init -> rtc_drv | rtc_ep | 1439510978 | 10.8484% init -> rtc_drv | rtc_drv | 698105922 | 5.2611% init -> fb_drv | vesa_ep | 221176830 | 1.6668% init | init | 150973892 | 1.1378% init -> timer | timer_drv_ep | 142735932 | 1.0757% init -> ps2_drv | ps2_drv_ep | 132941808 | 1.0019% init -> ps2_drv | ps2_drv | 125508496 | 0.9459% init -> platform_drv | platform_drv | 107468792 | 0.8099%
The second set was collected once the Linux system has booted to the command prompt:
pd_label | label | spent | % of total -------------------+-------------------+-------------+----------- init -> virtualbox | EMT | 97132063560 | 89.9964% init -> virtualbox | virtualbox | 4631019033 | 4.2908% init -> timer | timer_drv_ep | 2135808255 | 1.9789% init -> rtc_drv | rtc_ep | 1439510978 | 1.3338% init -> rtc_drv | rtc_drv | 698105922 | 0.6468% init -> virtualbox | Timer | 313374324 | 0.2904% init -> fb_drv | vesa_ep | 238903418 | 0.2214% init -> virtualbox | alarm-timer | 207690920 | 0.1924% init -> timer | timeout_scheduler | 199926872 | 0.1852% core | pager_activation | 155622972 | 0.1442%
Since the stats are absolute it would be best to reset them to zero before collecting them a second time. In this case the rtc_drv should not be in the top range anymore because it should not be used by vbox while it is running but only once when it starts.
I do not know the implementation details of rtc_drv but I did not expect it to make the top 10.
I did not expect this either. Although it is indeed somewhat expensive (i.e. it should be avoided to read it several times a second), I cannot imagine why it takes about 10% of the total time when starting vbox. It basically reads the time from the cmos which merely involves an IPC to core to read the I/O port. It would be good to know if the number of calls of the rtc_drv differ between base-hw and base-nova.
Regards Josef