Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Aug 2012 22:56:22 +0200
From:      Luigi Rizzo <rizzo@iet.unipi.it>
To:        current@freebsd.org
Subject:   rate-limited [kernel] debugging messages ?
Message-ID:  <20120813205622.GA85732@onelab2.iet.unipi.it>

index | next in thread | raw e-mail

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.

cheers
luigi


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120813205622.GA85732>