http://defect.opensolaris.org/bz/show_bug.cgi?id=6534


Bill Holler <bill.holler at sun.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ACCEPTED                    |FIXINPROGRESS




--- Comment #2 from Bill Holler <bill.holler at sun.com>  2009-02-11 15:23:52 
---
(In reply to comment #1)
> (In reply to comment #0)

> >  Line 252: Is 10 "enough" ?
> >  Line 253: Why "3"?
> ====>TBD

Done.  Removed bring-up debug code.
We now read the HPET's Main Counter only 2 times.  This is for debug info
only and not an attempt to calibrate the device.  2 and 3 are the number
of times we must read the HPET's Main Counter and the TSC to determine
their period and latency.


> >  wtf is XXX_highbit() ? :)
> ====>TBD

Done. Removed this bringup code.  At one point this was used to get a
histogram of all idle related events for optimizations.


> >  Line 803: was a final decision made here?
> ====>TBD

Done.  Adding a callback into HPET to wakeup sleeping CPUs and
disable future Deep C-state requests.  Added callback to re-enable 
HPET for multiple Deep C-states.



> > apic_regops.c:
> >   This should no longer be necessary. (the line of code above the line you
> > added is the fix!)
> ====>TBD, What is not necessary?

Files falsely in webrev such as apic_regops.c will be removed from
the putback during the final "hg recommit" before putback, or in the
nightly gate chasing merges.  Will be done.


> >  This comment needs a re-write:
> >  633  * The I/O APIC line (vector) is programmed in ioapic_init_intr() 
> > called
> >  634  * from apic_picinit() psm_ops apic_ops entry point after we return 
> > from
> >  635  * apic_init() psm_ops entry point.
> ====>TBD

Done.



> >   hpet_isr() clears interrupts directly (instead of saving the flags and
> > restoring them on exit) -- I hope this doesn't cause problems in the future.
> ====>TBD

Done.
Changed to intr_clear() & intr_restore().

hpet_cpr()

Hunted down other usage of cli()/sti().
Also changed cli()/sti() to intr_clear()/intr_restore() in 
hpet_cpr() and hpet_deep_idle_config().

These next two functions are only called from idle thread:
1) added two ASSERTs to hpet_use_lapic_timer()
        ASSERT(!interrupts_enabled());
        ASSERT(CPU->cpu_thread == CPU->cpu_idle_thread);
2) added teo ASSERTs to hpet_use_hpet_timer()
        ASSERT(interrupts_enabled());
        ASSERT(CPU->cpu_thread == CPU->cpu_idle_thread);


The hpet_state is also checked inside the spin loop while attempting
to enter Deep C-state.



> 
> >  Please restate this:
> > 1092                          * There are no CPUs to program the HPET for.

Done.


> >  DJ Jazzy HPET and the Fresh Prince?:
> > 1094                          * Letting the HPET timer rap around to the
> > current

Done.

> > 1177          * A critical section exists between when the HPET is programed
> >     "programmed"

Done.


> > 1280          * Do not enable a LAPIC Timer than was initially disabled.
> >    "that was initially disabled"
> ====>TBD

Done.  s/that/than/

-- 
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