Arjan van de Ven 2c3b20e91f debug: add end-of-oops marker
Right now it's nearly impossible for parsers that collect kernel crashes
from logs or emails (such as www.kerneloops.org) to detect the
end-of-oops condition. In addition, it's not currently possible to
detect whether or not 2 oopses that look alike are actually the same
oops reported twice, or are truly two unique oopses.

This patch adds an end-of-oops marker, and makes the end marker include
a very simple 64-bit random ID to be able to detect duplicate reports.

Normally, this ID is calculated as a late_initcall() (in the hope that
at that time there is enough entropy to get a unique enough ID); however
for early oopses the oops_exit() function needs to generate the ID on
the fly.

We do this all at the _end_ of an oops printout, so this does not impact
our ability to get the most important portions of a crash out to the
console first.

[ Sidenote: the already existing oopses-since-bootup counter we print
  during crashes serves as the differentiator between multiple oopses
  that trigger during the same bootup. ]

Tested on 32-bit and 64-bit x86. Artificially injected very early
crashes as well, as expected they result in this constant ID after
multiple bootups:

  ---[ end trace ca143223eefdc828 ]---
  ---[ end trace ca143223eefdc828 ]---

because the random pools are still all zero. But it all still works
fine and causes no additional problems (which is the main goal of
instrumentation code).

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2007-12-20 15:01:17 +01:00
..
2007-11-14 18:45:43 -08:00
2007-11-26 21:21:49 +01:00
2007-10-21 02:37:45 -04:00
2007-10-21 02:37:45 -04:00
2007-10-21 02:37:45 -04:00
2007-10-21 02:37:45 -04:00
2007-11-14 18:45:37 -08:00
2007-10-18 14:37:24 -07:00
2007-12-05 09:21:18 -08:00
2007-10-18 14:37:26 -07:00
2007-10-19 11:53:49 -07:00
2007-10-16 09:43:10 -07:00
2007-11-19 11:20:43 +11:00
2007-10-19 11:53:34 -07:00
2007-12-20 15:01:17 +01:00
2007-11-14 18:45:43 -08:00
2007-10-18 14:37:24 -07:00
2007-12-17 19:28:17 -08:00
2007-10-18 14:37:24 -07:00
2007-12-18 18:05:58 +01:00