Messages in this thread | | | Date | Mon, 30 Sep 2013 16:18:02 +0100 | From | Mel Gorman <> | Subject | Re: [PATCH 11/63] mm: Close races between THP migration and PMD numa clearing |
| |
On Mon, Sep 30, 2013 at 10:10:48AM -0400, Rik van Riel wrote: > On Mon, 30 Sep 2013 09:52:59 +0100 > Mel Gorman <mgorman@suse.de> wrote: > > > On Fri, Sep 27, 2013 at 02:26:56PM +0100, Mel Gorman wrote: > > > @@ -1732,9 +1732,9 @@ int migrate_misplaced_transhuge_page(struct mm_struct *mm, > > > entry = maybe_pmd_mkwrite(pmd_mkdirty(entry), vma); > > > entry = pmd_mkhuge(entry); > > > > > > - page_add_new_anon_rmap(new_page, vma, haddr); > > > - > > > + pmdp_clear_flush(vma, address, pmd); > > > set_pmd_at(mm, haddr, pmd, entry); > > > + page_add_new_anon_rmap(new_page, vma, haddr); > > > update_mmu_cache_pmd(vma, address, &entry); > > > page_remove_rmap(page); > > > /* > > > > pmdp_clear_flush should have used haddr > > Dang, we both discovered this over the weekend? :) >
Saw it this morning running a debugging build.
> In related news, it looks like update_mmu_cache_pmd should > probably use haddr, too... >
Does anything care? Other calls to update_mmu_cache_pmd are using address and not haddr so if this is a problem, it's a problem in a few places. Of the arches that support THP, only sparc appears to do anything useful and it shifts the address HPAGE_SHIFT so it does not matter if the address was aligned or not.
-- Mel Gorman SUSE Labs
| |