rate-limited [kernel] debugging messages ?
Andrew Thompson
thompsa at FreeBSD.org
Mon Aug 13 20:49:58 UTC 2012
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
More information about the freebsd-current
mailing list