DiscontiguousMemorySupport

From Linux PARISC Wiki
(Difference between revisions)
Jump to: navigation, search
(Created page with "= Discontiguous Memory Support = Several PA-RISC machines have large memory holes in their memory maps. e.g. Astro-based machines, the N-class, and the new zx1-based PA8800 m...")
 
m (formatting update)
 
Line 10: Line 10:
 
Normally Linux uses a single contiguous memory map to address all the physical memory in a machine. In order to support discontiguous memory, several memory maps representing each contiguous segment of memory are created. Each of these segments is called a "node". From the above memory maps, we can see that each 1GB can only belong to one region (node), so we can create an index table for pfn to nid lookup.
 
Normally Linux uses a single contiguous memory map to address all the physical memory in a machine. In order to support discontiguous memory, several memory maps representing each contiguous segment of memory are created. Each of these segments is called a "node". From the above memory maps, we can see that each 1GB can only belong to one region (node), so we can create an index table for pfn to nid lookup.
  
[[http://lists.parisc-linux.org/pipermail/parisc-linux/2003-October/021216.html|Discussing]] PA-RISC hardware implementations and issues around N-class machines, MatthewWilcox also explained:
+
[http://lists.parisc-linux.org/pipermail/parisc-linux/2003-October/021216.html Discussing] PA-RISC hardware implementations and issues around N-class machines, MatthewWilcox also explained:
  
 
''A500/L1000/L2000 use Astro/Elroy just like the B/C/J class.  L1500/L3000/N use Ike and Stretch in place of Astro.  I once downloaded an N-class PDF which I've subsequently lost.  If I remember correctly, it looked like:''
 
''A500/L1000/L2000 use Astro/Elroy just like the B/C/J class.  L1500/L3000/N use Ike and Stretch in place of Astro.  I once downloaded an N-class PDF which I've subsequently lost.  If I remember correctly, it looked like:''
  
<nowiki>
+
<nowiki>
 
     CPU --+-- CPU          RAM          CPU --+-- CPU
 
     CPU --+-- CPU          RAM          CPU --+-- CPU
 
           DEW              |||||              DEW
 
           DEW              |||||              DEW
Line 21: Line 21:
 
|||||        CPU --+-- CPU    CPU --+-- CPU      |||||
 
|||||        CPU --+-- CPU    CPU --+-- CPU      |||||
 
Ropes                                              Ropes
 
Ropes                                              Ropes
</nowiki>
+
</nowiki>
  
''(Elroys on the end of the ropes, of course).
+
''(Elroys on the end of the ropes, of course).''
  
My understanding is that Stretch is the problem.  We don't follow the rules for non-coherent aliases and Stretch isn't as lenient as other memory controllers.''
+
''My understanding is that Stretch is the problem.  We don't follow the rules for non-coherent aliases and Stretch isn't as lenient as other memory controllers.''

Latest revision as of 20:36, 30 May 2014

[edit] Discontiguous Memory Support

Several PA-RISC machines have large memory holes in their memory maps. e.g. Astro-based machines, the N-class, and the new zx1-based PA8800 machines.

We have these possible memory map layouts:

 * Astro: 0-3.75, 67.75-68, 4-64
 * zx1: 0-1, 257-260, 4-256
 * Stretch (N-class): 0-2, 4-32, 34-xxx

Normally Linux uses a single contiguous memory map to address all the physical memory in a machine. In order to support discontiguous memory, several memory maps representing each contiguous segment of memory are created. Each of these segments is called a "node". From the above memory maps, we can see that each 1GB can only belong to one region (node), so we can create an index table for pfn to nid lookup.

Discussing PA-RISC hardware implementations and issues around N-class machines, MatthewWilcox also explained:

A500/L1000/L2000 use Astro/Elroy just like the B/C/J class. L1500/L3000/N use Ike and Stretch in place of Astro. I once downloaded an N-class PDF which I've subsequently lost. If I remember correctly, it looked like:

     CPU --+-- CPU          RAM          CPU --+-- CPU
          DEW              |||||              DEW
  +--------+--------+---- Stretch ----+--------+------+
 IKE               DEW               DEW             IKE
|||||         CPU --+-- CPU     CPU --+-- CPU       |||||
Ropes                                               Ropes
 

(Elroys on the end of the ropes, of course).

My understanding is that Stretch is the problem. We don't follow the rules for non-coherent aliases and Stretch isn't as lenient as other memory controllers.

Personal tools