diff mbox series

[v5,08/12] Add durable_name_printk

Message ID 20200925161929.1136806-9-tasleson@redhat.com
State New
Headers show
Series Add persistent durable identifier to storage log messages | expand

Commit Message

Tony Asleson Sept. 25, 2020, 4:19 p.m. UTC
Ideally block related code would standardize on using dev_printk,
but dev_printk does change the user visible messages which is
questionable.  Adding this function which adds the structured
key/value durable name to the log entry.  It has the
same signature as dev_printk.  In the future, code that
is using this could easily transition to dev_printk when that
becomes workable.

Signed-off-by: Tony Asleson <tasleson@redhat.com>
---
 drivers/base/core.c        | 15 +++++++++++++++
 include/linux/dev_printk.h |  5 +++++
 2 files changed, 20 insertions(+)

Comments

Randy Dunlap Sept. 26, 2020, 11:53 p.m. UTC | #1
On 9/25/20 9:19 AM, Tony Asleson wrote:
> Ideally block related code would standardize on using dev_printk,

> but dev_printk does change the user visible messages which is

> questionable.  Adding this function which adds the structured

> key/value durable name to the log entry.  It has the

> same signature as dev_printk.  In the future, code that

> is using this could easily transition to dev_printk when that

> becomes workable.

> 

> Signed-off-by: Tony Asleson <tasleson@redhat.com>

> ---

>  drivers/base/core.c        | 15 +++++++++++++++

>  include/linux/dev_printk.h |  5 +++++

>  2 files changed, 20 insertions(+)


Hi,

I suggest that these 2 new function names should be
	printk_durable_name()
and
	printk_durable_name_ratelimited()

Those names would be closer to the printk* family of
function names.  Of course, you can find exceptions to this,
like dev_printk(), but that is in the dev_*() family of
function names.


> diff --git a/drivers/base/core.c b/drivers/base/core.c

> index 72a93b041a2d..447b0ebc93af 100644

> --- a/drivers/base/core.c

> +++ b/drivers/base/core.c

> @@ -3975,6 +3975,21 @@ void dev_printk(const char *level, const struct device *dev,

>  }

>  EXPORT_SYMBOL(dev_printk);

>  

> +void durable_name_printk(const char *level, const struct device *dev,

> +		const char *fmt, ...)

> +{

> +	size_t dictlen;

> +	va_list args;

> +	char dict[288];

> +

> +	dictlen = dev_durable_name(dev, dict, sizeof(dict));

> +

> +	va_start(args, fmt);

> +	vprintk_emit(0, level[1] - '0', dict, dictlen, fmt, args);

> +	va_end(args);

> +}

> +EXPORT_SYMBOL(durable_name_printk);

> +

>  #define define_dev_printk_level(func, kern_level)		\

>  void func(const struct device *dev, const char *fmt, ...)	\

>  {								\

> diff --git a/include/linux/dev_printk.h b/include/linux/dev_printk.h

> index 3028b644b4fb..4d57b940b692 100644

> --- a/include/linux/dev_printk.h

> +++ b/include/linux/dev_printk.h

> @@ -32,6 +32,11 @@ int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...);

>  __printf(3, 4) __cold

>  void dev_printk(const char *level, const struct device *dev,

>  		const char *fmt, ...);

> +

> +__printf(3, 4) __cold

> +void durable_name_printk(const char *level, const struct device *dev,

> +			const char *fmt, ...);

> +

>  __printf(2, 3) __cold

>  void _dev_emerg(const struct device *dev, const char *fmt, ...);

>  __printf(2, 3) __cold

> 


Thanks.
-- 
~Randy
diff mbox series

Patch

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 72a93b041a2d..447b0ebc93af 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -3975,6 +3975,21 @@  void dev_printk(const char *level, const struct device *dev,
 }
 EXPORT_SYMBOL(dev_printk);
 
+void durable_name_printk(const char *level, const struct device *dev,
+		const char *fmt, ...)
+{
+	size_t dictlen;
+	va_list args;
+	char dict[288];
+
+	dictlen = dev_durable_name(dev, dict, sizeof(dict));
+
+	va_start(args, fmt);
+	vprintk_emit(0, level[1] - '0', dict, dictlen, fmt, args);
+	va_end(args);
+}
+EXPORT_SYMBOL(durable_name_printk);
+
 #define define_dev_printk_level(func, kern_level)		\
 void func(const struct device *dev, const char *fmt, ...)	\
 {								\
diff --git a/include/linux/dev_printk.h b/include/linux/dev_printk.h
index 3028b644b4fb..4d57b940b692 100644
--- a/include/linux/dev_printk.h
+++ b/include/linux/dev_printk.h
@@ -32,6 +32,11 @@  int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...);
 __printf(3, 4) __cold
 void dev_printk(const char *level, const struct device *dev,
 		const char *fmt, ...);
+
+__printf(3, 4) __cold
+void durable_name_printk(const char *level, const struct device *dev,
+			const char *fmt, ...);
+
 __printf(2, 3) __cold
 void _dev_emerg(const struct device *dev, const char *fmt, ...);
 __printf(2, 3) __cold