[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <55C37852.8030600@oracle.com>
Date: Thu, 06 Aug 2015 11:08:02 -0400
From: Sasha Levin <sasha.levin@...cle.com>
To: David Rientjes <rientjes@...gle.com>
CC: linux-mm@...ck.org, akpm@...ux-foundation.org,
linux-kernel@...r.kernel.org, kirill@...temov.name
Subject: Re: [PATCH 05/11] mm: debug: dump page into a string rather than
directly on screen
On 07/08/2015 07:58 PM, David Rientjes wrote:
> On Wed, 1 Jul 2015, Sasha Levin wrote:
>
>> > Since we'd BUG at VM_BUG_ON(), this would be something closer to:
>> >
>> > if (unlikely(compound_head(page) != head)) {
>> > dump_page(page);
>> > dump_page(head);
>> > VM_BUG_ON(1);
>> > }
>> >
> I was thinking closer to
>
> if (VM_WARN_ON(compound_head(page) != head)) {
> ...
> BUG();
> }
>
> so we prefix all output with the typical warning diagnostics, emit
> whatever page, vma, etc output we want, and then finally die. The final
> BUG() here would have to be replaced by something that suppresses the
> repeated output.
>
> If it's really just a warning, then no BUG() needed.
How is that simpler than getting it all under VM_BUG()? Just like the regular
WARN() does.
>> > But my point here was that while one *could* do it that way, no one does because
>> > it's not intuitive. We both agree that in the example above it would be useful to
>> > see both 'page' and 'head', and yet the code that was written didn't dump any of
>> > them. Why? No one wants to write debug code unless it's easy and short.
>> >
> pr_alert("%pZp %pZv", page, vma) isn't shorter than dump_page(page);
> dump_vma(vma), but it would be a line shorter. I'm not sure that the
> former is easier, though, and it prevents us from ever expanding dump_*()
> functions for conditional output.
I'm not objecting to leaving dump_*() for these trivial cases.
Thanks,
Sasha
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists