Re: TLB flushing on SGI platforms

From: David Mosberger <>
Date: 2003-12-02 08:42:06
>>>>> On Wed, 26 Nov 2003 09:43:01 -0600, Jack Steiner <> said:

  Jack> The SGI NUMA platform does not use the hardware "ptc" instruction
  Jack> to flush TLBs. Instead, it has to write an MMR on the chipset on each
  Jack> node to cause a TLB flush transaction to be placed on the bus. On
  Jack> large systems, the overhead to broadcast the TLB flush to every node
  Jack> in the system is one of the hot spots in the kernel.

  Jack> In most cases, the TLB context being flushed has been loaded into
  Jack> a small subset of the nodes. Flushing every node is unnecessary.

  Jack> I'm looking for suggestions on the best way to limit TLB flushing so
  Jack> that only the necessary nodes are flushed. Here is patch that
  Jack> I believe will work. I added a bitmask to the mm_context_t to
  Jack> track nodes where the context has been loaded. The TLB flush routine
  Jack> issues the TLB flush requests only to these nodes.

  Jack> Are there other/better ways that I can do this??

Why not use mm->cpu_vm_mask?  It will give you CPU instead of
node-granularity, but if you really want nodes instead, you can do the
mapping in the NUMA-specific code.

To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to
More majordomo info at
Received on Mon Dec 1 16:45:27 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:20 EST