Re: [PATCH] dynamic tick patch

From: George Anzinger
Date: Fri Jan 21 2005 - 15:33:34 EST


Zwane Mwaikambo wrote:
On Fri, 21 Jan 2005, Tony Lindgren wrote:


This doesn't seem to cover the local APIC timer, what do you do about the 1kHz tick which it's programmed to do?

Sorry for the delay in replaying. Thanks for pointing that out, I
don't know yet what to do with the local APIC timer. Have to look at
more.


Pavel does your test system have a Local APIC? If so that may also explain why you didn't see a difference.

Tony, something like the following for oneshot should work, untested of course. Perhaps you could use that for the wakeup interrupt instead?

void setup_oneshot_apic_timer(unsigned int count)
{
unsigned int lvtt, tmp_value;
unsigned long flags;

count *= calibration_result;
local_irq_save(flags);
lvtt = ~APIC_LVT_TIMER_PERIODIC | LOCAL_TIMER_VECTOR;
apic_write_around(APIC_LVTT, lvtt);
tmp_value = apic_read(APIC_TDCR);
apic_write_around(APIC_TDCR, (tmp_value
& ~(APIC_TDR_DIV_1 | APIC_TDR_DIV_TMBASE))
| APIC_TDR_DIV_16);

apic_write_around(APIC_TMICT, count/APIC_DIVISOR);
local_irq_restore(flags);
}

The VST patch on sourceforge (http://sourceforge.net/projects/high-res-timers/) uses the local apic timer to do the wake up. This is the same timer that is used for the High Res work.

--
George Anzinger george@xxxxxxxxxx
High-res-timers: http://sourceforge.net/projects/high-res-timers/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/