Messages in this thread | | | Date | Mon, 1 Feb 2016 16:08:46 -0500 | From | Don Zickus <> | Subject | Re: [PATCH v2 4/4] Add WARN() function call to hard-soft lockup |
| |
On Mon, Feb 01, 2016 at 01:45:27PM -0700, Jeffrey Merkey wrote: > This patch series adds config options which can be set during compile to > direct the compiler to output a breakpoint instruction anywhere a BUG_XX() > or WARN_XX() macro has been placed in the kernel to trigger the system to > enter a debugger if a bug is detected by the system. Use of this compile > time option also allows conditional breakpoints to be set in the kernel > where these macros have been previously placed. > > This addition is extremely useful for debugging hard and soft lockups > real time and quickly from a console debugger, and other areas of the > kernel. > > Signed-off-by: Jeffrey Merkey <jeffmerkey@gmail.com> > --- > kernel/watchdog.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/kernel/watchdog.c b/kernel/watchdog.c > index b3ace6e..af07a83 100644 > --- a/kernel/watchdog.c > +++ b/kernel/watchdog.c > @@ -358,6 +358,8 @@ static void watchdog_overflow_callback(struct perf_event *event, > else > dump_stack(); > > + WARN(1, "Watchdog detected hard LOCKUP on cpu %d", this_cpu); > +
So we repeat the same exact print message and dump the same stack again as we do a few lines above? That doesn't make any sense.
Cheers, Don
> /* > * Perform all-CPU dump only once to avoid multiple hardlockups > * generating interleaving traces > @@ -478,6 +480,9 @@ static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer) > else > dump_stack(); > > + WARN(1, "Watchdog detected soft LOCKUP on cpu %d", > + smp_processor_id()); > + > if (softlockup_all_cpu_backtrace) { > /* Avoid generating two back traces for current > * given that one is already made above > -- > 1.8.3.1 >
| |