Re: rate-limited [kernel] debugging messages ?

From: Andrew Thompson <thompsa_at_FreeBSD.org>
Date: Tue, 14 Aug 2012 08:49:56 +1200
On 14 August 2012 08:56, Luigi Rizzo <rizzo_at_iet.unipi.it> wrote:
> In my kernel stuff i tend to define debugging macros of the form
>
>     #define     ND(format, ...)         do {} while (0)
>     #define     D(format, ...)  do { <some useful stuff> } while (0)
>
> so it is convenient to comment them out when not needed anymore.
>
> I have recently tried the following rate-limited version, where the
> first parameter indicates how many lines per second are output at most
>
>     /* rate limited, lps indicates how many per second */
>     #define RD(lps, format, ...)                                \
>         do {                                                    \
>                 static int t0, cnt;                             \
>                 if (t0 != time_second) {                        \
>                         t0 = time_second;                       \
>                         cnt = 0;                                \
>                 }                                               \
>                 if (cnt++ < lps)                                \
>                     D(format, ##__VA_ARGS__);                   \
>         } while (0)
>
> I was wondering if people have better suggestions or perhaps there
> are already similar macros used by other parts of the kernel.
>

See ppsratecheck(), it does most of that already.


Andrew
Received on Mon Aug 13 2012 - 18:49:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:29 UTC