Messages in this thread | | | Date | Mon, 24 Jan 2022 10:11:00 -0800 (PST) | From | David Rientjes <> | Subject | Re: [PATCH v2 2/2] mm: fix missing cache flush for all tail pages of THP |
| |
On Mon, 24 Jan 2022, Muchun Song 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?
That aside, should there be a follow-up patch that converts to using flush_dcache_folio()?
> Fixes: 616b8371539a ("mm: thp: enable thp migration in generic path") > Signed-off-by: Muchun Song <songmuchun@bytedance.com> > --- > Changes in v2: > - Using a for loop instead of the folio variant for backportable. > > mm/migrate.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/mm/migrate.c b/mm/migrate.c > index c9296d63878d..c418e8d92b9c 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -933,9 +933,12 @@ static int move_to_new_page(struct page *newpage, struct page *page, > if (!PageMappingFlags(page)) > page->mapping = NULL; > > - if (likely(!is_zone_device_page(newpage))) > - flush_dcache_page(newpage); > + if (likely(!is_zone_device_page(newpage))) { > + int i, nr = compound_nr(newpage); > > + for (i = 0; i < nr; i++) > + flush_dcache_page(newpage + i); > + } > } > out: > return rc; > -- > 2.11.0 > > >
| |