<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/microblaze/include/asm/tlb.h, branch master</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=master</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2020-02-25T11:33:19Z</updated>
<entry>
<title>microblaze: Remove architecture tlb.h and use generic one</title>
<updated>2020-02-25T11:33:19Z</updated>
<author>
<name>Michal Simek</name>
<email>michal.simek@xilinx.com</email>
</author>
<published>2020-01-20T10:40:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=59d85c0a369672aeb08b911c26516801672af72c'/>
<id>urn:sha1:59d85c0a369672aeb08b911c26516801672af72c</id>
<content type='text'>
There is no reason to have this empty file if it is just link to
asm-generic/tlb.h.

Signed-off-by: Michal Simek &lt;michal.simek@xilinx.com&gt;
Reviewed-by: Stefan Asserhall &lt;stefan.asserhall@xilinx.com&gt;
Reviewed-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
</entry>
<entry>
<title>arch/tlb: Clean up simple architectures</title>
<updated>2019-04-03T08:32:54Z</updated>
<author>
<name>Peter Zijlstra</name>
<email>peterz@infradead.org</email>
</author>
<published>2018-09-04T15:04:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6137fed0823247e32306bde2b48cac627c24f894'/>
<id>urn:sha1:6137fed0823247e32306bde2b48cac627c24f894</id>
<content type='text'>
For the architectures that do not implement their own tlb_flush() but
do already use the generic mmu_gather, there are two options:

 1) the platform has an efficient flush_tlb_range() and
    asm-generic/tlb.h doesn't need any overrides at all.

 2) the platform lacks an efficient flush_tlb_range() and
    we select MMU_GATHER_NO_RANGE to minimize full invalidates.

Convert all 'simple' architectures to one of these two forms.

alpha:	    has no range invalidate -&gt; 2
arc:	    already used flush_tlb_range() -&gt; 1
c6x:	    has no range invalidate -&gt; 2
hexagon:    has an efficient flush_tlb_range() -&gt; 1
            (flush_tlb_mm() is in fact a full range invalidate,
	     so no need to shoot down everything)
m68k:	    has inefficient flush_tlb_range() -&gt; 2
microblaze: has no flush_tlb_range() -&gt; 2
mips:	    has efficient flush_tlb_range() -&gt; 1
	    (even though it currently seems to use flush_tlb_mm())
nds32:	    already uses flush_tlb_range() -&gt; 1
nios2:	    has inefficient flush_tlb_range() -&gt; 2
	    (no limit on range iteration)
openrisc:   has inefficient flush_tlb_range() -&gt; 2
	    (no limit on range iteration)
parisc:	    already uses flush_tlb_range() -&gt; 1
sparc32:    already uses flush_tlb_range() -&gt; 1
unicore32:  has inefficient flush_tlb_range() -&gt; 2
	    (no limit on range iteration)
xtensa:	    has efficient flush_tlb_range() -&gt; 1

Note this also fixes a bug in the existing code for a number
platforms. Those platforms that did:

  tlb_end_vma() -&gt; if (!full_mm) flush_tlb_*()
  tlb_flush -&gt; if (full_mm) flush_tlb_mm()

missed the case of shift_arg_pages(), which doesn't have @fullmm set,
nor calls into tlb_*vma(), but still frees page-tables and thus needs
an invalidate. The new code handles this by detecting a non-empty
range, and either issuing the matching range invalidate or a full
invalidate, depending on the capabilities.

No change in behavior intended.

Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Andy Lutomirski &lt;luto@kernel.org&gt;
Cc: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Dave Hansen &lt;dave.hansen@linux.intel.com&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Cc: Greentime Hu &lt;green.hu@gmail.com&gt;
Cc: Guan Xuetao &lt;gxt@pku.edu.cn&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Helge Deller &lt;deller@gmx.de&gt;
Cc: Jonas Bonn &lt;jonas@southpole.se&gt;
Cc: Ley Foon Tan &lt;lftan@altera.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Mark Salter &lt;msalter@redhat.com&gt;
Cc: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Cc: Michal Simek &lt;monstr@monstr.eu&gt;
Cc: Nick Piggin &lt;npiggin@gmail.com&gt;
Cc: Paul Burton &lt;paul.burton@mips.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Richard Henderson &lt;rth@twiddle.net&gt;
Cc: Richard Kuo &lt;rkuo@codeaurora.org&gt;
Cc: Rik van Riel &lt;riel@surriel.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Vineet Gupta &lt;vgupta@synopsys.com&gt;
Cc: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>mmu_gather: move minimal range calculations into generic code</title>
<updated>2014-11-17T10:12:42Z</updated>
<author>
<name>Will Deacon</name>
<email>will.deacon@arm.com</email>
</author>
<published>2014-10-29T10:03:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=fb7332a9fedfd62b1ba6530c86f39f0fa38afd49'/>
<id>urn:sha1:fb7332a9fedfd62b1ba6530c86f39f0fa38afd49</id>
<content type='text'>
On architectures with hardware broadcasting of TLB invalidation messages
, it makes sense to reduce the range of the mmu_gather structure when
unmapping page ranges based on the dirty address information passed to
tlb_remove_tlb_entry.

arm64 already does this by directly manipulating the start/end fields
of the gather structure, but this confuses the generic code which
does not expect these fields to change and can end up calculating
invalid, negative ranges when forcing a flush in zap_pte_range.

This patch moves the minimal range calculation out of the arm64 code
and into the generic implementation, simplifying zap_pte_range in the
process (which no longer needs to care about start/end, since they will
point to the appropriate ranges already). With the range being tracked
by core code, the need_flush flag is dropped in favour of checking that
the end of the range has actually been set.

Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Russell King - ARM Linux &lt;linux@arm.linux.org.uk&gt;
Cc: Michal Simek &lt;monstr@monstr.eu&gt;
Acked-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>microblaze: Fix missing pagemap.h</title>
<updated>2011-01-16T13:29:21Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2011-01-16T12:50:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1947fc1d51fa7c21e9c253d37d076ef6f4d73130'/>
<id>urn:sha1:1947fc1d51fa7c21e9c253d37d076ef6f4d73130</id>
<content type='text'>
Add missing linux/pagemap.h to solve compilation error.

Error log:
In file included from linux/arch/microblaze/include/asm/tlb.h:17,
                 from mm/pgtable-generic.c:9:
include/asm-generic/tlb.h: In function 'tlb_flush_mmu':
include/asm-generic/tlb.h:76: error: implicit declaration of function 'release_pages'
include/asm-generic/tlb.h: In function 'tlb_remove_page':
include/asm-generic/tlb.h:105: error: implicit declaration of function 'page_cache_release'

Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze: Define tlb_flush macro</title>
<updated>2009-07-27T05:39:53Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2009-07-09T09:33:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=efffde36d20613d91a5ea9529b03f477077f41ea'/>
<id>urn:sha1:efffde36d20613d91a5ea9529b03f477077f41ea</id>
<content type='text'>
This fix remove bug which we had till now in all
Microblaze MMU code. Primary tested on mmap01 LTP test.
We forget to flush invalid tlb which were changed - we
used them and there were wrong old data which wasn't correct.

Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze_mmu_v2: Update tlb.h and tlbflush.h</title>
<updated>2009-05-26T14:45:19Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2009-05-26T14:30:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=45be7d46a9928c6b8ed747e020748500da7e66f1'/>
<id>urn:sha1:45be7d46a9928c6b8ed747e020748500da7e66f1</id>
<content type='text'>
Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze_v8: memory inicialization, MMU, TLB</title>
<updated>2009-03-27T13:25:29Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2009-03-27T13:25:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a95d0e1602f9f3ab54c7dbc9727bf22095705d1e'/>
<id>urn:sha1:a95d0e1602f9f3ab54c7dbc9727bf22095705d1e</id>
<content type='text'>
Reviewed-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Acked-by: John Linn &lt;john.linn@xilinx.com&gt;
Acked-by: Stephen Neuendorffer &lt;stephen.neuendorffer@xilinx.com&gt;
Acked-by: John Williams &lt;john.williams@petalogix.com&gt;
Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
</feed>
