HomeFreeBSD

acpi_cpu: Reduce BUS_MASTER_RLD manipulations

Description

acpi_cpu: Reduce BUS_MASTER_RLD manipulations

Instead of setting and clearing BUS_MASTER_RLD register on every C3
state enter/exit, set it only once if the system supports C3 state
and we are going to "disable" bus master arbitration while in it.

This is what Linux does for the past 14 years, and for even more time
this register is not implemented in a relevant hardware. Same time
since this is only a single bit in a bigger register, ACPI has to
do take a global lock and do read-modify-write for it, that is too
expensive, saved only by C3 not entered frequently, but enough to be
seen in idle system CPU profiles.

MFC after: 1 month

(cherry picked from commit 5bc10feacc9d81e3bba9d28734a85e996682b408)

Details

Provenance
mavAuthored on Dec 26 2023, 2:19 AM
Parents
rGfaf11e40b49a: Schedule fast taskqueue callouts on right CPU.
Branches
Unknown
Tags
Unknown