[PATCH] drm/sched: Define pr_fmt() for DRM using pr_*()

Jani Nikula jani.nikula at linux.intel.com
Fri Nov 10 12:40:14 UTC 2023


On Thu, 09 Nov 2023, Luben Tuikov <ltuikov89 at gmail.com> wrote:
> Define pr_fmt() as "[drm] " for DRM code using pr_*() facilities, especially
> when no devices are available. This makes it easier to browse kernel logs.

Please do not merge patches before people have actually had a chance to
look at them. This was merged *way* too quickly.

This does not do what you think it does, and it's not robust enough.

The drm_print.[ch] facilities use very few pr_*() calls directly. The
users of pr_*() calls do not necessarily include <drm/drm_print.h> at
all, and really don't have to.

Even the ones that do include it, usually have <linux/...> includes
first, and <drm/...> includes next. Notably, <linux/kernel.h> includes
<linux/printk.h>.

And, of course, <linux/printk.h> defines pr_fmt() itself if not already
defined.

> Signed-off-by: Luben Tuikov <ltuikov89 at gmail.com>
> ---
>  include/drm/drm_print.h | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
> index a93a387f8a1a15..e8fe60d0eb8783 100644
> --- a/include/drm/drm_print.h
> +++ b/include/drm/drm_print.h
> @@ -26,6 +26,20 @@
>  #ifndef DRM_PRINT_H_
>  #define DRM_PRINT_H_
>  
> +/* Define this before including linux/printk.h, so that the format
> + * string in pr_*() macros is correctly set for DRM. If a file wants
> + * to define this to something else, it should do so before including
> + * this header file.

The only way this would work is by including <drm/drm_print.h> as the
very first header, and that's fragile at best.

> + *
> + * It is encouraged code using pr_err() to prefix their format with
> + * the string "*ERROR* ", to make it easier to scan kernel logs. For
> + * instance,
> + *   pr_err("*ERROR* <the rest of your format string here>", args).

No, it's encouraged not to use pr_*() at all, and prefer drm device
based logging, or device based logging.

I'd rather this whole thing was just reverted.

BR,
Jani.

> + */
> +#ifndef pr_fmt
> +#define pr_fmt(fmt) "[drm] " fmt
> +#endif
> +
>  #include <linux/compiler.h>
>  #include <linux/printk.h>
>  #include <linux/seq_file.h>
>
> base-commit: f3123c2590005c5ff631653d31428e40cd10c618

-- 
Jani Nikula, Intel


More information about the dri-devel mailing list