Re: [PATCH v1] mm: thp: check pmd_trans_unstable() after split_huge_pmd()

From: Naoya Horiguchi
Date: Wed Jun 01 2016 - 20:39:54 EST

On Wed, Jun 01, 2016 at 12:39:57PM +0300, Kirill A. Shutemov wrote:
> On Wed, Jun 01, 2016 at 09:36:40AM +0900, Naoya Horiguchi wrote:
> > split_huge_pmd() doesn't guarantee that the pmd is normal pmd pointing to
> > pte entries, which can be checked with pmd_trans_unstable().
> Could you be more specific on when we don't have normal ptes after
> split_huge_pmd? Race with other thread? DAX?

Actually I don't have any such specific case in mind.
__split_huge_pmd could skip real split code. In most case the skip happens
when the pmd is already split and pointing to normal ptes, and I'm not sure
when the pmd could be none or bad ...

So my above description seems misstatement, I should say "some caller does
assertion and some does differently and some not, so let's do it in unified

- Naoya

> I guess we can modify split_huge_pmd() to return if the pmd was split or
> not.