amd64: lapic_timer_rearm: don't reset mode, mask, divisor
authorcheloha <cheloha@openbsd.org>
Wed, 8 Mar 2023 18:05:05 +0000 (18:05 +0000)
committercheloha <cheloha@openbsd.org>
Wed, 8 Mar 2023 18:05:05 +0000 (18:05 +0000)
commite712dd1def302d75bb524ad60ea0925aa2409b43
tree05574b097cb16e6703eee54c0491fd8a7ba6b749
parent46c2b0816a460c88166122d69c3984876b0baed9
amd64: lapic_timer_rearm: don't reset mode, mask, divisor

The apic timer mode, mask, and divisor are set during lapic_timer_trigger().
We don't need to reset them when rearming the timer.  On physical hardware
the difference is too small to measure, but skipping two apic writes may be
a bit faster when we're running in a VM.

Bochs also likes to log when the apic divisor is changed:

38569516308i[APIC0 ] set timer divide factor to 1
38569517335i[APIC0 ] set timer divide factor to 1
38569518042i[APIC0 ] set timer divide factor to 1
[...]

With this change, Bochs is a lot less noisy.

Idea from mlarkin@.

ok mlarkin@
sys/arch/amd64/amd64/lapic.c