|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3 3/4] xen/console: add build-time rate-limiting controls
From: Denis Mukhin <dmukhin@xxxxxxxx>
Introduce CONFIG_PRINTK_RATELIMIT_MS and CONFIG_PRINTK_RATELIMIT_BURST
for configuring rate-limiting policy at the compile time.
Use symbols for global rate-limiting initialization in the console driver.
Signed-off-by: Denis Mukhin <dmukhin@xxxxxxxx>
---
Changes since v2:
- moved rate-limiting controls to common/Kconfig
---
xen/common/Kconfig | 29 +++++++++++++++++++++++++++++
xen/drivers/char/console.c | 6 ++++--
2 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index da80fdba8469..fd22806884e0 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -672,4 +672,33 @@ config PM_STATS
Enable collection of performance management statistics to aid in
analyzing and tuning power/performance characteristics of the system
+menu "Console rate-limiting"
+
+config PRINTK_RATELIMIT_MS
+ int "printk rate-limiting time window (milliseconds)"
+ default 5000
+ help
+ Specifies the time window, in milliseconds, for rate-limited printk
+ messages. No more than `CONFIG_PRINTK_RATELIMIT_BURST` messages will
be
+ printed within this window.
+
+ Setting this value to 0 disables rate-limiting entirely.
+
+ Rate-limited messages are those controlled by the `loglvl` and
+ `guest_loglvl` command-line parameters.
+
+config PRINTK_RATELIMIT_BURST
+ int "printk rate-limited message burst size"
+ default 10
+ help
+ Defines the maximum number of rate-limited printk messages that may be
+ printed within each `CONFIG_PRINTK_RATELIMIT_MS` time window.
+
+ Setting this value to 0 disables rate-limiting entirely.
+
+ Rate-limited messages are those controlled by the `loglvl` and
+ `guest_loglvl` command-line parameters.
+
+endmenu
+
endmenu
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index de9f2432445d..a9520f5521e4 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -1323,10 +1323,12 @@ bool __printk_ratelimit(unsigned int ratelimit_ms,
}
/* Minimum time in ms between messages */
-static const unsigned int printk_ratelimit_ms = 5 * 1000;
+static const unsigned int printk_ratelimit_ms =
+ CONFIG_PRINTK_RATELIMIT_MS;
/* Number of messages we send before ratelimiting */
-static const unsigned int printk_ratelimit_burst = 10;
+static const unsigned int printk_ratelimit_burst =
+ CONFIG_PRINTK_RATELIMIT_BURST;
bool printk_ratelimit(void)
{
--
2.54.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |