aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/kernel.h
diff options
context:
space:
mode:
authorDave Young <hidave.darkstar@gmail.com>2008-07-25 04:45:58 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-25 13:53:29 -0400
commit717115e1a5856b57af0f71e1df7149108294fc10 (patch)
tree9528a992245c2fb993a0cf0bc8221dc7dea5d259 /include/linux/kernel.h
parent2711b793eb62a5873a0ba583a69252040aef176e (diff)
printk ratelimiting rewrite
All ratelimit user use same jiffies and burst params, so some messages (callbacks) will be lost. For example: a call printk_ratelimit(5 * HZ, 1) b call printk_ratelimit(5 * HZ, 1) before the 5*HZ timeout of a, then b will will be supressed. - rewrite __ratelimit, and use a ratelimit_state as parameter. Thanks for hints from andrew. - Add WARN_ON_RATELIMIT, update rcupreempt.h - remove __printk_ratelimit - use __ratelimit in net_ratelimit Signed-off-by: Dave Young <hidave.darkstar@gmail.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: "Paul E. McKenney" <paulmck@us.ibm.com> Cc: Dave Young <hidave.darkstar@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/kernel.h')
-rw-r--r--include/linux/kernel.h8
1 files changed, 2 insertions, 6 deletions
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 5c4b1251e110..fdbbf72ca2eb 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -15,6 +15,7 @@
15#include <linux/bitops.h> 15#include <linux/bitops.h>
16#include <linux/log2.h> 16#include <linux/log2.h>
17#include <linux/typecheck.h> 17#include <linux/typecheck.h>
18#include <linux/ratelimit.h>
18#include <asm/byteorder.h> 19#include <asm/byteorder.h>
19#include <asm/bug.h> 20#include <asm/bug.h>
20 21
@@ -189,11 +190,8 @@ asmlinkage int vprintk(const char *fmt, va_list args)
189asmlinkage int printk(const char * fmt, ...) 190asmlinkage int printk(const char * fmt, ...)
190 __attribute__ ((format (printf, 1, 2))) __cold; 191 __attribute__ ((format (printf, 1, 2))) __cold;
191 192
192extern int printk_ratelimit_jiffies; 193extern struct ratelimit_state printk_ratelimit_state;
193extern int printk_ratelimit_burst;
194extern int printk_ratelimit(void); 194extern int printk_ratelimit(void);
195extern int __ratelimit(int ratelimit_jiffies, int ratelimit_burst);
196extern int __printk_ratelimit(int ratelimit_jiffies, int ratelimit_burst);
197extern bool printk_timed_ratelimit(unsigned long *caller_jiffies, 195extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
198 unsigned int interval_msec); 196 unsigned int interval_msec);
199#else 197#else
@@ -204,8 +202,6 @@ static inline int printk(const char *s, ...)
204 __attribute__ ((format (printf, 1, 2))); 202 __attribute__ ((format (printf, 1, 2)));
205static inline int __cold printk(const char *s, ...) { return 0; } 203static inline int __cold printk(const char *s, ...) { return 0; }
206static inline int printk_ratelimit(void) { return 0; } 204static inline int printk_ratelimit(void) { return 0; }
207static inline int __printk_ratelimit(int ratelimit_jiffies, \
208 int ratelimit_burst) { return 0; }
209static inline bool printk_timed_ratelimit(unsigned long *caller_jiffies, \ 205static inline bool printk_timed_ratelimit(unsigned long *caller_jiffies, \
210 unsigned int interval_msec) \ 206 unsigned int interval_msec) \
211 { return false; } 207 { return false; }