On Fri, 2015-05-22 at 08:08 +0000, Drokin, Oleg wrote:
On May 22, 2015, at 1:06 AM, Julia Lawall wrote:
> On Thu, 21 May 2015, Michael Shuey wrote:
>
>> That's a task (of many) I've been putting on the back burner until the
code
>> is cleaner. It's also a HUGE change, since there are debug macros
>> everywhere, and they all check a #define'd mask to see if they should fire,
>> and the behavior is likely governed by parts of the lustre user land tools
>> as well.
>>
>> Suggestions are welcome. Do other parts of the linux kernel define complex
>> debugging macros like these, or is this a lustre-ism? Any suggestions on
>> how to handle this more in line with existing drivers?
>
> Once you decide what to do, you can use Coccinelle to make the changes for
> you. So you shouldn't be put off by the number of code sites to change.
>
> The normal functions are pr_err, pr_warn, etc. Perhaps you can follow
> Joe's suggestions if you really need something more complicated.
Ideally leaving CERROR/CDEBUG in Lustre would be desirable from my perspective.
My issue with CERROR is the name is little misleading.
It's actually a debugging message.
#define CERROR(format, ...) CDEBUG_LIMIT(D_ERROR, format, ## __VA_ARGS__)
I think it'd be clearer as
lustre_debug(ERROR, ...
even if the name and use style is a little longer.
It allows you fine grained control about what to collect and what to
output
into a (quite finite) kernel buffer (and over a quite slow serial console)
and at the same time if you need more info, there's a buffer you can fetch
separately that can grow much bigger and there's even a way to run a special
daemon to scrub the buffer eagerly so none of it is lost.