<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Dec 5, 2013 at 9:06 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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><div><div class="h5"><br><br><div class="gmail_quote">On Wed, Dec 4, 2013 at 4:57 PM,  <span dir="ltr">&lt;<a href="mailto:Valdis.Kletnieks@vt.edu" target="_blank">Valdis.Kletnieks@vt.edu</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Wed, 04 Dec 2013 16:45:44 -0800, Vipul Jain said:<br>
<br>
&gt; If you don&#39;t mind can you please provide me more insight as what can be<br>
&gt; false alarm I can encounter to move pet inside kernel module?<br>
<br>
</div>The issue isn&#39;t false alarms - it&#39;s failure to alarm when it should.<br>
<br>
The problem is that it&#39;s possible for a kernel to get wedged in such a way that<br>
a kernel thread is still able to feed the watchdog timer on a regular basis,<br>
but userspace is effectively hung and unable to proceed.  For example, if an<br>
OOPS happens while a filesystem lock is held, all future userspace references<br>
to that filesystem (and possibly all filesystems of the same type) will hang,<br>
eventually strangling the box while the kernel is still perfectly able to keep<br>
the watchdog working.<br>
<br>
</blockquote></div></div></div>Hi Valdis,</div><div class="gmail_extra"><br></div><div class="gmail_extra">I see what you are saying but what if the user process that&#39;s feeding the dog gets hung and rest of the system is fine then it will bring the whole system down won&#39;t it? I basically want to avoid this?</div>

<div class="gmail_extra"><br></div></div></blockquote><div><br></div><div style>Normally the process that feed the dog, is a simple process that JUST periodically set the watchdog device descriptor.    Yes, one main() with a while loop just periodically resetting the descriptor.</div>
<div style><br></div><div style>And so it is is not able to respond in time, by inference, OTHER PROCESS must have hung.   In other system i saw there is a mother process that monitor a few (not all) of its key child process .... so perhaps one child will have one variable to signal to the mother that it is running.   If not responding in time, the mother will clean up everything and then purposely not setting the watchdog, resulting in reboot.  </div>
<div style> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"></div><div class="gmail_extra">Regards,</div><div class="gmail_extra">
Vipul.</div><div class="gmail_extra"><br></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards,<br>Peter Teoh
</div></div>