Re: [PATCH 1/2] hfs/hfsplus: Convert dprint to hfs_dbg

From: Hin-Tak Leung
Date: Sun Apr 14 2013 - 23:52:19 EST


--- On Mon, 15/4/13, Joe Perches <joe@xxxxxxxxxxx> wrote:

> On Mon, 2013-04-15 at 02:56 +0100,
> Hin-Tak Leung wrote:
> > --- On Mon, 15/4/13, Joe Perches <joe@xxxxxxxxxxx>
> wrote:
> > > On Mon, 2013-04-15 at 01:53 +0100,
> > > Hin-Tak Leung wrote:
> > > > --- On Mon, 8/4/13, Joe Perches <joe@xxxxxxxxxxx>
> wrote:
> > > > > Use a more current logging style.
> > > []
> > > > I have been sitting on a patch which changes
> this part
> > > of the code to dynamic debugging, and it is much
> simplier.
> []
> > > This change wouldn't work well as it would make a
> mess
> > > of output that uses no prefix (ie: emits at
> KERN_DEFAULT)
> > > with output that uses KERN_DEBUG
> > >
> > > That's the reason for _dbg and _dbg_cont.
> >
> > Hmm, I don't get it. Is there any *existing* use of
> dprint
> > in the hfplus code which is affected by your comment?
>
> Code like this prints out currently on a single line at
> KERN_DEFAULT.
>
> @@ -138,16 +138,16 @@ void hfs_bnode_dump(struct hfs_bnode
> *node)
> []
>         for (i =
> be16_to_cpu(desc.num_recs); i >= 0; off -= 2, i--) {
>                
> key_off = hfs_bnode_read_u16(node, off);
> -           
>    dprint(DBG_BNODE_MOD, " %d", key_off);
> +           
>    hfs_dbg_cont(BNODE_MOD, " %d", key_off);
>
> By converting this dprint() to pr_debug(), it would
> print out on a multiple lines, one for each read.
>
> That's why it should use a mechanism like dbg_cont.
>
> btw: there is no current pr_debug_cont mechanism.

That's rubbish. dprint() are compiled in/out debug printing statements, and are entirely suppressed in unmodified kernel source (the value of DBG_MASK being zero). So your rather large and invasive change - which is still conditional on DBG_MASK - is just substituting one form of print nothing to another form of print nothing.

I am not saying what I have in private is correct - otherwise I would have submitted it a long time ago. What I am saying is that the code snipplet I posted is functional: it is not conditional on DBG_MASK, but conditional on the meaning of pr_debug (and only on it), which is either printing indiscriminantly, or on/off switchable at runtime for dynamically enabled kernel. And it is a small and non-invasive change in any case, which I can hang on to indefinitely.

I think the current *implementation* of dprint is bad - it depending on a modification of kernel source and re-compilation to make debug statement visible instead of the default "print nothing". But your patch, which modifies a lot of "print nothing" to another style of "print nothing", has no functional consequence at all. There is no user-visible change. It changes a few hundred lines of print nothing to another few hundred lines of print nothing.




--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/