diff options
-rw-r--r-- | source/index.rst | 92 |
1 files changed, 58 insertions, 34 deletions
diff --git a/source/index.rst b/source/index.rst index 7155e9b..8a6107b 100644 --- a/source/index.rst +++ b/source/index.rst @@ -76,9 +76,7 @@ line to manually create a type 12 memory region. Here are the additions I made for my system with 32 GiB of RAM: 1) Reserve 16 GiB of memory via the "memmap" kernel parameter in grub's -menu.lst, using PMEM's new "!" specifier: - -:: +menu.lst, using PMEM's new "!" specifier:: memmap=16G!16G @@ -141,9 +139,7 @@ Options in make menuconfig: CONFIG_DEV_DAX_PMEM=m CONFIG_DEV_DAX_KMEM=m -This configuration gave me one pmem device with 16 GiB of space: - -:: +This configuration gave me one pmem device with 16 GiB of space:: $ fdisk -l /dev/pmem0 @@ -152,9 +148,7 @@ This configuration gave me one pmem device with 16 GiB of space: Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes -lsblk shows the block devices, including pmem devices. Examples: - -:: +lsblk shows the block devices, including pmem devices. Examples:: $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT @@ -165,8 +159,6 @@ lsblk shows the block devices, including pmem devices. Examples: pmem2 259:2 0 16G 0 disk /mnt/xfs-pmem2 pmem3 259:3 0 16G 0 disk /mnt/xfs-pmem3 -:: - $ lsblk -t NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME pmem0 0 4096 0 4096 512 0 128 128 0B @@ -184,35 +176,67 @@ persistent memory address range. ndctl create-namespace ties a namespace to a block device or character device: -+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+ -| mode | d | d | d | label | atom | f | DAX | PFN | f | -| | escri | evice | evice | met | icity | ilesy | | met | ormer | -| | ption | path | type | adata | | stems | | adata | name | -+=======+=======+=======+=======+=======+=======+=======+=====+=======+=======+ -| raw | raw | /dev/ | block | no | no | yes | no | no | | -| | | pmemN | | | | | | | | -+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+ -| s | s | / | block | yes | yes | yes | no | no | | -| ector | ector | dev/p | | | | | | | | -| | a | memNs | | | | | | | | -| | tomic | | | | | | | | | -+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+ -| fsdax | files | /dev/ | block | yes | no | yes | yes | yes | m | -| | ystem | pmemN | | | | | | | emory | -| | DAX | | | | | | | | | -+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+ -| d | d | / | char | yes | no | no | yes | yes | dax | -| evdax | evice | dev/d | acter | | | | | | | -| | DAX | axN.M | | | | | | | | -+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+ +.. list-table:: + :header-rows: 1 + + - - mode + - description + - device path + - device type + - label metadata + - atomicity + - filesystems + - DAX + - PFN metadata + - former name + - - raw + - raw + - /dev/pmemN + - block + - no + - no + - yes + - no + - no + - + - - sector + - sector atomic + - /dev/pmemNs + - block + - yes + - yes + - yes + - no + - no + - + - - fsdax + - filesystem DAX + - /dev/pmemN + - block + - yes + - no + - yes + - yes + - yes + - memory + - - devdax + - device DAX + - /dev/daxN.M + - character + - yes + - no + - no + - yes + - yes + - dax There are two places to store PFN metadata ("struct page" metadata): -- --map=mem = regular system memory +- ``--map=mem`` = regular system memory - adequate for small persistent memory capacities -- --map=dev = persistent memory +- ``--map=dev`` = persistent memory - intended for large persistent memory capacities (there might not be enough regular memory in the system!) |