Re: [PATCH v2 2/2] mm: fix missing cache flush for all tail pages of THP

From: David Rientjes
Date: Tue Jan 25 2022 - 02:04:29 EST


On Mon, 24 Jan 2022, Zi Yan wrote:

> >> The D-cache maintenance inside move_to_new_page() only consider one page,
> >> there is still D-cache maintenance issue for tail pages of THP. Fix this
> >> by not using flush_dcache_folio() since it is not backportable.
> >>
> >
> > The mention of being backportable suggests that we should backport this,
> > likely to 4.14+. So should it be marked as stable?
>
> Hmm, after more digging, I am not sure if the bug exists. For THP migration,
> flush_cache_range() is used in remove_migration_pmd(). The flush_dcache_page()
> was added by Lars Persson (cc’d) to solve the data corruption on MIPS[1],
> but THP migration is only enabled on x86_64, PPC_BOOK3S_64, and ARM64.
>
> To make code more consistent, I guess flush_cache_range() in remove_migration_pmd()
> can be removed, since it is superseded by the flush_dcache_page() below.
>
> The Fixes can be dropped. Let me know if I miss anything.
>

Yeah, I don't think the Fixes needs to exist here because there doesn't
appear to be an issue today. We likely need to choose one of the two
paths from above to handle the flush only in a single place.