ich die Skripte/checkpatch.pl Skript innerhalb der Linux-Sourcen und bekam diese Warnung vor kurzem lief:Reihenfolge der Präferenz - printk() vs dev_dbg() vs netdev_dbg()
WARNING: Prefer netdev_dbg(netdev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DEBUG ...
printk(KERN_DEBUG "Hello World! \n");
Ich verstehe, dass die Die von pr_debug und dev_dbg angebotene dynamische Debugging-Schnittstelle hat gegenüber printk offensichtliche Vorteile und wird deshalb von printk bevorzugt.
Sogar zwischen dev_dbg und pr_debug bevorzugen wir dev_dbg, wenn wir ein Struct-Gerät haben, um die Ausgabe der Geräteinformationen zusammen mit unserer Debug-Nachricht zu standardisieren. Es bietet die Möglichkeit, aus dem "Edit/Rebuild/Re-Boot-Zyklus" zu entkommen und erlaubt auch ein gepflegtes Log über die Dynamic_debug/Control-Schnittstelle.
Meine Frage ist: Warum ist netdev_dbg gegenüber dev_dbg bevorzugt?
In diesem Fall haben habe ich 2 Fragen: 1. Was genau netdev_dbg Angebot „zusätzlich“ tut dev_dbg. 2. Gibt es auch einen Grund, netdev_dbg() in dieser Warnmeldung und nicht * Subsystem * _dbg() zu verwenden. (Ich frage dies, weil diese Nachricht von checkpatch.pl kommt - was ein generisches Skript ist, das in Linux verwendet wird, um nach "allen" Patches zu suchen. Warum sagt es netdev_dbg und nicht etwas anderes?) – Yogesh
werfen Sie einen Blick auf den Quellcode und die git histry ** (1) ** das ist, was netdev _ *() ausdrucken http://lxr.free-electronics.com/source/net/core/dev.c#L6717 ** (2.1) ** _8f26b8376faad26372a579606ecbdbbb20e99dd8_ ist der Patch, der die Warnmeldung einführt ** (3) ** Ich nehme an, dass Sie auf einem netdevice sind, also warum netdev_dbg() sollte nicht bevorzugt werden ?. ** (4) ** Wenn Sie nicht mit netdevice arbeiten, haben wir vielleicht ein Problem. – Federico
Danke dafür. Ich habe 1 und 2.1 gesehen. Ich bin nur nicht sicher, warum netdev_dbg zu anderen Subsystemen * _dbg Anrufe (in Bezug auf diese Nachricht) bevorzugt wird.Wie für (3) und (4) arbeite ich _NOT_ an netdevice. In der Tat können Sie das einfachste Modul "Hallo Welt" (nicht einmal einen Gerätetreiber) schreiben und es mit checkpatch.pl überprüfen. Diese Warnmeldung wird angezeigt. – Yogesh