Skip to contentSkip to conversation

question about local-apic timer

DISCUSSION Klaas Zweck 1 participant 1 message Apr 13, 2002

lore
Share & tools
lore
#0 lore raw

hi all,

i have a question about disabling the local-apic timer interrupt on certain (but not all) cpus in linux MP-Systems to prevent the cpus from entering kernel mode.
as i understood, the timer is a self generated irq by the local apic of a cpu and is then received by this cpu itself.
i found it used in smp_local_timer_interrupt() function to
update process times.
i think it is initialized in arch/../apic.c in:hi all,

lvtt1_value = SET_APIC_TIMER_BASE(APIC_TIMER_BASE_DIV) |

                      APIC_LVT_TIMER_PERIODIC | LOCAL_TIMER_VECTOR;

apic_write_around(APIC_LVTT, lvtt1_value);

the APIC_LVT_TIMER_PERIODIC means ( as i understood intel mp spec )
that it is emitted at a certain frequency and is set to one as default value in linux. the mp spec says that a zero value would mean to set the local-timer 'one shot mode' to be emitted only once (since reprogrammed).

so would it be sufficient for my problem ( to disable local timer irqs on some cpus) to set this value to zero ??

and if so, is this possible at system runtime ??

since it is used to update process times this would produce problems in getting correct values for this on cpus with local-timer disabled but if thats the only problem coming up , this would be ok to me. (system is just for testing purposes.)

so thanks a lot for ideas and comments,
klaas