2021-08-10 08:27:56

by Luis Chamberlain

[permalink] [raw]
Subject: [PATCH v2 1/3] libkmod: add a library notice log level print

When you use pass the -v argument to modprobe we bump
the log level from the default modprobe log level of
LOG_WARNING (4) to LOG_NOTICE (5), however the library
only has avaiable to print:

#define DBG(ctx, arg...) kmod_log_cond(ctx, LOG_DEBUG, ## arg)
#define INFO(ctx, arg...) kmod_log_cond(ctx, LOG_INFO, ## arg)
#define ERR(ctx, arg...) kmod_log_cond(ctx, LOG_ERR, ## arg)

LOG_INFO (6) however is too high of a level for it to be
effective at printing anything when modprobe -v is passed.
And so the only way in which modprobe -v can trigger the
library to print a verbose message is to use ERR() but that
always prints something and we don't want that in some
situations.

We need to add a new log level macro which uses LOG_NOTICE (5)
for a "normal but significant condition" which users and developers
can use to look underneath the hood to confirm if a situation is
happening.

Signed-off-by: Luis Chamberlain <[email protected]>
---
libkmod/libkmod-internal.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/libkmod/libkmod-internal.h b/libkmod/libkmod-internal.h
index 398af9c..2e5e1bc 100644
--- a/libkmod/libkmod-internal.h
+++ b/libkmod/libkmod-internal.h
@@ -25,10 +25,12 @@ static _always_inline_ _printf_format_(2, 3) void
# else
# define DBG(ctx, arg...) kmod_log_null(ctx, ## arg)
# endif
+# define NOTICE(ctx, arg...) kmod_log_cond(ctx, LOG_NOTICE, ## arg)
# define INFO(ctx, arg...) kmod_log_cond(ctx, LOG_INFO, ## arg)
# define ERR(ctx, arg...) kmod_log_cond(ctx, LOG_ERR, ## arg)
#else
# define DBG(ctx, arg...) kmod_log_null(ctx, ## arg)
+# define NOTICE(ctx, arg...) kmod_log_cond(ctx, LOG_NOTICE, ## arg)
# define INFO(ctx, arg...) kmod_log_null(ctx, ## arg)
# define ERR(ctx, arg...) kmod_log_null(ctx, ## arg)
#endif
--
2.30.2


2021-09-21 05:57:56

by Lucas De Marchi

[permalink] [raw]
Subject: Re: [PATCH v2 1/3] libkmod: add a library notice log level print

On Mon, Aug 9, 2021 at 11:56 PM Luis Chamberlain <[email protected]> wrote:
>
> When you use pass the -v argument to modprobe we bump
> the log level from the default modprobe log level of
> LOG_WARNING (4) to LOG_NOTICE (5), however the library
> only has avaiable to print:
>
> #define DBG(ctx, arg...) kmod_log_cond(ctx, LOG_DEBUG, ## arg)
> #define INFO(ctx, arg...) kmod_log_cond(ctx, LOG_INFO, ## arg)
> #define ERR(ctx, arg...) kmod_log_cond(ctx, LOG_ERR, ## arg)
>
> LOG_INFO (6) however is too high of a level for it to be
> effective at printing anything when modprobe -v is passed.
> And so the only way in which modprobe -v can trigger the
> library to print a verbose message is to use ERR() but that
> always prints something and we don't want that in some
> situations.
>
> We need to add a new log level macro which uses LOG_NOTICE (5)
> for a "normal but significant condition" which users and developers
> can use to look underneath the hood to confirm if a situation is
> happening.
>
> Signed-off-by: Luis Chamberlain <[email protected]>
> ---
> libkmod/libkmod-internal.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/libkmod/libkmod-internal.h b/libkmod/libkmod-internal.h
> index 398af9c..2e5e1bc 100644
> --- a/libkmod/libkmod-internal.h
> +++ b/libkmod/libkmod-internal.h
> @@ -25,10 +25,12 @@ static _always_inline_ _printf_format_(2, 3) void
> # else
> # define DBG(ctx, arg...) kmod_log_null(ctx, ## arg)
> # endif
> +# define NOTICE(ctx, arg...) kmod_log_cond(ctx, LOG_NOTICE, ## arg)
> # define INFO(ctx, arg...) kmod_log_cond(ctx, LOG_INFO, ## arg)
> # define ERR(ctx, arg...) kmod_log_cond(ctx, LOG_ERR, ## arg)
> #else
> # define DBG(ctx, arg...) kmod_log_null(ctx, ## arg)
> +# define NOTICE(ctx, arg...) kmod_log_cond(ctx, LOG_NOTICE, ## arg)

did you mean kmod_log_null()?

Lucas De Marchi

> # define INFO(ctx, arg...) kmod_log_null(ctx, ## arg)
> # define ERR(ctx, arg...) kmod_log_null(ctx, ## arg)
> #endif
> --
> 2.30.2
>

2021-09-21 20:20:04

by Luis Chamberlain

[permalink] [raw]
Subject: Re: [PATCH v2 1/3] libkmod: add a library notice log level print

On Mon, Sep 20, 2021 at 10:53:53PM -0700, Lucas De Marchi wrote:
> On Mon, Aug 9, 2021 at 11:56 PM Luis Chamberlain <[email protected]> wrote:
> >
> > When you use pass the -v argument to modprobe we bump
> > the log level from the default modprobe log level of
> > LOG_WARNING (4) to LOG_NOTICE (5), however the library
> > only has avaiable to print:
> >
> > #define DBG(ctx, arg...) kmod_log_cond(ctx, LOG_DEBUG, ## arg)
> > #define INFO(ctx, arg...) kmod_log_cond(ctx, LOG_INFO, ## arg)
> > #define ERR(ctx, arg...) kmod_log_cond(ctx, LOG_ERR, ## arg)
> >
> > LOG_INFO (6) however is too high of a level for it to be
> > effective at printing anything when modprobe -v is passed.
> > And so the only way in which modprobe -v can trigger the
> > library to print a verbose message is to use ERR() but that
> > always prints something and we don't want that in some
> > situations.
> >
> > We need to add a new log level macro which uses LOG_NOTICE (5)
> > for a "normal but significant condition" which users and developers
> > can use to look underneath the hood to confirm if a situation is
> > happening.
> >
> > Signed-off-by: Luis Chamberlain <[email protected]>
> > ---
> > libkmod/libkmod-internal.h | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/libkmod/libkmod-internal.h b/libkmod/libkmod-internal.h
> > index 398af9c..2e5e1bc 100644
> > --- a/libkmod/libkmod-internal.h
> > +++ b/libkmod/libkmod-internal.h
> > @@ -25,10 +25,12 @@ static _always_inline_ _printf_format_(2, 3) void
> > # else
> > # define DBG(ctx, arg...) kmod_log_null(ctx, ## arg)
> > # endif
> > +# define NOTICE(ctx, arg...) kmod_log_cond(ctx, LOG_NOTICE, ## arg)
> > # define INFO(ctx, arg...) kmod_log_cond(ctx, LOG_INFO, ## arg)
> > # define ERR(ctx, arg...) kmod_log_cond(ctx, LOG_ERR, ## arg)
> > #else
> > # define DBG(ctx, arg...) kmod_log_null(ctx, ## arg)
> > +# define NOTICE(ctx, arg...) kmod_log_cond(ctx, LOG_NOTICE, ## arg)
>
> did you mean kmod_log_null()?

Sure, feel free to change on your end or let me know if you would
prefer if I respin.

Luis

2021-09-23 08:06:54

by Lucas De Marchi

[permalink] [raw]
Subject: Re: [PATCH v2 1/3] libkmod: add a library notice log level print

On Tue, Sep 21, 2021 at 11:40:52AM -0700, Luis Chamberlain wrote:
>On Mon, Sep 20, 2021 at 10:53:53PM -0700, Lucas De Marchi wrote:
>> On Mon, Aug 9, 2021 at 11:56 PM Luis Chamberlain <[email protected]> wrote:
>> >
>> > When you use pass the -v argument to modprobe we bump
>> > the log level from the default modprobe log level of
>> > LOG_WARNING (4) to LOG_NOTICE (5), however the library
>> > only has avaiable to print:
>> >
>> > #define DBG(ctx, arg...) kmod_log_cond(ctx, LOG_DEBUG, ## arg)
>> > #define INFO(ctx, arg...) kmod_log_cond(ctx, LOG_INFO, ## arg)
>> > #define ERR(ctx, arg...) kmod_log_cond(ctx, LOG_ERR, ## arg)
>> >
>> > LOG_INFO (6) however is too high of a level for it to be
>> > effective at printing anything when modprobe -v is passed.
>> > And so the only way in which modprobe -v can trigger the
>> > library to print a verbose message is to use ERR() but that
>> > always prints something and we don't want that in some
>> > situations.
>> >
>> > We need to add a new log level macro which uses LOG_NOTICE (5)
>> > for a "normal but significant condition" which users and developers
>> > can use to look underneath the hood to confirm if a situation is
>> > happening.
>> >
>> > Signed-off-by: Luis Chamberlain <[email protected]>
>> > ---
>> > libkmod/libkmod-internal.h | 2 ++
>> > 1 file changed, 2 insertions(+)
>> >
>> > diff --git a/libkmod/libkmod-internal.h b/libkmod/libkmod-internal.h
>> > index 398af9c..2e5e1bc 100644
>> > --- a/libkmod/libkmod-internal.h
>> > +++ b/libkmod/libkmod-internal.h
>> > @@ -25,10 +25,12 @@ static _always_inline_ _printf_format_(2, 3) void
>> > # else
>> > # define DBG(ctx, arg...) kmod_log_null(ctx, ## arg)
>> > # endif
>> > +# define NOTICE(ctx, arg...) kmod_log_cond(ctx, LOG_NOTICE, ## arg)
>> > # define INFO(ctx, arg...) kmod_log_cond(ctx, LOG_INFO, ## arg)
>> > # define ERR(ctx, arg...) kmod_log_cond(ctx, LOG_ERR, ## arg)
>> > #else
>> > # define DBG(ctx, arg...) kmod_log_null(ctx, ## arg)
>> > +# define NOTICE(ctx, arg...) kmod_log_cond(ctx, LOG_NOTICE, ## arg)
>>
>> did you mean kmod_log_null()?
>
>Sure, feel free to change on your end or let me know if you would
>prefer if I respin.

fixed that and pushed this patch.

thanks
Lucas De Marchi

>
> Luis