Hi Kumar,
I was hoping to get some ideas on how to handle the watchdog timers
we have on some embedded PPC (booke_wdt.c) cores when we are in a SMP
system.
The problem is since the watchdog is part of the processor core
depending on which processor a given system call is executed at we
might get different behavior. It seems like we would want to mirror
the actions to both cores (via smp_call_function).
Looking at the file ops we currently support in booke_wdt.c it seems
like we could mirror the actions for booke_wdt_write()/booke_wdt_ping
() to both cores and ensure when we set something like
WDIOC_SETTIMEOUT we set the registers in both processors.
I was wondering if anyone had any other ideas or if this model seems
to work.
I see 2 ways to go:
1) short term: make sure that your actions are duplicated to both cores
(like you said). At least then you are protected if your complete system
crashes.
2) I'm working on the uniform/generic watchdog device driver. Phase 1 is
the "new" api and the /dev/watchdog handling. Phase 2 is a sysfs interface.
Phase 3 is to allow multiple devices (and there I'm still thinking about
how the /dev/watchdog interface should work).
But the general idea is to allow at least the control of each watchdog
device by the sysfs interface.