On 08/27/2017 05:48 AM, Kirill A. Shutemov wrote: >> + /* Transparent huge pages are not supported. */ >> + if (unlikely(pmd_trans_huge(*pmd))) >> + goto out_walk; > That's looks like a blocker to me. > > Is there any problem with making it supported (besides plain coding)?
IIUC we would have to reattempt once for each PMD level fault because of the lack of a page table entry there. Besides do we want to support huge pages in general as part of speculative page fault path ? The number of faults will be very less (256 times lower on POWER and 512 times lower on X86). So is it worth it ? BTW calling hugetlb_fault() after figuring out the VMA, works correctly inside handle_speculative _fault() last time I checked.