Re: [PATCH 2/4] mm, s390: Ignore MADV_HUGEPAGE on s390 to prevent SIGSEGV in qemu
From: Christian Borntraeger <hidden>
Date: 2014-02-28 11:52:28
Also in:
linux-mm, linux-s390, lkml
On 27/02/14 18:23, Alex Thorlton wrote:
quoted hunk ↗ jump to hunk
As Christian pointed out, the recent 'Revert "thp: make MADV_HUGEPAGE check for mm->def_flags"' breaks qemu, it does QEMU_MADV_HUGEPAGE for all kvm pages but this doesn't work after s390_enable_sie/thp_split_mm. Paolo suggested that instead of failing on the call to madvise, we simply ignore the call (return 0). Reported-by: Christian Borntraeger <redacted> Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Suggested-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Alex Thorlton <redacted> Cc: Gerald Schaefer <redacted> Cc: Martin Schwidefsky <redacted> Cc: Heiko Carstens <redacted> Cc: Christian Borntraeger <redacted> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: "Kirill A. Shutemov" <redacted> Cc: Mel Gorman <mgorman@suse.de> Cc: Rik van Riel <redacted> Cc: Ingo Molnar <mingo@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Andrea Arcangeli <redacted> Cc: Oleg Nesterov <oleg@redhat.com> Cc: "Eric W. Biederman" <redacted> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: linux390@de.ibm.com Cc: linux-s390@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-api@vger.kernel.org --- mm/huge_memory.c | 9 +++++++++ 1 file changed, 9 insertions(+)diff --git a/mm/huge_memory.c b/mm/huge_memory.c index a4310a5..61d234d 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c@@ -1970,6 +1970,15 @@ int hugepage_madvise(struct vm_area_struct *vma, { switch (advice) { case MADV_HUGEPAGE: +#ifdef CONFIG_S390 + /* + * qemu blindly sets MADV_HUGEPAGE on all allocations, but s390 + * can't handle this properly after s390_enable_sie, so we simply + * ignore the madvise to prevent qemu from causing a SIGSEGV. + */ + if (mm_has_pgste(vma->vm_mm)) + return 0; +#endif /* * Be somewhat over-protective like KSM for now! */
Tested-by: Christian Borntraeger <redacted> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>