Anshuman Khandual <anshuman.khand...@arm.com> writes: > On 08/12/2020 07:22 PM, Aneesh Kumar K.V wrote: >> On 8/12/20 7:04 PM, Anshuman Khandual wrote: >>> >>> >>> On 08/12/2020 06:46 PM, Aneesh Kumar K.V wrote: >>>> On 8/12/20 6:33 PM, Anshuman Khandual wrote: >>>>> >>>>> >>>>> On 08/12/2020 12:03 PM, Aneesh Kumar K.V wrote: >>>>>> The seems to be missing quite a lot of details w.r.t allocating >>>>>> the correct pgtable_t page (huge_pte_alloc()), holding the right >>>>>> lock (huge_pte_lock()) etc. The vma used is also not a hugetlb VMA. >>>>>> >>>>>> ppc64 do have runtime checks within CONFIG_DEBUG_VM for most of these. >>>>>> Hence disable the test on ppc64. >>>>> >>>>> This test is free from any platform specific #ifdefs which should >>>>> never be broken. If hugetlb_advanced_tests() does not work or is >>>>> not detailed enough for ppc64, then it would be great if you could >>>>> suggest some improvements so that it works for all enabled platforms. >>>>> >>>>> >>>> >>>> As mentioned the test is broken. For hugetlb, the pgtable_t pages should >>>> be allocated by huge_pte_alloc(). We need to hold huget_pte_lock() beforeĀ >>>> updating huge tlb pte. That takes hugepage size, which is mostly derived >>>> out of vma. Hence vma need to be a hugetlb vma. Some of the functions also >>>> depend on hstate. Also we should use set_huge_pte_at() when setting up >>>> hugetlb pte entries. I was tempted to remove that test completely marking >>>> it broken. But avoided that by marking it broken on only PPC64. >>> >>> The test is not broken, hugetlb helpers on multiple platforms dont complain >>> about >>> this at all. The tests here emulate 'enough' MM objects required for the >>> helpers >>> on enabled platforms, to perform the primary task i.e page table >>> transformation it >>> is expected to do. The test does not claim to emulate a perfect MM >>> environment for >>> a given subsystem's (like HugeTLB) arch helpers. Now in this case, the MM >>> objects >>> being emulated for the HugeTLB advanced tests does not seem to be >>> sufficient for >>> ppc64 but it can be improved. But that does not mean it is broken in it's >>> current >>> form for other platforms. >>> >> >> There is nothing ppc64 specific here. It is just that we have >> CONFIG_DEBUG_VM based checks for different possibly wrong usages of these >> functions. This was done because we have different page sizes, two different >> translations to support and we want to avoid any wrong usage. IMHO expecting >> hugetlb page table helpers to work with a non hugetlb VMA andĀ without >> holding hugeTLB pte lock is a clear violation of hugetlb interface. > > Do you have a modified version of the test with HugeTLB marked VMA and with > pte lock > held, which works on ppc664 ?
Nope. That is one of the reason I commented that out. We can sort that out slowly. -aneesh