2008-03-10 06:29:06

by Dave Young

[permalink] [raw]
Subject: [PATCH] [2/3] add WARN_ON_SECS macro

Add WARN_ON_SECS macro for some serious case which need repeat the
warnings, but with some ratelimit.

Signed-off-by: Dave Young <[email protected]>

---
include/asm-generic/bug.h | 8 ++++++++
1 file changed, 8 insertions(+)

diff -upr linux/include/asm-generic/bug.h linux.new/include/asm-generic/bug.h
--- linux/include/asm-generic/bug.h 2008-03-10 13:27:03.000000000 +0800
+++ linux.new/include/asm-generic/bug.h 2008-03-10 13:27:14.000000000 +0800
@@ -3,6 +3,7 @@

#include <linux/compiler.h>

+
#ifdef CONFIG_BUG

#ifdef CONFIG_GENERIC_BUG
@@ -75,6 +76,13 @@ extern void warn_on_slowpath(const char
unlikely(__ret_warn_once); \
})

+#define WARN_ON_SECS(condition, secs) ({ \
+ int __ret_warn_on = !!(condition); \
+ if (unlikely(__ret_warn_on)) \
+ if (__ratelimit(secs * HZ, 1)) \
+ WARN_ON(condition); \
+})
+
#ifdef CONFIG_SMP
# define WARN_ON_SMP(x) WARN_ON(x)
#else


2008-03-11 19:21:44

by Marcin Ślusarz

[permalink] [raw]
Subject: Re: [PATCH] [2/3] add WARN_ON_SECS macro

On Mon, Mar 10, 2008 at 02:34:37PM +0800, Dave Young wrote:
> Add WARN_ON_SECS macro for some serious case which need repeat the
> warnings, but with some ratelimit.
>
> Signed-off-by: Dave Young <[email protected]>
>
> ---
> include/asm-generic/bug.h | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff -upr linux/include/asm-generic/bug.h linux.new/include/asm-generic/bug.h
> --- linux/include/asm-generic/bug.h 2008-03-10 13:27:03.000000000 +0800
> +++ linux.new/include/asm-generic/bug.h 2008-03-10 13:27:14.000000000 +0800
> @@ -3,6 +3,7 @@
>
> #include <linux/compiler.h>
>
> +
> #ifdef CONFIG_BUG
>
> #ifdef CONFIG_GENERIC_BUG
> @@ -75,6 +76,13 @@ extern void warn_on_slowpath(const char
> unlikely(__ret_warn_once); \
> })
>
> +#define WARN_ON_SECS(condition, secs) ({ \
> + int __ret_warn_on = !!(condition); \
> + if (unlikely(__ret_warn_on)) \
> + if (__ratelimit(secs * HZ, 1)) \
> + WARN_ON(condition); \
> +})
> +
> #ifdef CONFIG_SMP
> # define WARN_ON_SMP(x) WARN_ON(x)
> #else

Do you really want to check the condition twice?

Marcin

2008-03-12 00:37:38

by Dave Young

[permalink] [raw]
Subject: Re: [PATCH] [2/3] add WARN_ON_SECS macro

On Wed, Mar 12, 2008 at 3:20 AM, Marcin Slusarz
<[email protected]> wrote:
>
> On Mon, Mar 10, 2008 at 02:34:37PM +0800, Dave Young wrote:
> > Add WARN_ON_SECS macro for some serious case which need repeat the
> > warnings, but with some ratelimit.
> >
> > Signed-off-by: Dave Young <[email protected]>
> >
> > ---
> > include/asm-generic/bug.h | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff -upr linux/include/asm-generic/bug.h linux.new/include/asm-generic/bug.h
> > --- linux/include/asm-generic/bug.h 2008-03-10 13:27:03.000000000 +0800
> > +++ linux.new/include/asm-generic/bug.h 2008-03-10 13:27:14.000000000 +0800
> > @@ -3,6 +3,7 @@
> >
> > #include <linux/compiler.h>
> >
> > +
> > #ifdef CONFIG_BUG
> >
> > #ifdef CONFIG_GENERIC_BUG
> > @@ -75,6 +76,13 @@ extern void warn_on_slowpath(const char
> > unlikely(__ret_warn_once); \
> > })
> >
> > +#define WARN_ON_SECS(condition, secs) ({ \
> > + int __ret_warn_on = !!(condition); \
> > + if (unlikely(__ret_warn_on)) \
> > + if (__ratelimit(secs * HZ, 1)) \
> > + WARN_ON(condition); \
> > +})
> > +
> > #ifdef CONFIG_SMP
> > # define WARN_ON_SMP(x) WARN_ON(x)
> > #else
>
> Do you really want to check the condition twice?

Thanks, WARN_ON(1) will be better.

>
> Marcin
>