http://defect.opensolaris.org/bz/show_bug.cgi?id=3291
Summary: HPET should not take the round about path into
cyclic_fire
Classification: Development
Product: power-mgmt
Version: unspecified
Platform: Other
OS/Version: Solaris
Status: NEW
Severity: minor
Priority: P2
Component: c-state
AssignedTo: bill.holler at sun.com
ReportedBy: bill.holler at sun.com
CC: tesla-dev at opensolaris.org
Estimated Hours: 0.0
Aubrey noticed the HPET interrupt currently uses a very long path
into cyclic_fire. Two interrupts are generated, but only one is needed.
When a CPU wakeup from Deep C-State, they reprogram the LAPIC timer.
If the CPU was woken up by the HPET, the LAPIC timer immediately fires
causing the cbe_fire() ISR to run which in turn calls cyclic_fire().
The HPET's ISR calls poke_cpu() to wakeup all CPUs with expired LAPIC
timers; these CPUs go through the same LAPIC reprogram path.
Instead the HPET ISR can directly call cbe_fire() on its CPU (at the
appropriate processor interrupt level).
Instead of poke_cpu(), a IPI targeting cbe_fire() can be registered
and used?
As a side benefit this will greatly reduce the interrupt masking
complexities on idle CPUs waking up from Deep C-States.
--
Configure bugmail: http://defect.opensolaris.org/bz/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.