Re: driver probe error reporting



On Wednesday, 17 of December 2008, Greg KH wrote:
On Wed, Dec 17, 2008 at 10:44:34PM +0100, Rafael J. Wysocki wrote:
On Wednesday, 17 of December 2008, Greg KH wrote:
On Wed, Dec 17, 2008 at 01:44:52PM +0100, Rafael J. Wysocki wrote:
On Wednesday, 17 of December 2008, Greg KH wrote:
On Mon, Dec 15, 2008 at 11:15:02PM +0000, Ben Dooks wrote:
This runs on from the discussion in [1] on how drivers (especially
one using a variant of the device driver framework) report errors
on probe. There are two main classes of errors, the type which happen
at probe time (device not responding, not enough memory, etc) and
errors that are due to configuration such as missing device configuration
data.

It has been suggested that using dev_err() to report any configuration
data error is a bloat of code as a properly debugged kernel should never
find itself in this state.

Unfortunatley the only diagnostic dev_xxx() macro is dev_dbg() which is
only available if the the driver code itself defines DEBUG. I would think
it would be better to have a macro that can be turned on/off by a kernel
configuration for when debugging which turns on the messages that are
important to developers creating new machine/arch support but disabled
for shipping kernels.

Not anymore, dev_dbg() can be dynamically switched on and off at runtime
in 2.6.28.

IMO, there's a problem with that, because it turns on _all_ of the debug info
from the entire kernel, which is _never_ necessary.

No, it is turned on and off on a per-module basis, not for the whole
kernel (although that is possible if you so desire.)

So this should not be an issue.

Well, recently I've been debugging suspend-resume quite a lot and I had to
compile it out. I use verbose PM debugging for that, which is based on
dev_dbg(), and it is very inconvenient with dynamic printk.

I'm confused, if you enable dynamic printk, it uses dev_dbg(). And then
you can turn it on or off on a per-module basis.

What are you suggesting we do instead?

For suspend-resume debugging I need dev_dbg() to work for all devices,
but only in a couple of specific code paths.

Well, I probably could enable it right before suspend and disable right after
the resume. I'll try that and see if I can filter the noise out this way.

Thanks,
Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • driver probe error reporting
    ... on probe. ... errors that are due to configuration such as missing device configuration ... data error is a bloat of code as a properly debugged kernel should never ... only available if the the driver code itself defines DEBUG. ...
    (Linux-Kernel)
  • Re: driver probe error reporting
    ... at probe time and ... errors that are due to configuration such as missing device configuration ... data error is a bloat of code as a properly debugged kernel should never ... recently I've been debugging suspend-resume quite a lot and I had to ...
    (Linux-Kernel)
  • Re: driver probe error reporting
    ... on probe. ... errors that are due to configuration such as missing device configuration ... data error is a bloat of code as a properly debugged kernel should never ... recently I've been debugging suspend-resume quite a lot and I had to ...
    (Linux-Kernel)
  • PROBLEM: Dell Inspiron 1501 fails to boot in 2.6.21+
    ... My new laptop won't boot with kernel versions 2.6.21 or 2.6.22. ... I've also included my kernel configuration and ver_linux output. ... Enabling unmasked SIMD FPU exception support... ... usbcore: ...
    (Linux-Kernel)
  • 2.6.16-rtXYZ hangs at boot on quad Opteron
    ... Debian etch and used the 2.6.14-rt9 kernel. ... NULL ptr deref on boot ... HyperTransport Technology Configuration ... # ACPI Support ...
    (Linux-Kernel)

Loading