[PATCH] powerpc/npu: Cleanup MMIO ATSD flushing
Aneesh Kumar K.V
aneesh.kumar at linux.vnet.ibm.com
Thu Nov 16 17:24:22 AEDT 2017
Balbir Singh <bsingharora at gmail.com> writes:
+ address = start;
> + do {
> + local_irq_disable();
> + find_linux_pte(mm->pgd, address, &is_thp, &hshift);
> + if (!is_thp)
> + shift = PAGE_SHIFT;
It can still be hugetlb if is_thp is false.
> + else if (hshift && !is_thp)
> + shift = hshift;
> +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
> + else
> + shift = HPAGE_PMD_SIZE;
That is wrong. I guess it should be shift = HPAGE_PMD_SHIFT. But i am
not sure we need to make it this complex at all. See below.
> +#else
> + else {
> + shift = PAGE_SHIFT;
> + pr_warn_once("unsupport page size for mm %p,addr %lx\n",
> + mm, start);
> + }
> +#endif
I am still not sure this is correct from a pure page table walking
point. Why not
if (hshift)
shift = hshift;
else
shift = PAGE_SHIFT;
if you didn't want to differentiate between thp and hugetlb mapping you
can drop is_thp completely.
-aneesh
More information about the Linuxppc-dev
mailing list