Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/nvdimm/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 4 kB image not shown  

Quelle  Kconfig   Sprache: unbekannt

 
SPDX-License-Identifier: GPL-2.0-only
menuconfig LIBNVDIMM
 tristate "NVDIMM (Non-Volatile Memory Device) Support"
 depends on PHYS_ADDR_T_64BIT
 depends on HAS_IOMEM
 depends on BLK_DEV
 select MEMREGION
 help
   Generic support for non-volatile memory devices including
   ACPI-6-NFIT defined resources.  On platforms that define an
   NFIT, or otherwise can discover NVDIMM resources, a libnvdimm
   bus is registered to advertise PMEM (persistent memory)
   namespaces (/dev/pmemX). A PMEM namespace refers to a
   memory resource that may span multiple DIMMs and support DAX
   (see CONFIG_DAX).

if LIBNVDIMM

config BLK_DEV_PMEM
 tristate "PMEM: Persistent memory block device support"
 default LIBNVDIMM
 select DAX
 select ND_BTT if BTT
 select ND_PFN if NVDIMM_PFN
 help
   Memory ranges for PMEM are described by either an NFIT
   (NVDIMM Firmware Interface Table, see CONFIG_ACPI_NFIT), a
   non-standard OEM-specific E820 memory type (type-12, see
   CONFIG_X86_PMEM_LEGACY), or it is manually specified by the
   'memmap=nn[KMG]!ss[KMG]' kernel command line (see
   Documentation/admin-guide/kernel-parameters.rst).  This driver converts
   these persistent memory ranges into block devices that are
   capable of DAX (direct-access) file system mappings.  See
   Documentation/driver-api/nvdimm/nvdimm.rst for more details.

   Say Y if you want to use an NVDIMM

config ND_CLAIM
 bool

config ND_BTT
 tristate

config BTT
 bool "BTT: Block Translation Table (atomic sector updates)"
 default y if LIBNVDIMM
 select ND_CLAIM
 help
   The Block Translation Table (BTT) provides atomic sector
   update semantics for persistent memory devices, so that
   applications that rely on sector writes not being torn (a
   guarantee that typical disks provide) can continue to do so.
   The BTT manifests itself as an alternate personality for an
   NVDIMM namespace, i.e. a namespace can be in raw mode pmemX,
   or 'sectored' mode.

   Select Y if unsure

config ND_PFN
 tristate

config NVDIMM_PFN
 bool "PFN: Map persistent (device) memory"
 default LIBNVDIMM
 depends on ZONE_DEVICE
 select ND_CLAIM
 help
   Map persistent memory, i.e. advertise it to the memory
   management sub-system.  By default persistent memory does
   not support direct I/O, RDMA, or any other usage that
   requires a 'struct page' to mediate an I/O request.  This
   driver allocates and initializes the infrastructure needed
   to support those use cases.

   Select Y if unsure

config NVDIMM_DAX
 bool "NVDIMM DAX: Raw access to persistent memory"
 default LIBNVDIMM
 depends on NVDIMM_PFN
 help
   Support raw device dax access to a persistent memory
   namespace.  For environments that want to hard partition
   persistent memory, this capability provides a mechanism to
   sub-divide a namespace into character devices that can only be
   accessed via DAX (mmap(2)).

   Select Y if unsure

config OF_PMEM
 tristate "Device-tree support for persistent memory regions"
 depends on OF
 default LIBNVDIMM
 help
   Allows regions of persistent memory to be described in the
   device-tree.

   Select Y if unsure.

config NVDIMM_KEYS
 def_bool y
 depends on ENCRYPTED_KEYS
 depends on (LIBNVDIMM=ENCRYPTED_KEYS) || LIBNVDIMM=m

config NVDIMM_KMSAN
 bool
 depends on KMSAN
 help
   KMSAN, and other memory debug facilities, increase the size of
   'struct page' to contain extra metadata. This collides with
   the NVDIMM capability to store a potentially
   larger-than-"System RAM" size 'struct page' array in a
   reservation of persistent memory rather than limited /
   precious DRAM. However, that reservation needs to persist for
   the life of the given NVDIMM namespaceIf you are using KMSAN
   to debug an issue unrelated to NVDIMMs or DAX then say N to this
   option. Otherwise, say Y but understand that any namespaces
   (with the page array stored pmem) created with this build of
   the kernel will permanently reserve and strand excess
   capacity compared to the CONFIG_KMSAN=n case.

   Select N if unsure.

config NVDIMM_TEST_BUILD
 tristate "Build the unit test core"
 depends on m
 depends on COMPILE_TEST && X86_64
 default m if COMPILE_TEST
 help
   Build the core of the unit test infrastructure. The result of
   this build is non-functional for unit test execution, but it
   otherwise helps catch build errors induced by changes to the
   core devm_memremap_pages() implementation and other
   infrastructure.

config NVDIMM_SECURITY_TEST
 bool "Enable NVDIMM security unit tests"
 depends on NVDIMM_KEYS
 help
   The NVDIMM and CXL subsystems support unit testing of their device
   security state machines. The NVDIMM_SECURITY_TEST option disables CPU
   cache maintenance operations around events like secure erase and
   overwrite.  Also, when enabled, the NVDIMM subsystem core helps the unit
   test implement a mock state machine.

   Select N if unsure.

endif

Messung V0.5
C=92 H=92 G=91

[ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet)  ]