All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH]SPARC v9: __tsb_context_switch - demap old tsb_map_vaddr
@ 2010-10-05 19:57 Kirill Tkhai
  2010-10-05 20:38 ` David Miller
  0 siblings, 1 reply; 2+ messages in thread
From: Kirill Tkhai @ 2010-10-05 19:57 UTC (permalink / raw)
  To: sparclinux

SPARC v9: __tsb_context_switch - demap old tsb_map_vaddr
---
When TSB context switches in the function switch_mm() the following
situation could occur. We have old mapping between physical address
and tsb_map_vaddr in uTLB, and new mapping is written in fDTLB.
Because uDTLB has more priority than fDTLB, all transformations
occur through it, and TSB Pointer in tl0_damiss will be formed with
the wrong physical address. To prevent this, we need to flush old
tsb_map_vaddr (TSB_BASE) in TLB. Kernel version 2.6.35.7.


Signed-off-by: Tkhai Kirill <tkhai@yandex.ru>
---

--- arch/sparc/kernel/tsb.S.orig 2010-10-05 19:46:55.272218523 +0400
+++ arch/sparc/kernel/tsb.S 2010-10-05 19:48:56.136235329 +0400
@@ -396,6 +396,9 @@ __tsb_context_switch:

 2:	ldx	[%o1 + TSB_CONFIG_MAP_VADDR], %o4
 	brz	%o4, 9f
+	or	%o4, 1 << 5, %o5
+	stxa	%g0, [%o5] ASI_DMMU_DEMAP
+	membar	#Sync
 	 ldx	[%o1 + TSB_CONFIG_MAP_PTE], %o5
 
 	sethi	%hi(sparc64_highest_unlocked_tlb_ent), %g2


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH]SPARC v9: __tsb_context_switch - demap old tsb_map_vaddr
  2010-10-05 19:57 [PATCH]SPARC v9: __tsb_context_switch - demap old tsb_map_vaddr Kirill Tkhai
@ 2010-10-05 20:38 ` David Miller
  0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2010-10-05 20:38 UTC (permalink / raw)
  To: sparclinux

From: Kirill Tkhai <tkhai@yandex.ru>
Date: Tue, 05 Oct 2010 23:57:56 +0400

> When TSB context switches in the function switch_mm() the following
> situation could occur. We have old mapping between physical address
> and tsb_map_vaddr in uTLB, and new mapping is written in fDTLB.
> Because uDTLB has more priority than fDTLB, all transformations
> occur through it, and TSB Pointer in tl0_damiss will be formed with
> the wrong physical address. To prevent this, we need to flush old
> tsb_map_vaddr (TSB_BASE) in TLB. Kernel version 2.6.35.7.
> 
> 
> Signed-off-by: Tkhai Kirill <tkhai@yandex.ru>

By all pieces of documentation that exist, the uTLB only handles
instruction stream accesses.

Therefore, this patch should not be necessary.

Unless you can show me where in the UltraSPARC documentation it states
that the uTLB is used for data accesses, I am not applying this patch :)

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-10-05 20:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-05 19:57 [PATCH]SPARC v9: __tsb_context_switch - demap old tsb_map_vaddr Kirill Tkhai
2010-10-05 20:38 ` David Miller

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.