printk_ratelimit functions should use CONFIG_PRINTK
PATCH 1/1 printk_ratelimit functions should use CONFIG_PRINTK
Makes an embedded image a bit smaller
Signed-off-by Joe Perches <[email protected]>
--- include/linux/kernel.h | 20 +++++++++++++++----- kernel/printk.c | 2 ++ kernel/sysctl.c | 20 ++++++++++---------- 3 files changed, 27 insertions(+), 15 deletions(-)
include/linux/kernel.h +15 -5
@@ -182,6 +182,13 @@ asmlinkage int printk(const char * fmt, ...)extern int log_buf_get_len (void );extern int log_buf_read (int idx);extern int log_buf_copy (char *dest,int idx,int len); + +extern int printk_ratelimit_jiffies; +extern int printk_ratelimit_burst; +extern int printk_ratelimit (void ); +extern int __printk_ratelimit (int ratelimit_jiffies,int ratelimit_burst); +extern bool printk_timed_ratelimit (unsigned long *caller_jiffies, +unsigned int interval_msec);#else static inline int vprintk (const char *s,va_list args) __attribute__ ((format (printf,1 ,0 )));
@@ -192,15 +199,18 @@ static inline int __cold printk(const char *s, ...) { return 0; }static inline int log_buf_get_len (void ) {return 0 ; }static inline int log_buf_read (int idx) {return 0 ; }static inline int log_buf_copy (char *dest,int idx,int len) {return 0 ; } + +static inline int printk_ratelimit (void ) {return 0 ; } +static inline int __printk_ratelimit (int ratelimit_jiffies, \ +int ratelimit_burst) {return 0 ; } +static inline bool printk_timed_ratelimit (unsigned long *caller_jiffies, \ +unsigned int interval_msec) \ + {return false; } +#endif unsigned long int_sqrt (unsigned long ); -extern int printk_ratelimit (void ); -extern int __printk_ratelimit (int ratelimit_jiffies,int ratelimit_burst); -extern bool printk_timed_ratelimit (unsigned long *caller_jiffies, -unsigned int interval_msec); -static inline void console_silent (void ) { console_loglevel =0 ;
kernel/printk.c +2 -0
@@ -1235,6 +1235,7 @@ void tty_write_message(struct tty_struct *tty, char *msg)return ; } +#if definedCONFIG_PRINTK /* * printk rate limiting, lifted from the networking subsystem. *
@@ -1304,3 +1305,4 @@ bool printk_timed_ratelimit(unsigned long *caller_jiffies, return false; }EXPORT_SYMBOL (printk_timed_ratelimit); +#endif
kernel/sysctl.c +10 -10
@@ -72,8 +72,6 @@ extern int suid_dumpable;extern char core_pattern[];extern int pid_max;extern int min_free_kbytes; -extern int printk_ratelimit_jiffies; -extern int printk_ratelimit_burst;extern int pid_max_min, pid_max_max;extern int sysctl_drop_caches;extern int percpu_pagelist_fraction;
@@ -462,14 +460,6 @@ static struct ctl_table kern_table[] = { .mode = 0644, .proc_handler = &proc_dointvec, }, - { - .ctl_name = KERN_PRINTK, - .procname = "printk", - .data = &console_loglevel, - .maxlen = 4*sizeof(int), - .mode = 0644, - .proc_handler = &proc_dointvec, - },#ifdef CONFIG_KMOD { .ctl_name = KERN_MODPROBE,
@@ -616,6 +606,15 @@ static struct ctl_table kern_table[] = { .mode = 0644, .proc_handler = &proc_dointvec, }, +#if defined CONFIG_PRINTK + { + .ctl_name = KERN_PRINTK, + .procname = "printk", + .data = &console_loglevel, + .maxlen = 4*sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, + }, { .ctl_name = KERN_PRINTK_RATELIMIT, .procname = "printk_ratelimit",
@@ -633,6 +632,7 @@ static struct ctl_table kern_table[] = { .mode = 0644, .proc_handler = &proc_dointvec, }, +#endif { .ctl_name = KERN_NGROUPS_MAX, .procname = "ngroups_max",
Quoted 1 line · Joe Perches
Makes an embedded image a bit smaller
Looks good to me. This should probably go to Andrew first though. And it wouldn't hurt to see some size(1) results.
Acked-by Matt Mackall <[email protected]>
Quoted 120 lines
Signed-off-by Joe Perches <[email protected]>--- include/linux/kernel.h | 20 +++++++++++++++----- kernel/printk.c | 2 ++ kernel/sysctl.c | 20 ++++++++++---------- 3 files changed, 27 insertions(+), 15 deletions(-)include/linux/kernel.h +15
-5@@ -182,6 +182,13 @@ asmlinkage int printk(const char * fmt, ...)extern int log_buf_get_len (void );extern int log_buf_read (int idx);extern int log_buf_copy (char *dest,int idx,int len); + +extern int printk_ratelimit_jiffies; +extern int printk_ratelimit_burst; +extern int printk_ratelimit (void ); +extern int __printk_ratelimit (int ratelimit_jiffies,int ratelimit_burst); +extern bool printk_timed_ratelimit (unsigned long *caller_jiffies, +unsigned int interval_msec);#else static inline int vprintk (const char *s,va_list args) __attribute__ ((format (printf,1 ,0 )));@@ -192,15 +199,18 @@ static inline int __cold printk(const char *s, ...) { return 0; }static inline int log_buf_get_len (void ) {return 0 ; }static inline int log_buf_read (int idx) {return 0 ; }static inline int log_buf_copy (char *dest,int idx,int len) {return 0 ; } + +static inline int printk_ratelimit (void ) {return 0 ; } +static inline int __printk_ratelimit (int ratelimit_jiffies, \ +int ratelimit_burst) {return 0 ; } +static inline bool printk_timed_ratelimit (unsigned long *caller_jiffies, \ +unsigned int interval_msec) \ + {return false; } +#endif unsigned long int_sqrt (unsigned long ); -extern int printk_ratelimit (void ); -extern int __printk_ratelimit (int ratelimit_jiffies,int ratelimit_burst); -extern bool printk_timed_ratelimit (unsigned long *caller_jiffies, -unsigned int interval_msec); -static inline void console_silent (void ) { console_loglevel =0 ;kernel/printk.c +2
-0@@ -1235,6 +1235,7 @@ void tty_write_message(struct tty_struct *tty, char *msg)return ; } +#if definedCONFIG_PRINTK /* * printk rate limiting, lifted from the networking subsystem. * @@ -1304,3 +1305,4 @@ bool printk_timed_ratelimit(unsigned long *caller_jiffies, return false; }EXPORT_SYMBOL (printk_timed_ratelimit); +#endif kernel/sysctl.c +10
-10@@ -72,8 +72,6 @@ extern int suid_dumpable;extern char core_pattern[];extern int pid_max;extern int min_free_kbytes; -extern int printk_ratelimit_jiffies; -extern int printk_ratelimit_burst;extern int pid_max_min, pid_max_max;extern int sysctl_drop_caches;extern int percpu_pagelist_fraction;@@ -462,14 +460,6 @@ static struct ctl_table kern_table[] = { .mode = 0644, .proc_handler = &proc_dointvec, }, - { - .ctl_name = KERN_PRINTK, - .procname = "printk", - .data = &console_loglevel, - .maxlen = 4*sizeof(int), - .mode = 0644, - .proc_handler = &proc_dointvec, - },#ifdef CONFIG_KMOD { .ctl_name = KERN_MODPROBE,@@ -616,6 +606,15 @@ static struct ctl_table kern_table[] = { .mode = 0644, .proc_handler = &proc_dointvec, }, +#if defined CONFIG_PRINTK + { + .ctl_name = KERN_PRINTK, + .procname = "printk", + .data = &console_loglevel, + .maxlen = 4*sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, + }, { .ctl_name = KERN_PRINTK_RATELIMIT, .procname = "printk_ratelimit",@@ -633,6 +632,7 @@ static struct ctl_table kern_table[] = { .mode = 0644, .proc_handler = &proc_dointvec, }, +#endif { .ctl_name = KERN_NGROUPS_MAX, .procname = "ngroups_max",
Signature · 1 line
Mathematics is the supreme nostalgia of our time.
Quoted 5 lines · Matt Mackall
Quoted 1 line · Joe Perches
Makes an embedded image a bit smaller
Looks good to me. This should probably go to Andrew first though. And it wouldn't hurt to see some size(1) results.
For instance:
x86 32 Allnoconfig, CONFIG_EMBEDDED=y CONFIG_PRINTK not set
with:
$ size -A vmlinux
vmlinux :
section size addr
.text 697864 3222274240 .rodata 121988 3222974464 .data 75952 3223097344 .bss 69632 3223289856
Total 1095589
without:
$ size -A vmlinux vmlinux : section size addr .text 698376 3222274240 .rodata 122032 3222978560 .data 76080 3223101440 .bss 69632 3223298048 Total 1096273