Messages in this thread | | | Date | Tue, 26 Aug 2008 13:53:48 -0700 | From | Mike Travis <> | Subject | Re: [PATCH 3/6] x86_64 UV: Use blinking LED for heartbeat display |
| |
Pavel Machek wrote: >> * Mike Travis <travis@sgi.com> wrote: >> >>> +#ifdef CONFIG_CLOCKSOURCE_WATCHDOG >>> +static void uv_display_heartbeat(void) >>> +{ >>> + int cpu; >>> + >>> + uv_hub_info->led_heartbeat_count = nr_cpu_ids; >>> + >>> + for_each_online_cpu(cpu) { >>> + struct uv_hub_info_s *hub = uv_cpu_hub_info(cpu); >>> + >>> + if (hub->led_heartbeat_count > 0) { >>> + uv_set_led_bits_on(cpu, LED_CPU_BLINK, >>> + LED_CPU_HEARTBEAT); >>> + --hub->led_heartbeat_count; >>> + } >> this too is a bad idea. Imagine 16K cores and assume that each such >> iteration takes a few usecs (we write cross CPU) and you've got a >> GHz-ish CPU. That can easily be _milliseconds_ of delay (or more) - and >> in a function (the clocksource watchdog) that is all about precise >> timings. >> >> It is also very non-preemptable. > > LED subsystem already has nice heartbeat trigger. > Pavel
From Documentation/leds-class.txt:
Future Development ==================
At the moment, a trigger can't be created specifically for a single LED. There are a number of cases where a trigger might only be mappable to a particular LED (ACPI?). The addition of triggers provided by the LED driver should cover this option and be possible to add without breaking the current interface.
-- The SGI system has a set of leds per cpu, and the goal is that the leds display heartbeat and "idle-ness" information specific to that cpu. At first glance I don't see this capability in the LED subsystem. Am I missing something?
Additionally, the 8 leds are written as one byte with each led being full on or full off. It seems to be a big overhead to support the led class since I'd have to kluge together some means of sharing the current led register value [we really don't want to have to read the current reg value before updating a single led.]
But I will definitely look at the led_heartbeat_function more closely.
Any advice gladly welcomed!
Thanks! Mike
| |