Re: [PATCH] mm/memcg: avoid page count check for zone device

From: Jerome Glisse
Date: Sun Sep 17 2017 - 13:46:22 EST


On Fri, Sep 15, 2017 at 09:01:00AM +0200, Michal Hocko wrote:
> On Thu 14-09-17 15:00:11, jglisse@xxxxxxxxxx wrote:
> > From: Jérôme Glisse <jglisse@xxxxxxxxxx>
> >
> > Fix for 4.14, zone device page always have an elevated refcount
> > of one and thus page count sanity check in uncharge_page() is
> > inappropriate for them.
> >
> > Signed-off-by: Jérôme Glisse <jglisse@xxxxxxxxxx>
> > Reported-by: Evgeny Baskakov <ebaskakov@xxxxxxxxxx>
> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> > Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
> > Cc: Michal Hocko <mhocko@xxxxxxxxxx>
> > Cc: Vladimir Davydov <vdavydov.dev@xxxxxxxxx>
>
> Acked-by: Michal Hocko <mhocko@xxxxxxxx>
>
> Side note. Wouldn't it be better to re-organize the check a bit? It is
> true that this is VM_BUG so it is not usually compiled in but when it
> preferably checks for unlikely cases first while the ref count will be
> 0 in the prevailing cases. So can we have
> VM_BUG_ON_PAGE(page_count(page) && !is_zone_device_page(page) &&
> !PageHWPoison(page), page);
>
> I would simply fold this nano optimization into the patch as you are
> touching it already. Not sure it is worth a separate commit.

I am traveling sorry for late answer. This nano optimization make sense
Andrew do you want me to respin or should we leave it be ? I don't mind
either way.

Cheers,
Jérôme