lkml.org 
[lkml]   [2007]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectClockevents: one-shoot mode is never enabled if local apic timer is disabled
Date
Hi,

I finally figured out why one-shoot mode is enabled on my system only and only if local apic is enabled.

While reading through dynatic code it looks that all clockevent devices are put in periodic mode.
Then hrtimer_run_queues (which runs nevertheless CONFIG_HIGH_RES_TIMERS enabled or not) calls
indirectly (through tick_check_oneshot_change or hrtimer_switch_to_hres) to tick_switch_to_oneshot

tick_switch_to_oneshot checks that current cpu's clockevents device (and it is lapic even if not used) is not a dummy device
and it is , so it never calls tick_broadcast_switch_to_oneshot

To put it simply if broadcast is used, it works in periodic mode only. tick_broadcast_switch_to_oneshot is never called
(well it is called when broadcast is not used, but it is unnecessary, on my system for example it brings HPET on one-shoot mode,
and HPET is not used at all)

I tried to remove this check and this resulted in hard lock-up during boot with nolapic_timer
Maybe this was connected to the fact that this function is called on both cpus, and if one set a
broadcasting device(HPET) to one shoot mode, second is still not aware of this.

Is it a bug or feature ?

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

\
 
 \ /
  Last update: 2007-04-02 10:59    [W:0.072 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site