This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
start [2018/09/20 14:53] Barret Rhoden [Quick Setup Guide] added config options for huge pages / FS_DAX_PMD |
start [2018/09/26 23:19] Robert Elliott |
||
---|---|---|---|
Line 128: | Line 128: | ||
ndctl create-namespace ties a namespace to a block device or character device: | ndctl create-namespace ties a namespace to a block device or character device: | ||
- | ^ mode ^ description ^ device path ^ label metadata ^ atomicity ^ filesystems ^ DAX ^ PFN metadata ^ former name ^ | + | ^ mode ^ description ^ device path ^ device type ^ label metadata ^ atomicity ^ filesystems ^ DAX ^ PFN metadata ^ former name ^ |
- | | raw | raw | /dev/pmemN | no | no | yes | no | no | | | + | | raw | raw | /dev/pmemN | block | no | no | yes | no | no | | |
- | | sector | sector atomic | /dev/pmemNs | yes | yes | yes | no | no | | | + | | sector | sector atomic | /dev/pmemNs | block | yes | yes | yes | no | no | | |
- | | fsdax | filesystem DAX | /dev/pmemN | yes | no | yes | yes | yes | memory | | + | | fsdax | filesystem DAX | /dev/pmemN | block | yes | no | yes | yes | yes | memory | |
- | | devdax | device DAX | /dev/daxN.M | yes | no | no | yes | yes | dax | | + | | devdax | device DAX | /dev/daxN.M | character | yes | no | no | yes | yes | dax | |
- | For modes with PFN metadata ("struct page" metadata), overhead is 64 bytes per 4 KiB of persistent memory. | + | There are two places to store PFN metadata ("struct page" metadata): |
- | * e.g., 128 MiB for 8 GiB persistent memory | + | |
- | * e.g., 7.45 GiB for 1 TB persistent memory | + | |
* --map=mem = regular system memory | * --map=mem = regular system memory | ||
* adequate for small persistent memory capacities | * adequate for small persistent memory capacities | ||
Line 142: | Line 140: | ||
* intended for large persistent memory capacities (there might not be enough regular memory in the system!) | * intended for large persistent memory capacities (there might not be enough regular memory in the system!) | ||
* persistence of the PFN metadata is not important; this is just convenient because it scales with the persistent memory capacity | * persistence of the PFN metadata is not important; this is just convenient because it scales with the persistent memory capacity | ||
+ | |||
+ | The PFN metadata size is 64 bytes per 4 KiB of persistent memory (1.5625%). For some common persistent memory capacities: | ||
+ | ^ persistent memory capacity ^ PFN metadata size ^ example ^ | ||
+ | | 8 GiB | 128 MiB | | | ||
+ | | 16 GiB | 256 MiB | | | ||
+ | | 96 GiB | 1.5 GiB | Six 16 GiB NVDIMMs | | ||
+ | | 128 GiB | 2 GiB | | | ||
+ | | 192 GiB | 3 GiB | Twelve 16 GiB NVDIMMs | | ||
+ | | 256 GiB | 4 GiB | | | ||
+ | | 512 GiB | 8 GiB | | | ||
+ | | 768 GiB | 12 GiB | Six 128 GiB NVDIMMs | | ||
+ | | 1 TiB | 16 GiB | | | ||
+ | | 1.5 TiB | 24 GiB | Six 256 GiB NVDIMMs | | ||
+ | | 3 TiB | 48 GiB | Six 512 GiB NVDIMMs | | ||
+ | | 6 TiB | 96 GiB | Six 1 TiB NVDIMMs, or twelve 512 GiB NVDIMMs | | ||
+ | |||
Sector Atomic mode uses a Block Translation Layer (BTT) to help software that doesn't understand sectors might end up with a mix of old and new data if power loss occurs while writes were underway. | Sector Atomic mode uses a Block Translation Layer (BTT) to help software that doesn't understand sectors might end up with a mix of old and new data if power loss occurs while writes were underway. |