public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* RE: Global Purge Translation Cache on NUM systems
@ 2005-08-25 18:15 Smarduch Mario-CMS063
  2005-08-26  0:38 ` Keith Owens
  0 siblings, 1 reply; 2+ messages in thread
From: Smarduch Mario-CMS063 @ 2005-08-25 18:15 UTC (permalink / raw)
  To: linux-ia64


We've been noticing some TLB issues on 2.4 and 2.6.10 kernels running
on IA64 NUMA architecture. To this end I have some questions regarding
TLB purging, please bare through with the initial introduction.

IA64 Inst Set Manual points out that propogation of ptc.g across local cache coherence domains is platform dependent and must be handled by software. I'm trying to understand how would this work on a ccNUMA and whether or not software beyond what hw offers to propgate a ptc.ga (Purte TC bus transaction) is needed.
 
From my understanding ccNUMA is coherent, but local node bus transactions to remote nodes is supported by some external circuitry like for example directory based cache coherence protocol. Remote transactions may be terminated with deferred or retry responses, while the underlying hw figures out who owns the block runs the 
xaction on that bus and ships it back to the requesting node. So is a whole ccNUMA system considered as a Cache Coherence domain or is each one of the local nodes a cache coherent domain with respect to a purge xaction?
 
When a Purge TC global is issued is hardware responsible for keeping the xaction from completion (TND#
assertion) until the xaction has become visible to all nodes?
 
Is additional software needed to synchronize the purge?
 
Is there a possibility that after a purge is issued on a local node the transaction is completed on the local node but in progress on remote nodes? 
 
- Mario

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

* Re: Global Purge Translation Cache on NUM systems
  2005-08-25 18:15 Global Purge Translation Cache on NUM systems Smarduch Mario-CMS063
@ 2005-08-26  0:38 ` Keith Owens
  0 siblings, 0 replies; 2+ messages in thread
From: Keith Owens @ 2005-08-26  0:38 UTC (permalink / raw)
  To: linux-ia64

On Thu, 25 Aug 2005 13:15:33 -0500, 
Smarduch Mario-CMS063 <CMS063@motorola.com> wrote:
>
>We've been noticing some TLB issues on 2.4 and 2.6.10 kernels running
>on IA64 NUMA architecture. To this end I have some questions regarding
>TLB purging, please bare through with the initial introduction.
>
>IA64 Inst Set Manual points out that propogation of ptc.g across local
>cache coherence domains is platform dependent and must be handled by
>software. I'm trying to understand how would this work on a ccNUMA and
>whether or not software beyond what hw offers to propgate a ptc.ga
>(Purte TC bus transaction) is needed.

See platform_global_tlb_purge.  On ccNUMA boxes it gets defined to a
platform specific routine.  On SGI's SN2, platform_global_tlb_purge
ends up calling sn2_global_tlb_purge().  That routine works out if the
flush is for the current cpu, for a cpu on the same node or for a
remote node and handles the flush accordingly.

>When a Purge TC global is issued is hardware responsible for keeping the xaction from completion (TND#
>assertion) until the xaction has become visible to all nodes?

The platform's tlb purge routine is responsible for synchronization.
It must not return to the caller of platform_global_tlb_purge() until
the tlb has been flushed on all the target nodes.  IOW, software make
non-sync hardware look synchronous.


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

end of thread, other threads:[~2005-08-26  0:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-25 18:15 Global Purge Translation Cache on NUM systems Smarduch Mario-CMS063
2005-08-26  0:38 ` Keith Owens

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox