I am trying to dump stack and call trace and do some recovery routine before rebooting system due to Watchdog timeout (2times).
As it explained, Cavium Octeon's Watchdog generates NMI on 2nd timeout. (interrupt for 1st timeout and poke in handler is normal routine)

In watchdog NMI handler, system will wait for another timeout. And on 3rd timeout, a chip-wide soft-reset pulse is generated to reset the system.

What I am trying is to save some debugging info inside NMI handler in flash memory. Everything works fine if I don't add code to save call trace.
If I add call trace saving code, then NMI handler hang.

I know saving call trace is a time consuming operation. But is there any way to get it done inside NMI handler?
Can we avoid hang inside NMI handler even though the routine is little longer/time consuming? Does anyone face same issue?

Please help. Thanks in advance.