This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
start [2018/10/16 18:44] Dan Williams |
start [2020/06/12 15:58] (current) Ira Weiny [Filesystems] |
||
---|---|---|---|
Line 10: | Line 10: | ||
* NDCTL: https://github.com/pmem/ndctl.git | * NDCTL: https://github.com/pmem/ndctl.git | ||
* NDCTL man pages online: http://pmem.io/ndctl/ | * NDCTL man pages online: http://pmem.io/ndctl/ | ||
- | * linux-nvdimm Mailing List: https://lists.01.org/mailman/listinfo/linux-nvdimm | + | * linux-nvdimm Mailing List: https://lists.01.org/postorius/lists/linux-nvdimm.lists.01.org |
* linux-nvdimm Patchwork: https://patchwork.kernel.org/project/linux-nvdimm/list/ | * linux-nvdimm Patchwork: https://patchwork.kernel.org/project/linux-nvdimm/list/ | ||
Line 76: | Line 76: | ||
<code> | <code> | ||
- | CONFIG_BLK_DEV_RAM_DAX=y | + | CONFIG_ZONE_DEVICE=y |
- | CONFIG_FS_DAX=y | + | |
- | CONFIG_X86_PMEM_LEGACY=y | + | |
- | CONFIG_LIBNVDIMM=y | + | |
- | CONFIG_BLK_DEV_PMEM=m | + | |
- | CONFIG_ARCH_HAS_PMEM_API=y | + | |
- | CONFIG_TRANSPARENT_HUGEPAGE=y | + | |
CONFIG_MEMORY_HOTPLUG=y | CONFIG_MEMORY_HOTPLUG=y | ||
CONFIG_MEMORY_HOTREMOVE=y | CONFIG_MEMORY_HOTREMOVE=y | ||
- | CONFIG_ZONE_DEVICE=y | + | CONFIG_TRANSPARENT_HUGEPAGE=y |
- | CONFIG_FS_DAX_PMD=y | + | CONFIG_ACPI_NFIT=m |
+ | CONFIG_X86_PMEM_LEGACY=m | ||
+ | CONFIG_OF_PMEM=m | ||
+ | CONFIG_LIBNVDIMM=m | ||
+ | CONFIG_BLK_DEV_PMEM=m | ||
+ | CONFIG_BTT=y | ||
+ | CONFIG_NVDIMM_PFN=y | ||
+ | CONFIG_NVDIMM_DAX=y | ||
+ | CONFIG_FS_DAX=y | ||
+ | CONFIG_DAX=y | ||
+ | CONFIG_DEV_DAX=m | ||
+ | CONFIG_DEV_DAX_PMEM=m | ||
+ | CONFIG_DEV_DAX_KMEM=m | ||
</code> | </code> | ||
Line 423: | Line 429: | ||
<code> | <code> | ||
$ mkfs.ext4 -F /dev/pmem0p1 | $ mkfs.ext4 -F /dev/pmem0p1 | ||
- | $ mkfs.xfs -f /dev/pmem0p2 | + | $ mkfs.xfs -f -m reflink=0 /dev/pmem0p2 |
$ mkfs.btrfs -f /dev/pmem0p3 | $ mkfs.btrfs -f /dev/pmem0p3 | ||
- | $ mount -o dax /dev/pmem0p1 /mnt/ext4-pmem0 | + | $ mount [dax_mount_options] /dev/pmem0p1 /mnt/ext4-pmem0 |
- | $ mount -o dax /dev/pmem0p2 /mnt/xfs-pmem0 | + | $ mount [dax_mount_options] /dev/pmem0p2 /mnt/xfs-pmem0 |
$ mount /dev/pmem0p3 /mnt/btrfs-pmem0 | $ mount /dev/pmem0p3 /mnt/btrfs-pmem0 | ||
Line 448: | Line 454: | ||
/dev/pmem0p3 4.3G 17M 4.1G 1% /mnt/btrfs-pmem0 | /dev/pmem0p3 4.3G 17M 4.1G 1% /mnt/btrfs-pmem0 | ||
</code> | </code> | ||
+ | |||
+ | Where **[dax_mount_options]** depends on the kernel support you have and the desired behavior. See [[fs_mount_options|fs_mount_options]] for details. | ||
Check the kernel log to ensure the DAX mount option was honored; mount does not print this information. Example failures: | Check the kernel log to ensure the DAX mount option was honored; mount does not print this information. Example failures: | ||
Line 475: | Line 483: | ||
==== iostats ==== | ==== iostats ==== | ||
---- | ---- | ||
- | iostats are disabled by default due to performance overhead (e.g., 12M IOPS dropping 25% to 9M IOPS). However, they can be enabled in sysfs if desired. | + | iostats are disabled by default due to performance overhead (e.g., 12M IOPS dropping 25% to 9M IOP |
+ | S). However, they can be enabled in sysfs if desired. | ||
As of kernel 4.5, iostats are only collected for the base pmem device, not per-partition. Also, I/Os that go through DAX paths (rw_page, rw_bytes, and direct_access functions) are not counted, so nothing is collected for: | As of kernel 4.5, iostats are only collected for the base pmem device, not per-partition. Also, I/Os that go through DAX paths (rw_page, rw_bytes, and direct_access functions) are not counted, so nothing is collected for: |