On 2024/10/26 6:56, Andrew Morton wrote:
On Fri, 25 Oct 2024 08:44:55 +0800 Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> wrote:
When clear gigantic page, it zeros page from the first subpage to
the last subpage, that is, aligned base address is needed in it,
and we don't need to aligned down the address in the caller as the
real address will be passed to process_huge_page().
Matthew just told us that folios con't have subpages
(https://lkml.kernel.org/r/ZxsRCyBSO-C27Uzn@xxxxxxxxxxxxxxxxxxxx).
OK, will change subpage to page.
Please carefully describe the impact of this change. I think it's
"small cleanup and optimization?"
Also, I find the changelog rather hard to follow. I think we're adding
the alignment operation to the callee and hence removing it from the
caller?
Sorry for the confuse, there is some different between gigantic
page(nr_pages > MAX_ORDER_NR_PAGE) and non-gigantic page,
1) for gigantic page, it always clear/copy page from the fist page to
the last page, see copy_user_gigantic_page/clear_gigantic_page, but if
directly pass addr_hint which maybe not the address of the first page,
then if arch's code use this addr_hint to flush cache, it may flush the
wrong cache.
2) for non-gigantic page, it calculate the base address inside, see
process_huge_page, if we passed the wrong addr_hint, it only has
performance impact(not sure, but at least no different on arm64), no
function impact.
Will update the change and resend.