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
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
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
>