title: does kernel's panic() function completely freezes every other process?
body: <p>I would like to be confirmed that kernel's <code>panic()</code> function and the others like <code>kernel_halt()</code> and <code>machine_halt()</code>, once triggered, guarantee complete freezing of the machine.</p>
  
  <p>So, are all the kernel and user processes frozen? Is <code>panic()</code> interruptible by the scheduler? The interrupt handlers could still be executed?</p>
  
  <p>Use case: in case of serious error, I need to be sure that the hardware watchdog resets the machine. To this end, I need to make sure that <em>no other thread/process</em> is keeping the watchdog alive. I need to trigger a complete halt of the system. Currently, inside my kernel module, I simply call <code>panic()</code> to freeze everything.</p>
  
  <p>Also, the user-space <code>halt</code> command is guaranteed to freeze the system?</p>
  
  <p>Thanks.</p>
  
  <p>edit: According to: <a href="http://linux.die.net/man/2/reboot" rel="noreferrer">http://linux.die.net/man/2/reboot</a>, I think the best way is to use <code>reboot(LINUX_REBOOT_CMD_HALT)</code>: "Control is given to the ROM monitor, if there is one"</p>