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.