Re: [PATCH 5/8] thp, mm: locking tail page is a bug

From: Hugh Dickins
Date: Thu Jul 18 2013 - 15:59:08 EST


On Wed, 17 Jul 2013, Dave Jones wrote:
> On Wed, Jul 17, 2013 at 05:58:13PM -0700, Hugh Dickins wrote:
> > On Wed, 17 Jul 2013, Dave Hansen wrote:
> > > On 07/17/2013 02:09 PM, Andrew Morton wrote:
> > > > lock_page() is a pretty commonly called function, and I assume quite a
> > > > lot of people run with CONFIG_DEBUG_VM=y.
> > > >
> > > > Is the overhead added by this patch really worthwhile?
> > >
> > > I always thought of it as a developer-only thing. I don't think any of
> > > the big distros turn it on by default.
> >
> > That's how I think of it too (and the problem is often that too few mm
> > developers turn it on); but Dave Jones did confirm last November that
> > Fedora turns it on.
> >
> > I believe Fedora turns it on to help us all, and wouldn't mind a mere
> > VM_BUG_ON(PageTail(page)) in __lock_page() if it's helpful to Kirill.
> >
> > But if VM_BUG_ONs become expensive, I do think it's for Fedora to
> > turn off CONFIG_DEBUG_VM, rather than for mm developers to avoid it.
>
> I'm ambivalent about whether we keep it on or off, we have no shortage
> of bugs to fix already, though I think as mentioned above, very few people
> actually enable it, so we're going to lose a lot of testing.
>
> Another idea, perhaps is an extra config option for more expensive debug options ?

I can't think of any expensive debug under CONFIG_DEBUG_VM at present,
just a little overhead as you'd expect. I don't think checking a page
flag or two in __lock_page() will change that much.

We do tend to make specific debug options for the more expensive ones,
rather than a generic heavy debug option. For example CONFIG_DEBUG_VM_RB,
which checks an mm's entire vma tree whenever a change is made there.

We could group the heavy debug options, like that and CONFIG_PROVE_LOCKING,
into a menu of their own; but I've no appetite for such a change myself!

Hugh
--
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/