Re: [PATCH v4 2/3] thp: add HPAGE_PMD_* definitions for !CONFIG_TRANSPARENT_HUGEPAGE
From: Andrew Morton <akpm@linux-foundation.org>
Date: 2012-03-21 22:47:25
Also in:
linux-mm, lkml
From: Andrew Morton <akpm@linux-foundation.org>
Date: 2012-03-21 22:47:25
Also in:
linux-mm, lkml
On Wed, 21 Mar 2012 18:07:41 -0400 Paul Gortmaker [off-list ref] wrote:
On Mon, Mar 12, 2012 at 6:30 PM, Naoya Horiguchi [off-list ref] wrote:quoted
These macros will be used in later patch, where all usage are expected to be optimized away without #ifdef CONFIG_TRANSPARENT_HUGEPAGE. But to detect unexpected usages, we convert existing BUG() to BUILD_BUG().Just a heads up that this showed up in linux-next today as the cause of a new build failure for an ARM board: http://kisskb.ellerman.id.au/kisskb/buildresult/5930053/
The internet started working again. mm/pgtable-generic.c: In function 'pmdp_clear_flush_young': mm/pgtable-generic.c:76: error: call to '__build_bug_failed' declared with attribute error: BUILD_BUG failed I guess we shouldn't be evaluating HPAGE_PMD_MASK at all if !CONFIG_TRANSPARENT_HUGEPAGE, so...
--- a/mm/pgtable-generic.c~thp-add-hpage_pmd_-definitions-for-config_transparent_hugepage-fix
+++ a/mm/pgtable-generic.c@@ -70,10 +70,11 @@ int pmdp_clear_flush_young(struct vm_are unsigned long address, pmd_t *pmdp) { int young; -#ifndef CONFIG_TRANSPARENT_HUGEPAGE +#ifdef CONFIG_TRANSPARENT_HUGEPAGE + VM_BUG_ON(address & ~HPAGE_PMD_MASK); +#else BUG(); #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ - VM_BUG_ON(address & ~HPAGE_PMD_MASK); young = pmdp_test_and_clear_young(vma, address, pmdp); if (young) flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
_