Proposal: Unify printing the function name in panic messages()

Mike Karels mike at karels.net
Tue Feb 12 03:56:52 UTC 2013


> I have recently gone down several ratholes trying to understand a
> panic message which had the wrong function name (prefix ufs1_ instead
> of ufs2_).  I can definitely say that it matters to me. And I think
> that fixing the problem as Christoph has outlined will be a big
> step in the right direction.

> John, in your code you cannot expect to match the entire panic
> string if it has any % formats in it. So to be useful, you must be
> able to work with a constant subset of the string. The addition of
> other information such as a function name at the start should not
> affect that constant part that you are trying to match.

> Though a bit ugly, I do think that the change should use "PANIC"
> rather than overloading "panic". First, it lets the feature be
> introduced over time rather than requiring that every panic be
> changed at once. And, it allows historic panic's to work as expected.

> Finally, having it as a macro means that folks can readily and
> consistently add file and/or line numbers to panic messages if they
> wish to do so.

> Summary: I think that this is an excellent idea that will both help
> in finding the location of panic errors and also will allow folks
> trying to minimize kernel size to do so by cutting out the overhead.

I don't think that the proposal is to introduce this feature over time,
but instead to mechanically change as many instances as possible.  However,
if I understand correctly, that would include primarily the instances now
using the function name "correctly", not those using the wrong function
name.

I really don't want to see the kernel half-converted from panic() to
PANIC().  I'd rather see lower-case panic as an available macro depending
on a kernel option.  However, as John notes, this option is of reduced
utility if it isn't on by default, and I don't see sufficient reason to turn
it on by default.  Perhaps I haven't spent as much time looking at the wrong
function for panics that have been cloned badly, but I tend to use glimpse
if I don't know where the panic is coming from.

It seems to me that a script looking for duplicate panic strings would
solve the real problem much more quickly.

		Mike


More information about the freebsd-arch mailing list