2015-05-18 18:42:22

by Leon Romanovsky

[permalink] [raw]
Subject: [PATCH] mm: nommu: convert kenter/kleave/kdebug macros to use pr_devel()

kenter/kleave/kdebug are wrapper macros to print functions flow and debug
information. This set was written before pr_devel() was introduced, so
it was controlled by "#if 0" construction.

This patch refactors the current macros to use general pr_devel()
functions which won't be compiled in if "#define DEBUG" is not declared
prior to that macros.

Signed-off-by: Leon Romanovsky <[email protected]>
---
mm/nommu.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/mm/nommu.c b/mm/nommu.c
index e544508..7e5986b6 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -42,21 +42,15 @@
#include <asm/mmu_context.h>
#include "internal.h"

-#if 0
-#define kenter(FMT, ...) \
- printk(KERN_DEBUG "==> %s("FMT")\n", __func__, ##__VA_ARGS__)
-#define kleave(FMT, ...) \
- printk(KERN_DEBUG "<== %s()"FMT"\n", __func__, ##__VA_ARGS__)
-#define kdebug(FMT, ...) \
- printk(KERN_DEBUG "xxx" FMT"yyy\n", ##__VA_ARGS__)
-#else
+/*
+ * Relies on "#define DEBUG" construction to print them
+ */
#define kenter(FMT, ...) \
- no_printk(KERN_DEBUG "==> %s("FMT")\n", __func__, ##__VA_ARGS__)
+ pr_devel("==> %s("FMT")\n", __func__, ##__VA_ARGS__)
#define kleave(FMT, ...) \
- no_printk(KERN_DEBUG "<== %s()"FMT"\n", __func__, ##__VA_ARGS__)
+ pr_devel("<== %s()"FMT"\n", __func__, ##__VA_ARGS__)
#define kdebug(FMT, ...) \
- no_printk(KERN_DEBUG FMT"\n", ##__VA_ARGS__)
-#endif
+ pr_devel("xxx" FMT"yyy\n", ##__VA_ARGS__)

void *high_memory;
EXPORT_SYMBOL(high_memory);
--
1.7.9.5


2015-05-18 18:45:41

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH] mm: nommu: convert kenter/kleave/kdebug macros to use pr_devel()

Sorry for this multiple resend, my mail client hid from me part of
subject line :(

On Mon, May 18, 2015 at 9:42 PM, Leon Romanovsky <[email protected]> wrote:
> kenter/kleave/kdebug are wrapper macros to print functions flow and debug
> information. This set was written before pr_devel() was introduced, so
> it was controlled by "#if 0" construction.
>
> This patch refactors the current macros to use general pr_devel()
> functions which won't be compiled in if "#define DEBUG" is not declared
> prior to that macros.
>
> Signed-off-by: Leon Romanovsky <[email protected]>
> ---
> mm/nommu.c | 18 ++++++------------
> 1 file changed, 6 insertions(+), 12 deletions(-)
>
> diff --git a/mm/nommu.c b/mm/nommu.c
> index e544508..7e5986b6 100644
> --- a/mm/nommu.c
> +++ b/mm/nommu.c
> @@ -42,21 +42,15 @@
> #include <asm/mmu_context.h>
> #include "internal.h"
>
> -#if 0
> -#define kenter(FMT, ...) \
> - printk(KERN_DEBUG "==> %s("FMT")\n", __func__, ##__VA_ARGS__)
> -#define kleave(FMT, ...) \
> - printk(KERN_DEBUG "<== %s()"FMT"\n", __func__, ##__VA_ARGS__)
> -#define kdebug(FMT, ...) \
> - printk(KERN_DEBUG "xxx" FMT"yyy\n", ##__VA_ARGS__)
> -#else
> +/*
> + * Relies on "#define DEBUG" construction to print them
> + */
> #define kenter(FMT, ...) \
> - no_printk(KERN_DEBUG "==> %s("FMT")\n", __func__, ##__VA_ARGS__)
> + pr_devel("==> %s("FMT")\n", __func__, ##__VA_ARGS__)
> #define kleave(FMT, ...) \
> - no_printk(KERN_DEBUG "<== %s()"FMT"\n", __func__, ##__VA_ARGS__)
> + pr_devel("<== %s()"FMT"\n", __func__, ##__VA_ARGS__)
> #define kdebug(FMT, ...) \
> - no_printk(KERN_DEBUG FMT"\n", ##__VA_ARGS__)
> -#endif
> + pr_devel("xxx" FMT"yyy\n", ##__VA_ARGS__)
>
> void *high_memory;
> EXPORT_SYMBOL(high_memory);
> --
> 1.7.9.5
>



--
Leon Romanovsky | Independent Linux Consultant
http://www.leon.nu | [email protected]

2015-05-18 22:27:26

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] mm: nommu: convert kenter/kleave/kdebug macros to use pr_devel()

On Mon, 18 May 2015 21:42:06 +0300 Leon Romanovsky <[email protected]> wrote:

> kenter/kleave/kdebug are wrapper macros to print functions flow and debug
> information. This set was written before pr_devel() was introduced, so
> it was controlled by "#if 0" construction.
>
> This patch refactors the current macros to use general pr_devel()
> functions which won't be compiled in if "#define DEBUG" is not declared
> prior to that macros.

I doubt if anyone has used these in a decade and only a tenth of the
mm/nommu.c code is actually wired up to use the macros.

I'd suggest just removing it all. If someone later has a need, they
can add their own pr_devel() calls.

2015-05-19 05:20:41

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH] mm: nommu: convert kenter/kleave/kdebug macros to use pr_devel()

On Tue, May 19, 2015 at 1:27 AM, Andrew Morton
<[email protected]> wrote:
> On Mon, 18 May 2015 21:42:06 +0300 Leon Romanovsky <[email protected]> wrote:
>
>> kenter/kleave/kdebug are wrapper macros to print functions flow and debug
>> information. This set was written before pr_devel() was introduced, so
>> it was controlled by "#if 0" construction.
>>
>> This patch refactors the current macros to use general pr_devel()
>> functions which won't be compiled in if "#define DEBUG" is not declared
>> prior to that macros.
>
> I doubt if anyone has used these in a decade and only a tenth of the
> mm/nommu.c code is actually wired up to use the macros.

A couple of days before, the question "how to handle such code" [1]
was raised by me. Later, Joe Perches suggested to add into
consideration the "delete option" [2].

> I'd suggest just removing it all. If someone later has a need, they
> can add their own pr_devel() calls.
My patch followed the preference of initial author (David Howells [3] and [4]).

Please advise how should I proceed with it.

[1] [RFC] Refactor kenter/kleave/kdebug macros -
https://lkml.org/lkml/2015/5/16/279
[2] https://lkml.org/lkml/2015/5/16/280
[3] https://lkml.org/lkml/2015/5/18/199
[4] https://lkml.org/lkml/2015/5/18/457

Thanks.


--
Leon Romanovsky | Independent Linux Consultant
http://www.leon.nu | [email protected]