* [PATCH] cifs: Ratelimit kernel log messages @ 2015-11-07 12:13 Jamie Bainbridge [not found] ` <7094bd3a2ef3c030463aa04fbce8369bfb33be9c.1446897962.git.jamie.bainbridge-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 2+ messages in thread From: Jamie Bainbridge @ 2015-11-07 12:13 UTC (permalink / raw) To: linux-cifs-u79uwXL29TY76Z2rM5mHXA Under some conditions, CIFS can repeatedly call the cifs_dbg() logging wrapper. If done rapidly enough, the console framebuffer can softlockup or "rcu_sched self-detected stall". Apply the built-in log ratelimiters to prevent such hangs. Signed-off-by: Jamie Bainbridge <jamie.bainbridge-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> --- fs/cifs/cifs_debug.c | 2 +- fs/cifs/cifs_debug.h | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c index 7febcf2475c5ab675c04dfd2fddaa3ed574522a0..50b268483302922ee63d205a2fa560ec27676eed 100644 --- a/fs/cifs/cifs_debug.c +++ b/fs/cifs/cifs_debug.c @@ -50,7 +50,7 @@ void cifs_vfs_err(const char *fmt, ...) vaf.fmt = fmt; vaf.va = &args; - pr_err("CIFS VFS: %pV", &vaf); + pr_err_ratelimited("CIFS VFS: %pV", &vaf); va_end(args); } diff --git a/fs/cifs/cifs_debug.h b/fs/cifs/cifs_debug.h index f40fbaca1b2a2c1d7457d71bd1a5e7dd4b477859..66cf0f9fff8984cb12eed1c89d91bc9c6ccc6a9d 100644 --- a/fs/cifs/cifs_debug.h +++ b/fs/cifs/cifs_debug.h @@ -51,14 +51,13 @@ __printf(1, 2) void cifs_vfs_err(const char *fmt, ...); /* information message: e.g., configuration, major event */ #define cifs_dbg(type, fmt, ...) \ do { \ - if (type == FYI) { \ - if (cifsFYI & CIFS_INFO) { \ - pr_debug("%s: " fmt, __FILE__, ##__VA_ARGS__); \ - } \ + if (type == FYI && cifsFYI & CIFS_INFO) { \ + pr_debug_ratelimited("%s: " \ + fmt, __FILE__, ##__VA_ARGS__); \ } else if (type == VFS) { \ cifs_vfs_err(fmt, ##__VA_ARGS__); \ } else if (type == NOISY && type != 0) { \ - pr_debug(fmt, ##__VA_ARGS__); \ + pr_debug_ratelimited(fmt, ##__VA_ARGS__); \ } \ } while (0) -- 1.9.1 ^ permalink raw reply related [flat|nested] 2+ messages in thread
[parent not found: <7094bd3a2ef3c030463aa04fbce8369bfb33be9c.1446897962.git.jamie.bainbridge-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] cifs: Ratelimit kernel log messages [not found] ` <7094bd3a2ef3c030463aa04fbce8369bfb33be9c.1446897962.git.jamie.bainbridge-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2015-11-30 4:07 ` Steve French 0 siblings, 0 replies; 2+ messages in thread From: Steve French @ 2015-11-30 4:07 UTC (permalink / raw) To: Jamie Bainbridge; +Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA repushed to cifs-2.6.git (after finding out that the kbuild test robot warning messages for ARCH=mn10300 is likely not a real problem. On Sat, Nov 7, 2015 at 6:13 AM, Jamie Bainbridge <jamie.bainbridge-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > Under some conditions, CIFS can repeatedly call the cifs_dbg() logging > wrapper. If done rapidly enough, the console framebuffer can softlockup > or "rcu_sched self-detected stall". Apply the built-in log ratelimiters > to prevent such hangs. > > Signed-off-by: Jamie Bainbridge <jamie.bainbridge-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > --- > fs/cifs/cifs_debug.c | 2 +- > fs/cifs/cifs_debug.h | 9 ++++----- > 2 files changed, 5 insertions(+), 6 deletions(-) > > diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c > index 7febcf2475c5ab675c04dfd2fddaa3ed574522a0..50b268483302922ee63d205a2fa560ec27676eed 100644 > --- a/fs/cifs/cifs_debug.c > +++ b/fs/cifs/cifs_debug.c > @@ -50,7 +50,7 @@ void cifs_vfs_err(const char *fmt, ...) > vaf.fmt = fmt; > vaf.va = &args; > > - pr_err("CIFS VFS: %pV", &vaf); > + pr_err_ratelimited("CIFS VFS: %pV", &vaf); > > va_end(args); > } > diff --git a/fs/cifs/cifs_debug.h b/fs/cifs/cifs_debug.h > index f40fbaca1b2a2c1d7457d71bd1a5e7dd4b477859..66cf0f9fff8984cb12eed1c89d91bc9c6ccc6a9d 100644 > --- a/fs/cifs/cifs_debug.h > +++ b/fs/cifs/cifs_debug.h > @@ -51,14 +51,13 @@ __printf(1, 2) void cifs_vfs_err(const char *fmt, ...); > /* information message: e.g., configuration, major event */ > #define cifs_dbg(type, fmt, ...) \ > do { \ > - if (type == FYI) { \ > - if (cifsFYI & CIFS_INFO) { \ > - pr_debug("%s: " fmt, __FILE__, ##__VA_ARGS__); \ > - } \ > + if (type == FYI && cifsFYI & CIFS_INFO) { \ > + pr_debug_ratelimited("%s: " \ > + fmt, __FILE__, ##__VA_ARGS__); \ > } else if (type == VFS) { \ > cifs_vfs_err(fmt, ##__VA_ARGS__); \ > } else if (type == NOISY && type != 0) { \ > - pr_debug(fmt, ##__VA_ARGS__); \ > + pr_debug_ratelimited(fmt, ##__VA_ARGS__); \ > } \ > } while (0) > > -- > 1.9.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-cifs" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Thanks, Steve ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-11-30 4:07 UTC | newest] Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-11-07 12:13 [PATCH] cifs: Ratelimit kernel log messages Jamie Bainbridge [not found] ` <7094bd3a2ef3c030463aa04fbce8369bfb33be9c.1446897962.git.jamie.bainbridge-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-11-30 4:07 ` Steve French
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.