zone

# mcrash

## zone

### 書式

usage: `zone` [address]

### 説明

Linuxカーネルは、 マシンに実装されている物理メモリをいくつかの領域に分けて管理しています。 この領域のことをzoneと呼んでいます。

- DMA - DMA可能な領域
- Normal - ふつーの領域
- HighMem - カーネルが直接アクセスできない領域 (>1GB)

引数無しで`zone`コマンドを実行した場合は、zoneの一覧を表示します。 zoneのアドレスとともに実行した場合は、詳細表示となります

PGDATエントリは `pglist_data` コマンドで表示できます。 MEM_MAPエントリは `page` コマンドで表示できます。

### 実行例

    > zone
        ADDR FREEPG    PGDAT  MEM_MAP  S_PADDR  S_MAPNR   SIZE NAME
    c030fc00    63a c030fc00 c1000030        0        0   1000 DMA
    c030ff00    b77 c030fc00 c1038030  1000000     1000   aff0 Normal

    > zone c030ff00
    addr    c030ff00
    free_pages         ae4
    pages_min/low/high ff/2be/41d
    need_balance       0
    FREE     NEXT     PREV       MAP
      0  c128e4e8 c126fa78  c12a0c00
      1  c128c7d0 c126d350  c12a2200
      2  c1268650 c12414b0  c12a2d00
      3  c1277c30 c12967f0  c12a3280
      4  c12461b0 c1261730  c12a3580
      5  c127c930 c127c930  c12a3700
      6         -        -  c12a3800
      7         -        -  c12a3880
      8  c1046030 c1046030  c12a3900
      9         -        -         0
    wait_table         c12a0400
    zone_pgdat         c030fc00
    zone_mem_map       c1038030
    zone_start_paddr   1000000
    zone_start_mapnr   1000
    name               "Normal"
    size               aff0

mcrash, Copyright (C) 2003 ASANO Masahiro