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.

Reply via email to