tiffany kasanicky intel - storage networking industry association · 2019-12-21 · 2017 storage...
TRANSCRIPT
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 1
Managing Persistent Memory
Tiffany KasanickyIntel
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 2
Agenda
Managing* Be in charge of; administer; run. The process of dealing with or controlling things or
people. Persistent Memory
Memory that retains data when the power is off.
*Courtesy of Google
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 3
OverviewManagement Block Persistent Memory
User
Kernel
NVDIMM(s)
BIOS ACPI (NFIT)SMBIOS_DSM
IXPDIMM SW
FW
File System
Applicat ion Applicat ion
UEFI SW
Standard File API
Standard Raw Device Access
Standard File API
NVDIMM Driver(s)
Persistent Memory
MMU Mappings
PMEM Aware FS (DAX)
Applicat ion(PMEM Aware) nvml
Load/Store
Learn more at http://pmem.io
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 4
Management Block Persistent Memory
User
Kernel
NVDIMM(s)
BIOS ACPI (NFIT)SMBIOS_DSM
IXPDIMM SW
FW
File System
Applicat ion Applicat ion
UEFI SW
Standard File API
Standard Raw Device Access
Standard File API
NVDIMM Driver(s)
Persistent Memory
MMU Mappings
PMEM Aware FS (DAX)
Applicat ion(PMEM Aware) nvml
Load/Store
Overview
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 5
Management Block Persistent Memory
User
Kernel
NVDIMM(s)
BIOS ACPI (NFIT)SMBIOS_DSM
IXPDIMM SW
FW
File System
Applicat ion Applicat ion
UEFI SW
Standard File API
Standard Raw Device Access
Standard File API
NVDIMM Driver(s)
Persistent Memory
MMU Mappings
PMEM Aware FS (DAX)
Applicat ion(PMEM Aware) nvml
Load/Store
Overview
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 6
NVDIMM Firmware Interface Table (NFIT)
*As of ACPI Specification 6.0: http://www.uefi.org/specifications
NFIT
ACPI NVM Root Device (in ACPI
namespace)
SMBIOS Management Information Structure(s)
SPA Range Structure(s)
NVDIMM Region Mapping
Structure(s)
Interleave Structure(s)
Flush Hint Address
Structure(s)
NVDIMM Control Region
Structure(s)
NVDIMM Block Data Window
Region Structure(s)
SPA Range Structure Index
Interleave Structure
Index
NFIT Device Handle
NVDIMM Control Region Structure
IndexNVDIMM Control Region Structure
Index
ImplicitAssociation
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 7
NFIT Region Mapping Structure
*As of ACPI Specification 6.0: http://www.uefi.org/specifications
NFIT
ACPI NVM Root Device (in ACPI
namespace)
SMBIOS Management Information Structure(s)
SPA Range Structure(s)
NVDIMM Region Mapping
Structure(s)
Interleave Structure(s)
Flush Hint Address
Structure(s)
NVDIMM Control Region
Structure(s)
NVDIMM Block Data Window
Region Structure(s)
SPA Range Structure Index
Interleave Structure
Index
NFIT Device Handle
NVDIMM Control Region Structure
IndexNVDIMM Control Region Structure
Index
ImplicitAssociation
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 8
NFIT NVDIMM Control Region Structure
*As of ACPI Specification 6.0: http://www.uefi.org/specifications
NFIT
ACPI NVM Root Device (in ACPI
namespace)
SMBIOS Management Information Structure(s)
SPA Range Structure(s)
NVDIMM Region Mapping
Structure(s)
Interleave Structure(s)
Flush Hint Address
Structure(s)
NVDIMM Control Region
Structure(s)
NVDIMM Block Data Window
Region Structure(s)
SPA Range Structure Index
Interleave Structure
Index
NFIT Device Handle
NVDIMM Control Region Structure
IndexNVDIMM Control Region Structure
Index
ImplicitAssociation
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 9
Region Interface Format Code
*As of ACPI Specification 6.0: http://www.uefi.org/specifications
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 10
SMBIOS Management Information Structure
*As of ACPI Specification 6.0: http://www.uefi.org/specifications
NFIT
ACPI NVM Root Device (in ACPI
namespace)
SMBIOS Management Information Structure(s)
SPA Range Structure(s)
NVDIMM Region Mapping
Structure(s)
Interleave Structure(s)
Flush Hint Address
Structure(s)
NVDIMM Control Region
Structure(s)
NVDIMM Block Data Window
Region Structure(s)
SPA Range Structure Index
Interleave Structure
Index
NFIT Device Handle
NVDIMM Control Region Structure
IndexNVDIMM Control Region Structure
Index
ImplicitAssociation
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 11
NFIT SPA Range Structure
*As of ACPI Specification 6.0: http://www.uefi.org/specifications
NFIT
ACPI NVM Root Device (in ACPI
namespace)
SMBIOS Management Information Structure(s)
SPA Range Structure(s)
NVDIMM Region Mapping
Structure(s)
Interleave Structure(s)
Flush Hint Address
Structure(s)
NVDIMM Control Region
Structure(s)
NVDIMM Block Data Window
Region Structure(s)
SPA Range Structure Index
Interleave Structure
Index
NFIT Device Handle
NVDIMM Control Region Structure
IndexNVDIMM Control Region Structure
Index
ImplicitAssociation
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 12
NFIT Interleave Structure
*As of ACPI Specification 6.0: http://www.uefi.org/specifications
NFIT
ACPI NVM Root Device (in ACPI
namespace)
SMBIOS Management Information Structure(s)
SPA Range Structure(s)
NVDIMM Region Mapping
Structure(s)
Interleave Structure(s)
Flush Hint Address
Structure(s)
NVDIMM Control Region
Structure(s)
NVDIMM Block Data Window
Region Structure(s)
SPA Range Structure Index
Interleave Structure
Index
NFIT Device Handle
NVDIMM Control Region Structure
IndexNVDIMM Control Region Structure
Index
ImplicitAssociation
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 13
NFIT Flush Hint Address Structure
*As of ACPI Specification 6.0: http://www.uefi.org/specifications
NFIT
ACPI NVM Root Device (in ACPI
namespace)
SMBIOS Management Information Structure(s)
SPA Range Structure(s)
NVDIMM Region Mapping
Structure(s)
Interleave Structure(s)
Flush Hint Address
Structure(s)
NVDIMM Control Region
Structure(s)
NVDIMM Block Data Window
Region Structure(s)
SPA Range Structure Index
Interleave Structure
Index
NFIT Device Handle
NVDIMM Control Region Structure
IndexNVDIMM Control Region Structure
Index
ImplicitAssociation
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 14
NFIT Block Data Window Region Structure
*As of ACPI Specification 6.0: http://www.uefi.org/specifications
NFIT
ACPI NVM Root Device (in ACPI
namespace)
SMBIOS Management Information Structure(s)
SPA Range Structure(s)
NVDIMM Region Mapping
Structure(s)
Interleave Structure(s)
Flush Hint Address
Structure(s)
NVDIMM Control Region
Structure(s)
NVDIMM Block Data Window
Region Structure(s)
SPA Range Structure Index
Interleave Structure
Index
NFIT Device Handle
NVDIMM Control Region Structure
IndexNVDIMM Control Region Structure
Index
ImplicitAssociation
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 15
Management Block Persistent Memory
User
Kernel
NVDIMM(s)
BIOS ACPI (NFIT)SMBIOS_DSM
IXPDIMM SW
FW
File System
Applicat ion Applicat ion
UEFI SW
Standard File API
Standard Raw Device Access
Standard File API
NVDIMM Driver(s)
Persistent Memory
MMU Mappings
PMEM Aware FS (DAX)
Applicat ion(PMEM Aware) nvml
Load/Store
Overview
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 16
NVDIMM Root Device DSMsQuery Command Implemented
Query Address Range Scrub Capabilities
Start Address Range Scrub
Query Address Range Scrub Status
Clear Uncorrectable Error
Translate SPA
Reserved
ARS Error Inject
ARS Error Inject Clear
ARS Error Inject Status Query*As of ACPI Specification 6.2: http://www.uefi.org/specifications
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 17
NVDIMM IFC 0x0201/0x0301* DSMsQuery Command Implemented Get Supported Modes
Get SMART and Health Info Get FW Info
Get SMART Threshold Start FW Update
Get Block NVDIMM Flags Send FW Update Data
Get Command Effect Log Size Finish FW Update
Get Command Effect Log Query Finish FW Update Status
Pass-Through Command Set SMART Threshold
Enable Latch System Shutdown Status Inject Error
*Final values TBD based on JEDEC approval
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 18
Management Block Persistent Memory
User
Kernel
NVDIMM(s)
BIOS ACPI (NFIT)SMBIOS_DSM
IXPDIMM SW
FW
File System
Applicat ion Applicat ion
UEFI SW
Standard File API
Standard Raw Device Access
Standard File API
NVDIMM Driver(s)
Persistent Memory
MMU Mappings
PMEM Aware FS (DAX)
Applicat ion(PMEM Aware) nvml
Load/Store
Overview
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 19
Linux 4.9+
*Courtesy of Dan Williams <[email protected]>
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 20
Windows* Server 2016
*https://channel9.msdn.com/Events/Build/2016/P470
Management Block Persistent Memory
User
Kernel
NVDIMM(s)
BIOS ACPI (NFIT)SMBIOS_DSM
FW
Applicat ion
UEFI SW
Standard File API
Setup
Storage Class Memory
MMU Mappings
Windows* SCM Aware FS (NTFS-DAX)
Applicat ion(PMEM Aware) nvml
Load/Store
Windows* SCMBus Driver
IXPDIMM SW
Vendor Physical NVDIMM Driver
Windows* SCM Disk Driver
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 21
Persistent Memory Regions
NVDIMM0
PM Region
NVDIMM1
PM Region
PM Region
NVDIMM2
PM Region
NVDIMM3
PM Region
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 22
Interleave Sets (SPA Ranges)
SPA Range
NVDIMM0
PMRegion
NVDIMM1
PM Region
PM Region
NVDIMM2
PM Region
NVDIMM3
PM Region
Interleave Set
SPA RangeInterleave Set
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 23
Namespaces
NVDIMM0
PM Region
NVDIMM1
PM Region
PM Region
NVDIMM2
PM Region
NVDIMM3
PM Region
Interleave Set
Namespace 1
Namespace 0
Interleave Set
Namespace 2
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 24
Namespace Label Storage Area (LSA)
*As of UEFI Specification 2.7: http://www.uefi.org/specifications
NVDIMM0
PM Region
NVDIMM1
PM Region
PM Region
NVDIMM2
PM Region
NVDIMM3
PM Region
Interleave Set
LSA LSA LSA LSA
Namespace 1
Namespace 0
Index Block
Index Block
Label
Label
...
Label
Namespace Label Storage Area (LSA)
Interleave Set
Namespace 2
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 25
Namespace Label
*As of UEFI Specification 2.7: http://www.uefi.org/specifications
NVDIMM0
PM Region
NVDIMM1
PM Region
PM Region
NVDIMM2
PM Region
NVDIMM3
PM Region
Interleave Set
LSA LSA LSA LSA
Namespace 1
Namespace 0
Index Block
Index Block
Label
Label
...
Label
Namespace Label Storage Area (LSA) Namespace Label
UIDNameFlagsNlabel
PositionSetCookieLBASize
DPARawSize
Type GUIDAbstract ion GUID
Interleave Set
Namespace 2
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 26
Management Block Persistent Memory
User
Kernel
NVDIMM(s)
BIOS ACPI (NFIT)SMBIOS_DSM
IXPDIMM SW
FW
File System
Applicat ion Applicat ion
UEFI SW
Standard File API
Standard Raw Device Access
Standard File API
NVDIMM Driver(s)
Persistent Memory
MMU Mappings
PMEM Aware FS (DAX)
Applicat ion(PMEM Aware) nvml
Load/Store
Overview
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 27
Intel DIMM UEFI SWManagement
UEFI Shell
BIOS
Intel DIMM DriverHII Database
Forms Strings
HIIBrowser
EFI File System BDS
BMC
ACPIIntel HII Driver
Intel CLIOS
Intel DIMM(s) FW Persistent Memory
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 28
Intel DIMM OS SW (IXPDIMM SW)Management
User
Kernel
libixpdimmsim_adapterlnx_adapter win_adapter(s)esx_adapter Simulator
libndctl
pmem
libVmkuserNVD
VMware Driver
ixpdimm-cliixpdimm-cimixpdimm-monitor
Windows SCM Disk Driver
Intel
BIOS ACPI (NFIT)SMBIOS_DSM
Intel DIMM(s) FW
RHEL/SLES ESXi Windows RS3
Windows SCM Bus Driver
Partner
Intel DIMM Driver
Enterprise Tools
Syslog
WMI/Pegasus/SFCB
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 29
IXPDIMM SW Distribution Plan
29
• Open source 3-clause BSD license
• Targeted Distributions:
• RHEL 7.5• SLES 15• Fedora• openSUSE• *Ubuntu
Package Repositoryixpdimm sw https://github.com/01org/ixpdimm_sw
nvm frameworks https://github.com/01org/invm-frameworks
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 30
Persistent Memory Management
Instrumentation:SW/FW version, FW update, settings and policies
Performance: Bytes read/written, read/write requests per AEP
Namespaces: Create/delete/inventory namespaces
Sensors & Settings: Temperature, wear, spare, power, errors
Topology: NVDIMM discovery, identifying information, capabilities
Memory Configuration: Mapped capacity into the SAS, interleave, failed interleave sets
2017 Storage Developer Conference. © Intel Corporation. All Rights Reserved. 31