技术解析:Linux的NUMA 技术

互联网 | 编辑: 杨剑锋 2006-10-05 10:00:00转载 一键看全文


  
    Linux 对 NUMA 系统的物理内存分布信息是从系统 firmware 的 ACPI 表中获得的,最重要的是 SRAT(System Resource Affinity Table)和 SLIT(System Locality Information Table)表,其中 SRAT 包含两个结构:   
  
    Processor Local APIC/SAPIC Affinity Structure:记录某个 CPU 的信息;
  
    Memory Affinity Structure:记录内存的信息;

    SLIT 表则记录了各个结点之间的距离,在系统中由数组 node_distance[ ] 记录。

    Linux 采用 Node、Zone 和页三级结构来描述物理内存的,如图 2 所示, 
  
  
  
      图 2 Linux 中 Node、Zone 和页的关系
  
  . 1 结点
  
    Linux 用一个 struct pg_data_t 结构来描述系统的内存,系统中每个结点都挂接在一个 pgdat_list 列表中,对 UMA 体系结构,则只有一个静态的 pg_data_t 结构 contig_page_data。对 NUMA 系统来说则非常容易扩充,NUMA 系统中一个结点可以对应 Linux 存储描述中的一个结点,具体描述见 linux/mmzone.h。 

typedef struct pglist_data {
zone_t node_zones[MAX_NR_ZONES];
zonelist_t node_zonelists[GFP_ZONEMASK+1];
int nr_zones;
struct page *node_mem_map;
unsigned long *valid_addr_bitmap;
struct bootmem_data *bdata;
unsigned long node_start_paddr;
unsigned long node_start_mapnr;
unsigned long node_size;
int node_id;
struct pglist_data *node_next;
} pg_data_t;

    

提示:试试键盘 “← →” 可以实现快速翻页 

一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑