On Mon, 2016-03-14 at 09:29 +0100, Julia Lawall wrote: > On Mon, 14 Mar 2016, Joe Perches wrote: > > On Mon, 2016-03-14 at 06:19 +0100, Julia Lawall wrote: > > > On Sun, 13 Mar 2016, Joe Perches wrote: > > > > Loggng messages that emit function names have many different forms. > > > > Perhaps it'd be better for logging consistency and grep ease to > > > > exclusively use "%s:" > > > > > > > > As well, function tracing logging uses are generally unnecessary given > > > > the kernel's function tracing (ftrace) capability. > > > > > > > > Right now, grep shows these mixtures of forms: > > > > > > > > 13704 "%s:" > > > > 3839 "%s " > > > > 2787 "%s()" > > > > > > > > Some of these are macros definitions of various styles. > > > > > > > > Unfortunately, given the complexity of these macro definition styles, > > > > checkpatch isn't an ideal tool to find these macros. > > > > > > > > Maybe a coccinelle script might be better suited to find and fix all > > > > the various types of uses. > > > > > > > > Add a --fix option for these logging messages with __func__. > > > > > > I'm not good enough at perl to really understand this. Coudl you give an > > > example of what it does, and of what it does not do? > > > > For instance, this could do simple conversions like: > > > > $ diff --git a/arch/arm/common/mcpm_entry.c b/arch/arm/common/mcpm_entry.c > > @@ -416 +416 @@ int __init mcpm_loopback(void (*cache_disable)(void)) > > - pr_err("%s returned %d\n", __func__, ret); > > + pr_err("%s: returned %d\n", __func__, ret); > > > > But it couldn't find/convert a string concatenation: > > > > #define pch_dbg(adap, fmt, arg...) \ > > dev_dbg(adap->pch_adapter.dev.parent, "%s :" fmt, __func__, ##arg) > > OK, are there any thoughts about what to do when __func__ is not in the > first position? Hard to say, Uses with any or all of __FILE__, __LINE__, or __func__ in various combinations might be standardized. A lot of those are debugging style macro and probably could be converted to dynamic_debug style uses without any mention of __FILE__, __LINE__, or __func__ at all as dynamic_debug can optionally output these. For macros like: drivers/mtd/ubi/ubi.h-#define ubi_err(ubi, fmt, ...) pr_err(UBI_NAME_STR "%d error: %s: " fmt "\n", \ drivers/mtd/ubi/ubi.h: ubi->ubi_num, __func__, ##__VA_ARGS__) it might be best to leave it alone. as that lets grep find these a bit easier using "^ubi" though code style this might be nicer on 3 lines #define ubi_err(ubi, fmt, ...) \ pr_err(UBI_NAME_STR "%d error: %s: " fmt "\n", \ ubi->ubi_num, __func__, ##__VA_ARGS__) or maybe even as a function rather than a macro if it saves code space. __func__ could then be converted to __builtin_return_address(0) for instance: https://lkml.org/lkml/2016/2/25/554 -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html