Re: [PATCH v3 3/4] xen/console: add build-time rate-limiting controls
Teddy Astie <[email protected]>
| Newsgroups | org.xenproject.lists.xen-devel |
|---|---|
| Message-ID | <1784195975.8631fc262581453bbf619ec5b2062170.19f6a5e0923000edb5@vates.tech> |
Le 15/07/2026 à 22:24, [email protected] a écrit : > From: Denis Mukhin <[email protected]> > > 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 <[email protected]> > --- > 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 Given that setting 0 to either will disable rate limiting, would it be preferable instead to have a more general PRINTK_RATELIMIT toggle, where : Setting it to true would enable configuration of ms and burst (rejecting 0 if possible). Setting it to false would set both to 0 hence disabling rate limiting by default. And we do something like static const unsigned int printk_ratelimit_ms = IS_ENABLED(CONFIG_PRINTK_RATELIMIT) ? CONFIG_PRINTK_RATELIMIT_MS : 0; (similarly for burst) ? Teddy
OpenPGP_0x660FA9D102CBCFD0.asc
(application/pgp-keys, 2.4 KB)
-----BEGIN PGP PUBLIC KEY BLOCK----- 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 x9fhaZEsniw8/bYgC3igkk5YJiOa =lUIA -----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.asc
(application/pgp-signature, 665 B)
-----BEGIN PGP SIGNATURE----- wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmpYq4YFAwAAAAAACgkQZg+p0QLLz9Cm ugv/XO6Jd+WJkv6cZwvfcaIa72i3lAIXgBdQlY+D2blyATB8rwW2sLkxlRZipqoFrblx3cKsm6Uv QaMUUi+QtcDAvAHkCelSxIEuLaj5J7i6O+vtlcJXu91BP/+2m9bzo9XP6EWwCeQgDeZDXf/v0xiI gggb3wINP9zQA7xcLEdud9fXbrhdSCIbHjIub3fRc6RMZUZYo/CI1h0HxAJd3T8iHQhDuw2SNJE9 52W2VZisYIPzoVs99nbEkLBTY1WSzcAtooMhagroDBLGCugaN2meX3buCeP3WkIKwz3K+fy/NX35 nH/rLPClYF5+fkvXjQkAVovWoDGo3WCtTGFl9zV9tshGtdJK/vuVmE01dj9os3VTzu5y7MK2Qih1 Eq4Rl/K6yiWXUdtP4PBd6cOp8YkEM0TttCDo+Z3jD72GT8/7gGpHAXDqqLoxkcArxLtckkj74uHf m8/EWgY3a7S/V1gigJj2aZAGd1Wmm2+v0C96BSt4qxjG1C0mnnif0N94vpHh =lUII -----END PGP SIGNATURE-----