Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933485AbYAaQwg (ORCPT ); Thu, 31 Jan 2008 11:52:36 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1759774AbYAaQwX (ORCPT ); Thu, 31 Jan 2008 11:52:23 -0500 Received: from gw.goop.org ([64.81.55.164]:58501 "EHLO mail.goop.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759629AbYAaQwV (ORCPT ); Thu, 31 Jan 2008 11:52:21 -0500 Message-ID: <47A1FCB7.6010101@goop.org> Date: Thu, 31 Jan 2008 08:52:07 -0800 From: Jeremy Fitzhardinge User-Agent: Thunderbird 2.0.0.9 (X11/20071115) MIME-Version: 1.0 To: Ingo Molnar CC: Adrian Bunk , Linus Torvalds , linux-kernel@vger.kernel.org, Andrew Morton , Thomas Gleixner , "H. Peter Anvin" Subject: Re: [git pull] x86 arch updates for v2.6.25 References: <20080130011550.GA31853@elte.hu> <20080131155739.GA19700@cs181133002.pp.htv.fi> <20080131160033.GA11501@elte.hu> <20080131161235.GB19700@cs181133002.pp.htv.fi> <20080131161523.GA12347@elte.hu> <20080131162423.GD19700@cs181133002.pp.htv.fi> <20080131164653.GA24494@elte.hu> In-Reply-To: <20080131164653.GA24494@elte.hu> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3607 Lines: 107 Ingo Molnar wrote: > * Adrian Bunk wrote: > > >>>> What about the breakages caused by commit >>>> a5a19c63f4e55e32dc0bc3d936d7f94793d8b380 (this commit broke the >>>> defconfig compilation on at least avr32, blackfin, sh, sparc and uml)? >>>> >>> the patch below fixes that. >>> >> Is it safe, or why did Jeremy state in the commit >> "I removed this include to avoid an include cycle"? >> > > that is an x86.git complication alone, and only affects 32-bit PAE: it > is solved by the uninlining patch (that i've queued up to before the > asm-generic/tlb.h revert/fix). > > Ingo > > -------------> > Subject: x86: uninline __pte_free_tlb() and __pmd_free_tlb() > From: Ingo Molnar > > this also removes an include file dependency. > Yes, that simplifies things a lot. J > Signed-off-by: Ingo Molnar > --- > arch/x86/mm/pgtable_32.c | 19 +++++++++++++++++++ > include/asm-x86/pgalloc_32.h | 19 ++----------------- > 2 files changed, 21 insertions(+), 17 deletions(-) > > Index: linux/arch/x86/mm/pgtable_32.c > =================================================================== > --- linux.orig/arch/x86/mm/pgtable_32.c > +++ linux/arch/x86/mm/pgtable_32.c > @@ -376,3 +376,22 @@ void check_pgt_cache(void) > { > quicklist_trim(0, pgd_dtor, 25, 16); > } > + > +void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte) > +{ > + paravirt_release_pt(page_to_pfn(pte)); > + tlb_remove_page(tlb, pte); > +} > + > +void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd) > +{ > + /* This is called just after the pmd has been detached from > + the pgd, which requires a full tlb flush to be recognized > + by the CPU. Rather than incurring multiple tlb flushes > + while the address space is being pulled down, make the tlb > + gathering machinery do a full flush when we're done. */ > + tlb->fullmm = 1; > + > + paravirt_release_pd(__pa(pmd) >> PAGE_SHIFT); > + tlb_remove_page(tlb, virt_to_page(pmd)); > +} > Index: linux/include/asm-x86/pgalloc_32.h > =================================================================== > --- linux.orig/include/asm-x86/pgalloc_32.h > +++ linux/include/asm-x86/pgalloc_32.h > @@ -51,11 +51,7 @@ static inline void pte_free(struct page > } > > > -static inline void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte) > -{ > - paravirt_release_pt(page_to_pfn(pte)); > - tlb_remove_page(tlb, pte); > -} > +extern void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte); > > #ifdef CONFIG_X86_PAE > /* > @@ -72,18 +68,7 @@ static inline void pmd_free(pmd_t *pmd) > free_page((unsigned long)pmd); > } > > -static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd) > -{ > - /* This is called just after the pmd has been detached from > - the pgd, which requires a full tlb flush to be recognized > - by the CPU. Rather than incurring multiple tlb flushes > - while the address space is being pulled down, make the tlb > - gathering machinery do a full flush when we're done. */ > - tlb->fullmm = 1; > - > - paravirt_release_pd(__pa(pmd) >> PAGE_SHIFT); > - tlb_remove_page(tlb, virt_to_page(pmd)); > -} > +extern void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd); > > static inline void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd) > { > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/