On Mon, Jun 08, 2026 at 04:37:41AM -0400, Michael S. Tsirkin wrote:
> Same change as the previous patch but for alloc_swap_folio:

Please don't say 'same change as the previous patch' :) explain what you're
doing here. It's a pain to have to go check otherwise.

> pass vmf->address directly instead of ALIGN_DOWN(vmf->address, ...).
>
> Note: NUMA interleave is not affected by the raw address;
> the ilx calculation shifts addr >> PAGE_SHIFT >> order,
> dropping sub-page bits regardless of alignment.

You're expressing the same thing as the last patch differently, but then
eliding other explanations from that?

All the same questions as I asked for the last apply to this also.

And also - if you've now made this a _requirement_ that is broken
otherwise, then aren't these bisection hazards and should be squashed into
the change?...

No patch should break anything at any point.

>
> Signed-off-by: Michael S. Tsirkin <[email protected]>
> Reviewed-by: Gregory Price <[email protected]>
> Assisted-by: Claude:claude-opus-4-6
> Assisted-by: cursor-agent:GPT-5.4-xhigh
> ---
>  mm/memory.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/mm/memory.c b/mm/memory.c
> index 21f640674c4f..6c14b90f558e 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -4750,8 +4750,7 @@ static struct folio *alloc_swap_folio(struct vm_fault 
> *vmf)
>       /* Try allocating the highest of the remaining orders. */
>       gfp = vma_thp_gfp_mask(vma);
>       while (orders) {
> -             addr = ALIGN_DOWN(vmf->address, PAGE_SIZE << order);
> -             folio = vma_alloc_folio(gfp, order, vma, addr);
> +             folio = vma_alloc_folio(gfp, order, vma, vmf->address);
>               if (folio) {
>                       if (!mem_cgroup_swapin_charge_folio(folio, vma->vm_mm,
>                                                           gfp, entry))
> --
> MST
>

Thanks, Lorenzo

Reply via email to