<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Dec 5, 2013 at 8:45 AM, Vipul Jain <span dir="ltr">&lt;<a href="mailto:vipulsj@gmail.com" target="_blank">vipulsj@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">
<div class="im">On Tue, Dec 3, 2013 at 10:28 PM, Peter Teoh <span dir="ltr">&lt;<a href="mailto:htmldeveloper@gmail.com" target="_blank">htmldeveloper@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hi Vipul,<div><br></div><div>I have seen this in a number of commercial software running on RHEL, and on other realtime OS as well.   The watchdog mechanism is always working in pair:   userspace &quot;feeding&quot; the dog (in the kernel).   (btw, feed the dog is a more usually used term than &quot;pet&quot; the dog.   sorry for that.   google for that and perhaps you can get more info?).</div>


<div><br></div><div>Like Valdis said, this way you will know when userspace hang, which is the key criteria for reboot.   Why do u want to detect if the kernel hang (versus busy doing something)?   Theoretically that is not possible, especially when all interrupt are disabled.</div>


</div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>
<br></div></blockquote></div></div></blockquote>
</div><div>Hi Peter,</div><div><br></div><div>If you don&#39;t mind can you please provide me more insight as what can be false alarm I can encounter to move pet inside kernel module?</div><div><br></div></div></div></div>
</blockquote><div><br></div><div style>&quot;Feeding the dog&quot; is simply a periodic timer that wakes up and set a variable.   By the fact that the variable can be set/reset, also means that the periodic timer IS working.   In userspace, if you just have one process to &quot;feed the watchdog&quot;, then essentially we are monitoring whether system-wide the performance overall is good enough so that the periodic timer can be woken up at the required interval to reset the variable.   If some process hung, it MAY or MAY not affect the periodicity of this timer process.   </div>
<div style><br></div><div style>But if you have the timer embedded inside a particular high priority process you want to monitor, and if it hung, and &quot;feeding the watchdog&quot; will not execute, and the kernel will reboot you (read below - search &quot;reboot&quot;).</div>
<div><br></div><div><a href="http://www.mjmwired.net/kernel/Documentation/watchdog/watchdog-api.txt">http://www.mjmwired.net/kernel/Documentation/watchdog/watchdog-api.txt</a><br></div><div><br></div><div style>and more insights:</div>
<div style><br></div><div style><a href="http://stackoverflow.com/questions/2020468/who-is-refreshing-hardware-watchdog-in-linux">http://stackoverflow.com/questions/2020468/who-is-refreshing-hardware-watchdog-in-linux</a><br>
</div><div style><br></div><div style>(and lots of the &quot;RELATED&quot; questions at the side of the above page as well.)</div><div style><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div>Regards,</div><div>
Vipul. </div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards,<br>Peter Teoh
</div></div>