[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1495216887-3175-1-git-send-email-jglisse@redhat.com>
Date: Fri, 19 May 2017 14:01:26 -0400
From: Jérôme Glisse <jglisse@...hat.com>
To: <linux-kernel@...r.kernel.org>, linux-mm@...ck.org
Cc: Jérôme Glisse <jglisse@...hat.com>,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Ingo Molnar <mingo@...nel.org>, Michal Hocko <mhocko@...e.com>,
Mel Gorman <mgorman@...e.de>
Subject: [PATCH] x86/mm: pgds getting out of sync after memory hot remove
After memory hot remove it seems we do not synchronize pgds for kernel
virtual memory range (on vmemmap_free()). This seems bogus to me as it
means we are left with stall entry for process with mm != mm_init
Yet i am puzzle by the fact that i am only now hitting this issue. It
never was an issue with 4.12 or before ie HMM never triggered following
BUG_ON inside sync_global_pgds():
if (!p4d_none(*p4d_ref) && !p4d_none(*p4d))
BUG_ON(p4d_page_vaddr(*p4d) != p4d_page_vaddr(*p4d_ref));
It seems that Kirill 5 level page table changes play a role in this
behavior change. I could not bisect because HMM is painfull to rebase
for each bisection step so that is just my best guess.
Am i missing something here ? Am i wrong in assuming that should sync
pgd on vmemmap_free() ? If so anyone have a good guess on why i am now
seeing the above BUG_ON ?
Cc: Kirill A. Shutemov <kirill.shutemov@...ux.intel.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>
Cc: Ingo Molnar <mingo@...nel.org>
Cc: Michal Hocko <mhocko@...e.com>
Cc: Mel Gorman <mgorman@...e.de>
Jérôme Glisse (1):
x86/mm: synchronize pgd in vmemmap_free()
arch/x86/mm/init_64.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
--
2.4.11
Powered by blists - more mailing lists