From: Peter Zijlstra <peterz@infradead.org> To: Catalin Marinas <catalin.marinas@arm.com> Cc: Andrea Arcangeli <aarcange@redhat.com>, Thomas Gleixner <tglx@linutronix.de>, Rik van Riel <riel@redhat.com>, Ingo Molnar <mingo@elte.hu>, akpm@linux-foundation.org, Linus Torvalds <torvalds@linux-foundation.org>, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, Benjamin Herrenschmidt <benh@kernel.crashing.org>, David Miller <davem@davemloft.net>, Hugh Dickins <hugh.dickins@tiscali.co.uk>, Mel Gorman <mel@csn.ul.ie>, Nick Piggin <npiggin@kernel.dk>, Russell King <rmk@arm.linux.org.uk>, Chris Metcalf <cmetcalf@tilera.com>, Martin Schwidefsky <schwidefsky@de.ibm.com> Subject: Re: [RFC][PATCH 4/6] arm, mm: Convert arm to generic tlb Date: Wed, 09 Mar 2011 16:48:09 +0100 [thread overview] Message-ID: <1299685689.2308.3113.camel@twins> (raw) In-Reply-To: <1299685150.2308.3097.camel@twins> On Wed, 2011-03-09 at 16:39 +0100, Peter Zijlstra wrote: > > Ok, will try and sort that out. We could do something like the below and use the end passed down, which because it goes top down should be clipped at the appropriate size, just means touching all the p??_free_tlb() implementations ;-) Will do on the next iteration ;-) --- diff --git a/mm/memory.c b/mm/memory.c index 5823698..833bd90 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -222,11 +222,11 @@ void pmd_clear_bad(pmd_t *pmd) * has been handled earlier when unmapping all the memory regions. */ static void free_pte_range(struct mmu_gather *tlb, pmd_t *pmd, - unsigned long addr) + unsigned long addr, unsigned long end) { pgtable_t token = pmd_pgtable(*pmd); pmd_clear(pmd); - pte_free_tlb(tlb, token, addr); + pte_free_tlb(tlb, token, addr, end); tlb->mm->nr_ptes--; } @@ -244,7 +244,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud, next = pmd_addr_end(addr, end); if (pmd_none_or_clear_bad(pmd)) continue; - free_pte_range(tlb, pmd, addr); + free_pte_range(tlb, pmd, addr, next); } while (pmd++, addr = next, addr != end); start &= PUD_MASK; @@ -260,7 +260,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud, pmd = pmd_offset(pud, start); pud_clear(pud); - pmd_free_tlb(tlb, pmd, start); + pmd_free_tlb(tlb, pmd, start, end); } static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, @@ -293,7 +293,7 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, pud = pud_offset(pgd, start); pgd_clear(pgd); - pud_free_tlb(tlb, pud, start); + pud_free_tlb(tlb, pud, start, end); } /*
WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <peterz@infradead.org> To: Catalin Marinas <catalin.marinas@arm.com> Cc: Andrea Arcangeli <aarcange@redhat.com>, Thomas Gleixner <tglx@linutronix.de>, Rik van Riel <riel@redhat.com>, Ingo Molnar <mingo@elte.hu>, akpm@linux-foundation.org, Linus Torvalds <torvalds@linux-foundation.org>, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, Benjamin Herrenschmidt <benh@kernel.crashing.org>, David Miller <davem@davemloft.net>, Hugh Dickins <hugh.dickins@tiscali.co.uk>, Mel Gorman <mel@csn.ul.ie>, Nick Piggin <npiggin@kernel.dk>, Russell King <rmk@arm.linux.org.uk>, Chris Metcalf <cmetcalf@tilera.com>, Martin Schwidefsky <schwidefsky@de.ibm.com> Subject: Re: [RFC][PATCH 4/6] arm, mm: Convert arm to generic tlb Date: Wed, 09 Mar 2011 16:48:09 +0100 [thread overview] Message-ID: <1299685689.2308.3113.camel@twins> (raw) In-Reply-To: <1299685150.2308.3097.camel@twins> On Wed, 2011-03-09 at 16:39 +0100, Peter Zijlstra wrote: > > Ok, will try and sort that out. We could do something like the below and use the end passed down, which because it goes top down should be clipped at the appropriate size, just means touching all the p??_free_tlb() implementations ;-) Will do on the next iteration ;-) --- diff --git a/mm/memory.c b/mm/memory.c index 5823698..833bd90 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -222,11 +222,11 @@ void pmd_clear_bad(pmd_t *pmd) * has been handled earlier when unmapping all the memory regions. */ static void free_pte_range(struct mmu_gather *tlb, pmd_t *pmd, - unsigned long addr) + unsigned long addr, unsigned long end) { pgtable_t token = pmd_pgtable(*pmd); pmd_clear(pmd); - pte_free_tlb(tlb, token, addr); + pte_free_tlb(tlb, token, addr, end); tlb->mm->nr_ptes--; } @@ -244,7 +244,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud, next = pmd_addr_end(addr, end); if (pmd_none_or_clear_bad(pmd)) continue; - free_pte_range(tlb, pmd, addr); + free_pte_range(tlb, pmd, addr, next); } while (pmd++, addr = next, addr != end); start &= PUD_MASK; @@ -260,7 +260,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud, pmd = pmd_offset(pud, start); pud_clear(pud); - pmd_free_tlb(tlb, pmd, start); + pmd_free_tlb(tlb, pmd, start, end); } static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, @@ -293,7 +293,7 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, pud = pud_offset(pgd, start); pgd_clear(pgd); - pud_free_tlb(tlb, pud, start); + pud_free_tlb(tlb, pud, start, end); } /* -- 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/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-03-09 15:49 UTC|newest] Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-03-02 17:59 [RFC][PATCH 0/6] mm: Unify TLB gather implementations Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 17:59 ` [RFC][PATCH 1/6] mm: Optimize fullmm TLB flushing Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 17:59 ` [RFC][PATCH 2/6] mm: Change flush_tlb_range() to take an mm_struct Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 19:19 ` Linus Torvalds 2011-03-02 19:19 ` Linus Torvalds 2011-03-02 20:58 ` Rik van Riel 2011-03-02 20:58 ` Rik van Riel 2011-03-02 21:40 ` Peter Zijlstra 2011-03-02 21:40 ` Peter Zijlstra 2011-03-02 21:47 ` David Miller 2011-03-02 21:47 ` David Miller 2011-03-03 17:22 ` Chris Metcalf 2011-03-03 17:22 ` Chris Metcalf 2011-03-03 17:22 ` Chris Metcalf 2011-03-03 18:45 ` David Miller 2011-03-03 18:45 ` David Miller 2011-03-03 18:56 ` Chris Metcalf 2011-03-03 18:56 ` Chris Metcalf 2011-03-03 18:56 ` Chris Metcalf 2011-03-10 18:05 ` [PATCH] arch/tile: optimize icache flush Chris Metcalf 2011-03-10 18:05 ` Chris Metcalf 2011-03-10 18:05 ` Chris Metcalf 2011-03-10 23:19 ` Rik van Riel 2011-03-10 23:19 ` Rik van Riel 2011-03-02 17:59 ` [RFC][PATCH 3/6] mm: Provide generic range tracking and flushing Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 17:59 ` [RFC][PATCH 4/6] arm, mm: Convert arm to generic tlb Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-09 15:16 ` Catalin Marinas 2011-03-09 15:16 ` Catalin Marinas 2011-03-09 15:19 ` Peter Zijlstra 2011-03-09 15:19 ` Peter Zijlstra 2011-03-09 15:36 ` Catalin Marinas 2011-03-09 15:36 ` Catalin Marinas 2011-03-09 15:39 ` Peter Zijlstra 2011-03-09 15:39 ` Peter Zijlstra 2011-03-09 15:48 ` Peter Zijlstra [this message] 2011-03-09 15:48 ` Peter Zijlstra 2011-03-09 16:34 ` Catalin Marinas 2011-03-09 16:34 ` Catalin Marinas 2012-05-17 3:05 ` Paul Mundt 2012-05-17 3:05 ` Paul Mundt 2012-05-17 9:30 ` Catalin Marinas 2012-05-17 9:30 ` Catalin Marinas 2012-05-17 9:39 ` Catalin Marinas 2012-05-17 9:39 ` Catalin Marinas 2012-05-17 9:51 ` Russell King 2012-05-17 9:51 ` Russell King 2012-05-17 11:28 ` Peter Zijlstra 2012-05-17 11:28 ` Peter Zijlstra 2012-05-17 12:14 ` Catalin Marinas 2012-05-17 12:14 ` Catalin Marinas 2012-05-17 16:00 ` Catalin Marinas 2012-05-17 16:00 ` Catalin Marinas 2012-05-17 16:24 ` Peter Zijlstra 2012-05-17 16:24 ` Peter Zijlstra 2012-05-17 16:33 ` Peter Zijlstra 2012-05-17 16:33 ` Peter Zijlstra 2012-05-17 16:44 ` Peter Zijlstra 2012-05-17 16:44 ` Peter Zijlstra 2012-05-17 16:59 ` Peter Zijlstra 2012-05-17 16:59 ` Peter Zijlstra 2012-05-17 17:01 ` Catalin Marinas 2012-05-17 17:01 ` Catalin Marinas 2012-05-17 17:11 ` Peter Zijlstra 2012-05-17 17:11 ` Peter Zijlstra 2012-05-21 7:47 ` Martin Schwidefsky 2012-05-21 7:47 ` Martin Schwidefsky 2012-05-17 17:22 ` Russell King 2012-05-17 17:22 ` Russell King 2012-05-17 18:31 ` Catalin Marinas 2012-05-17 18:31 ` Catalin Marinas 2011-03-02 17:59 ` [RFC][PATCH 5/6] ia64, mm: Convert ia64 " Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 17:59 ` [RFC][PATCH 6/6] sh, mm: Convert sh " Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra 2011-03-02 17:59 ` Peter Zijlstra
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1299685689.2308.3113.camel@twins \ --to=peterz@infradead.org \ --cc=aarcange@redhat.com \ --cc=akpm@linux-foundation.org \ --cc=benh@kernel.crashing.org \ --cc=catalin.marinas@arm.com \ --cc=cmetcalf@tilera.com \ --cc=davem@davemloft.net \ --cc=hugh.dickins@tiscali.co.uk \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mel@csn.ul.ie \ --cc=mingo@elte.hu \ --cc=npiggin@kernel.dk \ --cc=riel@redhat.com \ --cc=rmk@arm.linux.org.uk \ --cc=schwidefsky@de.ibm.com \ --cc=tglx@linutronix.de \ --cc=torvalds@linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.