On Fri, May 15, 2015 at 01:05:27PM +0200, Vlastimil Babka wrote:
On 04/23/2015 11:03 PM, Kirill A. Shutemov wrote:
We need to prepare kernel to allow transhuge pages to be mapped with
ptes too. We need to handle FOLL_SPLIT in follow_page_pte().
Also we use split_huge_page() directly instead of split_huge_page_pmd().
split_huge_page_pmd() will gone.
You still call split_huge_page_pmd() for the is_huge_zero_page(page) case.
For huge zero page we split PMD into table of zero pages and don't touch
compound page under it. That's what split_huge_page_pmd() (renamed into
split_huge_pmd()) will do by the end of patchset.
Also, of the code around split_huge_page() you basically took from
split_huge_page_pmd() and open-coded into follow_page_mask(), you didn't
include the mmu notifier calls. Why are they needed in split_huge_page_pmd()
but not here?
We do need mmu notifier in split_huge_page_pmd() for huge zero page. When
we need to split compound page we go into split_huge_page() which takes
care about mmut notifiers.