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>

next in thread | raw e-mail | index | archive | help
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



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