From: Dmitry Safonov <dima@arista.com>
To: linux-kernel@vger.kernel.org
Cc: 0x7f454c46@gmail.com, Dmitry Safonov <dima@arista.com>,
Arnd Bergmann <arnd@arndb.de>, "Theodore Ts'o" <tytso@mit.edu>
Subject: [PATCH 1/2] random: Omit double-printing ratelimit messages
Date: Thu, 10 May 2018 13:52:10 +0100 [thread overview]
Message-ID: <20180510125211.12583-2-dima@arista.com> (raw)
In-Reply-To: <20180510125211.12583-1-dima@arista.com>
Currently "suppressed" messages will be printed once in a second for
unseeded/urandom warnings, but there is already custom message which
says how many warnings are missing. So, let's skip suppressed messages
until crng_init == 2.
P.S.: not sure if there is a value in custom messages, maybe we can just
remove them instead.
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Dmitry Safonov <dima@arista.com>
---
drivers/char/random.c | 6 ++++--
include/linux/ratelimit.h | 10 +++++++---
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/char/random.c b/drivers/char/random.c
index cd888d4ee605..c1c40c7ed0e8 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -440,9 +440,9 @@ static void process_random_ready_list(void);
static void _get_random_bytes(void *buf, int nbytes);
static struct ratelimit_state unseeded_warning =
- RATELIMIT_STATE_INIT("warn_unseeded_randomness", HZ, 3);
+ RATELIMIT_STATE_INIT_FLAGS("warn_unseeded_randomness", HZ, 3, RATELIMIT_MSG_ON_RELEASE);
static struct ratelimit_state urandom_warning =
- RATELIMIT_STATE_INIT("warn_urandom_randomness", HZ, 3);
+ RATELIMIT_STATE_INIT_FLAGS("warn_urandom_randomness", HZ, 3, RATELIMIT_MSG_ON_RELEASE);
static int ratelimit_disable __read_mostly;
@@ -949,12 +949,14 @@ static void crng_reseed(struct crng_state *crng, struct entropy_store *r)
unseeded_warning.missed);
unseeded_warning.missed = 0;
}
+ unseeded_warning.flags = 0;
if (urandom_warning.missed) {
pr_notice("random: %d urandom warning(s) missed "
"due to ratelimiting\n",
urandom_warning.missed);
urandom_warning.missed = 0;
}
+ urandom_warning.flags = 0;
}
}
diff --git a/include/linux/ratelimit.h b/include/linux/ratelimit.h
index 8ddf79e9207a..e9a14a7641e0 100644
--- a/include/linux/ratelimit.h
+++ b/include/linux/ratelimit.h
@@ -23,12 +23,16 @@ struct ratelimit_state {
unsigned long flags;
};
-#define RATELIMIT_STATE_INIT(name, interval_init, burst_init) { \
+#define RATELIMIT_STATE_INIT_FLAGS(name, _interval, _burst, _flags) { \
.lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \
- .interval = interval_init, \
- .burst = burst_init, \
+ .interval = _interval, \
+ .burst = _burst, \
+ .flags = _flags, \
}
+#define RATELIMIT_STATE_INIT(name, _interval, _burst) \
+ RATELIMIT_STATE_INIT_FLAGS(name, _interval, _burst, 0)
+
#define RATELIMIT_STATE_INIT_DISABLED \
RATELIMIT_STATE_INIT(ratelimit_state, 0, DEFAULT_RATELIMIT_BURST)
--
2.13.6
next prev parent reply other threads:[~2018-05-10 12:52 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-10 12:52 [PATCH 0/2] ratelimit: Do not lose messages under limit Dmitry Safonov
2018-05-10 12:52 ` Dmitry Safonov [this message]
2018-05-10 18:19 ` [PATCH 1/2] random: Omit double-printing ratelimit messages Theodore Y. Ts'o
2018-05-10 18:37 ` Dmitry Safonov
2018-05-10 19:40 ` Theodore Y. Ts'o
2018-05-10 19:50 ` Dmitry Safonov
2018-05-11 3:51 ` Theodore Y. Ts'o
2018-05-11 12:41 ` Dmitry Safonov
2018-05-16 15:46 ` Dmitry Safonov
2018-05-16 20:54 ` Theodore Y. Ts'o
2018-05-16 22:11 ` Dmitry Safonov
2018-05-10 12:52 ` [PATCH 2/2] lib/ratelimit: Lockless ratelimiting Dmitry Safonov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180510125211.12583-2-dima@arista.com \
--to=dima@arista.com \
--cc=0x7f454c46@gmail.com \
--cc=arnd@arndb.de \
--cc=linux-kernel@vger.kernel.org \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.