base-hw: Virtualbox thread priorities
Josef Söntgen
josef.soentgen at ...1...
Fri Jul 10 14:08:45 CEST 2015
Hello Adrian,
* Adrian-Ken Rueegsegger <ken at ...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
More information about the users
mailing list