SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
NVDIMM block drivers with
NFIT
March, 2016, SUSE Labs Taipei technology sharing day,
Taipei
Joey Lee
SUSE Labs Taipei
2
Agenda
• NVDIMM
• NFIT
• Conceptual model
‒ nvdimm.txt
‒ Namespace/Region
‒ PMEM
‒ BLK
‒ NFIT
‒ BTT
• Q&A
NVDIMM
4
NVDIMM
• NVDIMM: Non-Volatile DIMM. Non-volatile memory
in a DIMM form factor. [1]
http://www.enterprisetech.com/2014/02/20/micron-pushes-memory-roadm
ap-several-routes/
5
NVDIMM Architecture
6
NVDIMM Architecture - Block
7
SPA/DPA
• SPA: System Physical Address. A physical address
on the host operating system. [1]
• DPA: DIMM Physical Address. An address within the
memory in an NVDIMM. [1]
8
SPA/DPA
NVDIMM Namespace Specification, Intel
9
SPA/DPA Interleave
• DPA: DIMM Physical Address, is a DIMM-relative
offset. With one DIMM in the system there would be
a 1:1 system-physical-address:DPA association.
Once more DIMMs are added an memory controller
interleave must be decoded to determine the DPA
associated with a given system-physical-address.
BLK capacity always has a 1:1 relationship with a
single-dimm's DPA range. [2]
10
SPA/DPA Interleave
NVDIMM Namespace Specification, Intel
11
PMEM
• Persistent Memory (or PMEM): Byte‐addressable
memory which retains its contents across power
loss.A DIMM primarily containing non‐volatile
memory. [3]
• PMEM: A system physical address range where
writes are persistent. A block device composed of
PMEM is capable of DAX. A PMEM address range
may span/interleave several DIMMs. [2]
• DAX: File system extensions to bypass the page
cache and block layer to mmap persistent memory,
from a PMEM block device, directly into a process
address space. [2]
12
Block Window
• BW(Block Window): A set of registers consisting of a
command register, a status register, and an aperture
allowing the NVDIMM driver to read and write blocks
of data to any persistent area on an NVDIMM. [1]
• BLK: A set of one or more programmable memory
mapped apertures provided by a DIMM to access its
media. This indirection precludes the performance
benefit of interleaving, but enables DIMM-bounded
failure modes. [2]
13
Block Window
14
BTT
• Block Translation Table. A software data structure,
defined in the NVDIMM Namespace Specification,
which prevents torn blocks when a write is
interrupted by a system crash, hang, or power
failure. [1]
• BTT: Existing software may have an expectation that
the power-fail-atomicity of writes is at least one
sector, 512 bytes. The BTT is an indirection table
with atomic update semantics to front a PMEM/BLK
block device driver and present arbitrary atomic
sector sizes. [2]
15
Namespace
• NVDIMM Namespace: Similar to an NVMe
Namespace or a Logical Unit (LUN) on a SCSI disk,
this is a software mechanism for managing ranges
of persistence on NVDIMMs. [1]
• NVDIMM Namespace Label: Labels, stored at a
known location on NVDIMMs, that define the
DIMM’s contribution to NVDIMM Namespaces. This
is a software mechanism; the DIMM itself just sees
the labels as part of the overall data stored on the
DIMM. [1]
16
PMEM Namespace
NVDIMM Namespace Specification, Intel
17
BLK Namespace
NVDIMM Namespace Specification, Intel
18
Namespace
NVDIMM Namespace Specification, Intel
19
I/O on Multi-Range BLK Namspaces
NVDIMM Namespace Specification, Intel
20
Example Software Organization for
Block I/O
NVDIMM Namespace Specification, Intel
21
Example Software Organization for
Namespace Management
NVDIMM Namespace Specification, Intel
NFIT
23
NFIT
• NFIT: The NVDIMM Firmware Interface Table, which
defines the ACPI-like information created by the
BIOS to inform the OS about NVDIMMs in the
system. [1]
• Device Specific Method (DSM): The NVDIMM root
device and the NVDIMM devices can have device
specific methods (_DSM) to provide additional
functions specific to a particular NVDIMM
implementation. [4]
24
NFIT Overview
ACPI 6.0 spec
25
NFIT
NVDIMM Block Window Driver Writer’s Guide, Intel
26
NFIT Information
NVDIMM Block Window Driver Writer’s Guide, Intel
27
NFIT SPA
NVDIMM Block Window Driver Writer’s Guide, Intel
28
NFIT Flush Hint
NVDIMM Block Window Driver Writer’s Guide, Intel
29
NFIT Block Window
NVDIMM Block Window Driver Writer’s Guide, Intel
30
NFIT (fixed)
NVDIMM Block Window Driver Writer’s Guide, Intel
Conceptual model
32
Conceptual model of nvdimm.txt
33
Conceptual model of
driver/nvdimm/namsepace, region
34
Conceptual model of
driver/nvdimm/pmem
35
Conceptual model of
driver/nvdimm/blk
36
Conceptual model of
driver/nvdimm/btt
37
Conceptual model of driver/acpi/nfit
Q&A
39
Reference
• [1] NVDIMM Block Window Driver Writer’s Guide,
Intel
• [2] Documentation/nvdimm/nvdimm.txt, Linux Kernel
• [3] NVDIMM Namespace Specification, Intel
• [4] NVDIMM DSM Interface Example, Intel
Thank you.
40
Feedback to
jlee@suse.com
Corporate Headquarters
Maxfeldstrasse 5
90409 Nuremberg
Germany
+49 911 740 53 0 (Worldwide)
www.suse.com
Join us on:
www.opensuse.org
42
Unpublished Work of SUSE. All Rights Reserved.
This work is an unpublished work and contains confidential, proprietary and trade secret information of SUSE.
Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of
their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated,
abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE.
Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability.
General Disclaimer
This document is not to be construed as a promise by any participating company to develop, deliver, or market a
product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making
purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document,
and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The
development, release, and timing of features or functionality described for SUSE products remains at the sole
discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at
any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in
this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All
third-party trademarks are the property of their respective owners.

Weitere ähnliche Inhalte

Was ist angesagt?

OpenWrt101 2007
OpenWrt101 2007OpenWrt101 2007
OpenWrt101 2007
Rex Tsai
 

Was ist angesagt? (20)

Persistent memory
Persistent memoryPersistent memory
Persistent memory
 
Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and Analysis
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
 
OpenWrt101 2007
OpenWrt101 2007OpenWrt101 2007
OpenWrt101 2007
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
 
NFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center OperationsNFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center Operations
 
20150918 klug el performance tuning-v1.4
20150918 klug el performance tuning-v1.420150918 klug el performance tuning-v1.4
20150918 klug el performance tuning-v1.4
 
The 7 Deadly Sins of Packet Processing - Venky Venkatesan and Bruce Richardson
The 7 Deadly Sins of Packet Processing - Venky Venkatesan and Bruce RichardsonThe 7 Deadly Sins of Packet Processing - Venky Venkatesan and Bruce Richardson
The 7 Deadly Sins of Packet Processing - Venky Venkatesan and Bruce Richardson
 
Kernel Recipes 2015 - Hardened kernels for everyone
Kernel Recipes 2015 - Hardened kernels for everyoneKernel Recipes 2015 - Hardened kernels for everyone
Kernel Recipes 2015 - Hardened kernels for everyone
 
BSDCan2013
BSDCan2013BSDCan2013
BSDCan2013
 
Kernel Recipes 2015 - Kernel dump analysis
Kernel Recipes 2015 - Kernel dump analysisKernel Recipes 2015 - Kernel dump analysis
Kernel Recipes 2015 - Kernel dump analysis
 
Posscon2013
Posscon2013Posscon2013
Posscon2013
 
OpenWRT guide and memo
OpenWRT guide and memoOpenWRT guide and memo
OpenWRT guide and memo
 
Ha cluster with openSUSE Leap
Ha cluster with openSUSE LeapHa cluster with openSUSE Leap
Ha cluster with openSUSE Leap
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemd
 
了解IO协议栈
了解IO协议栈了解IO协议栈
了解IO协议栈
 
Kernel Configuration and Compilation
Kernel Configuration and CompilationKernel Configuration and Compilation
Kernel Configuration and Compilation
 
BSD for Linux Users
BSD for Linux UsersBSD for Linux Users
BSD for Linux Users
 
Advanced Namespaces and cgroups
Advanced Namespaces and cgroupsAdvanced Namespaces and cgroups
Advanced Namespaces and cgroups
 
Spectre meltdown performance_tests - v0.3
Spectre meltdown performance_tests - v0.3Spectre meltdown performance_tests - v0.3
Spectre meltdown performance_tests - v0.3
 

Andere mochten auch

Develop and Maintain a Distro with Open Build Service
Develop and Maintain a Distro with Open Build ServiceDevelop and Maintain a Distro with Open Build Service
Develop and Maintain a Distro with Open Build Service
SUSE Labs Taipei
 

Andere mochten auch (12)

S4 sig-check-lpc-20130918
S4 sig-check-lpc-20130918S4 sig-check-lpc-20130918
S4 sig-check-lpc-20130918
 
Develop and Maintain a Distro with Open Build Service
Develop and Maintain a Distro with Open Build ServiceDevelop and Maintain a Distro with Open Build Service
Develop and Maintain a Distro with Open Build Service
 
Coscup 2012-urfkill
Coscup 2012-urfkillCoscup 2012-urfkill
Coscup 2012-urfkill
 
eBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to UserspaceeBPF Trace from Kernel to Userspace
eBPF Trace from Kernel to Userspace
 
Use build service API in your program
Use build service API in your programUse build service API in your program
Use build service API in your program
 
Use bonding driver with ethernet
Use bonding driver with ethernetUse bonding driver with ethernet
Use bonding driver with ethernet
 
Hands-on ethernet driver
Hands-on ethernet driverHands-on ethernet driver
Hands-on ethernet driver
 
PostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimmPostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimm
 
Build2016 - P470 - Using Non-volatile Memory (NVDIMM-N) as Byte-Addressable S...
Build2016 - P470 - Using Non-volatile Memory (NVDIMM-N) as Byte-Addressable S...Build2016 - P470 - Using Non-volatile Memory (NVDIMM-N) as Byte-Addressable S...
Build2016 - P470 - Using Non-volatile Memory (NVDIMM-N) as Byte-Addressable S...
 
Micron Persistent Memory & NVDIMM
Micron Persistent Memory & NVDIMMMicron Persistent Memory & NVDIMM
Micron Persistent Memory & NVDIMM
 
[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...
[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...
[db tech showcase Tokyo 2016] A12: フラッシュストレージのその先へ ~不揮発性メモリNVDIMMが拓くデータベースの世界...
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at Netflix
 

Ähnlich wie NVDIMM block drivers with NFIT

Buildin a small linux kernel
Buildin a small linux kernelBuildin a small linux kernel
Buildin a small linux kernel
trx2001
 
eetop.cn_UVM_REG_workshop.--------------pdf
eetop.cn_UVM_REG_workshop.--------------pdfeetop.cn_UVM_REG_workshop.--------------pdf
eetop.cn_UVM_REG_workshop.--------------pdf
SamHoney6
 
Accelerate Your Apache Spark with Intel Optane DC Persistent Memory
Accelerate Your Apache Spark with Intel Optane DC Persistent MemoryAccelerate Your Apache Spark with Intel Optane DC Persistent Memory
Accelerate Your Apache Spark with Intel Optane DC Persistent Memory
Databricks
 
Multi-faceted Microarchitecture Level Reliability Characterization for NVIDIA...
Multi-faceted Microarchitecture Level Reliability Characterization for NVIDIA...Multi-faceted Microarchitecture Level Reliability Characterization for NVIDIA...
Multi-faceted Microarchitecture Level Reliability Characterization for NVIDIA...
Stefano Di Carlo
 

Ähnlich wie NVDIMM block drivers with NFIT (20)

The ideal and reality of NVDIMM RAS
The ideal and reality of NVDIMM RASThe ideal and reality of NVDIMM RAS
The ideal and reality of NVDIMM RAS
 
Intel and DataStax: 3D XPoint and NVME Technology Cassandra Storage Comparison
Intel and DataStax: 3D XPoint and NVME Technology Cassandra Storage ComparisonIntel and DataStax: 3D XPoint and NVME Technology Cassandra Storage Comparison
Intel and DataStax: 3D XPoint and NVME Technology Cassandra Storage Comparison
 
Buildin a small linux kernel
Buildin a small linux kernelBuildin a small linux kernel
Buildin a small linux kernel
 
eetop.cn_UVM_REG_workshop.--------------pdf
eetop.cn_UVM_REG_workshop.--------------pdfeetop.cn_UVM_REG_workshop.--------------pdf
eetop.cn_UVM_REG_workshop.--------------pdf
 
ROCm and Distributed Deep Learning on Spark and TensorFlow
ROCm and Distributed Deep Learning on Spark and TensorFlowROCm and Distributed Deep Learning on Spark and TensorFlow
ROCm and Distributed Deep Learning on Spark and TensorFlow
 
Computer Platform
Computer PlatformComputer Platform
Computer Platform
 
The Forefront of the Development for NVDIMM on Linux Kernel
The Forefront of the Development for NVDIMM on Linux KernelThe Forefront of the Development for NVDIMM on Linux Kernel
The Forefront of the Development for NVDIMM on Linux Kernel
 
Accelerating Virtual Machine Access with the Storage Performance Development ...
Accelerating Virtual Machine Access with the Storage Performance Development ...Accelerating Virtual Machine Access with the Storage Performance Development ...
Accelerating Virtual Machine Access with the Storage Performance Development ...
 
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP Programming
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP ProgrammingHetergeneous Compute with Standards Based OFI/MPI/OpenMP Programming
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP Programming
 
Kvm for ibm_z_systems_v1.1.2_limits
Kvm for ibm_z_systems_v1.1.2_limitsKvm for ibm_z_systems_v1.1.2_limits
Kvm for ibm_z_systems_v1.1.2_limits
 
GPU Virtualization in SUSE
GPU Virtualization in SUSEGPU Virtualization in SUSE
GPU Virtualization in SUSE
 
Ibm spectrum scale fundamentals workshop for americas part 1 components archi...
Ibm spectrum scale fundamentals workshop for americas part 1 components archi...Ibm spectrum scale fundamentals workshop for americas part 1 components archi...
Ibm spectrum scale fundamentals workshop for americas part 1 components archi...
 
OpenStack Integration with OpenContrail and OpenDaylight
OpenStack Integration with OpenContrail and OpenDaylightOpenStack Integration with OpenContrail and OpenDaylight
OpenStack Integration with OpenContrail and OpenDaylight
 
Accelerate Your Apache Spark with Intel Optane DC Persistent Memory
Accelerate Your Apache Spark with Intel Optane DC Persistent MemoryAccelerate Your Apache Spark with Intel Optane DC Persistent Memory
Accelerate Your Apache Spark with Intel Optane DC Persistent Memory
 
Multi-faceted Microarchitecture Level Reliability Characterization for NVIDIA...
Multi-faceted Microarchitecture Level Reliability Characterization for NVIDIA...Multi-faceted Microarchitecture Level Reliability Characterization for NVIDIA...
Multi-faceted Microarchitecture Level Reliability Characterization for NVIDIA...
 
Mcdram Tutorial
Mcdram TutorialMcdram Tutorial
Mcdram Tutorial
 
Design and Optimize your code for high-performance with Intel® Advisor and I...
Design and Optimize your code for high-performance with Intel®  Advisor and I...Design and Optimize your code for high-performance with Intel®  Advisor and I...
Design and Optimize your code for high-performance with Intel® Advisor and I...
 
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDSAccelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
Accelerating Cassandra Workloads on Ceph with All-Flash PCIE SSDS
 
Creating an Embedded System Lab
Creating an Embedded System LabCreating an Embedded System Lab
Creating an Embedded System Lab
 
Best Practices for Deploying Enterprise Applications on UNIX
Best Practices for Deploying Enterprise Applications on UNIXBest Practices for Deploying Enterprise Applications on UNIX
Best Practices for Deploying Enterprise Applications on UNIX
 

Kürzlich hochgeladen

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Kürzlich hochgeladen (20)

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

NVDIMM block drivers with NFIT

  • 1. NVDIMM block drivers with NFIT March, 2016, SUSE Labs Taipei technology sharing day, Taipei Joey Lee SUSE Labs Taipei
  • 2. 2 Agenda • NVDIMM • NFIT • Conceptual model ‒ nvdimm.txt ‒ Namespace/Region ‒ PMEM ‒ BLK ‒ NFIT ‒ BTT • Q&A
  • 4. 4 NVDIMM • NVDIMM: Non-Volatile DIMM. Non-volatile memory in a DIMM form factor. [1] http://www.enterprisetech.com/2014/02/20/micron-pushes-memory-roadm ap-several-routes/
  • 7. 7 SPA/DPA • SPA: System Physical Address. A physical address on the host operating system. [1] • DPA: DIMM Physical Address. An address within the memory in an NVDIMM. [1]
  • 9. 9 SPA/DPA Interleave • DPA: DIMM Physical Address, is a DIMM-relative offset. With one DIMM in the system there would be a 1:1 system-physical-address:DPA association. Once more DIMMs are added an memory controller interleave must be decoded to determine the DPA associated with a given system-physical-address. BLK capacity always has a 1:1 relationship with a single-dimm's DPA range. [2]
  • 11. 11 PMEM • Persistent Memory (or PMEM): Byte‐addressable memory which retains its contents across power loss.A DIMM primarily containing non‐volatile memory. [3] • PMEM: A system physical address range where writes are persistent. A block device composed of PMEM is capable of DAX. A PMEM address range may span/interleave several DIMMs. [2] • DAX: File system extensions to bypass the page cache and block layer to mmap persistent memory, from a PMEM block device, directly into a process address space. [2]
  • 12. 12 Block Window • BW(Block Window): A set of registers consisting of a command register, a status register, and an aperture allowing the NVDIMM driver to read and write blocks of data to any persistent area on an NVDIMM. [1] • BLK: A set of one or more programmable memory mapped apertures provided by a DIMM to access its media. This indirection precludes the performance benefit of interleaving, but enables DIMM-bounded failure modes. [2]
  • 14. 14 BTT • Block Translation Table. A software data structure, defined in the NVDIMM Namespace Specification, which prevents torn blocks when a write is interrupted by a system crash, hang, or power failure. [1] • BTT: Existing software may have an expectation that the power-fail-atomicity of writes is at least one sector, 512 bytes. The BTT is an indirection table with atomic update semantics to front a PMEM/BLK block device driver and present arbitrary atomic sector sizes. [2]
  • 15. 15 Namespace • NVDIMM Namespace: Similar to an NVMe Namespace or a Logical Unit (LUN) on a SCSI disk, this is a software mechanism for managing ranges of persistence on NVDIMMs. [1] • NVDIMM Namespace Label: Labels, stored at a known location on NVDIMMs, that define the DIMM’s contribution to NVDIMM Namespaces. This is a software mechanism; the DIMM itself just sees the labels as part of the overall data stored on the DIMM. [1]
  • 16. 16 PMEM Namespace NVDIMM Namespace Specification, Intel
  • 17. 17 BLK Namespace NVDIMM Namespace Specification, Intel
  • 19. 19 I/O on Multi-Range BLK Namspaces NVDIMM Namespace Specification, Intel
  • 20. 20 Example Software Organization for Block I/O NVDIMM Namespace Specification, Intel
  • 21. 21 Example Software Organization for Namespace Management NVDIMM Namespace Specification, Intel
  • 22. NFIT
  • 23. 23 NFIT • NFIT: The NVDIMM Firmware Interface Table, which defines the ACPI-like information created by the BIOS to inform the OS about NVDIMMs in the system. [1] • Device Specific Method (DSM): The NVDIMM root device and the NVDIMM devices can have device specific methods (_DSM) to provide additional functions specific to a particular NVDIMM implementation. [4]
  • 25. 25 NFIT NVDIMM Block Window Driver Writer’s Guide, Intel
  • 26. 26 NFIT Information NVDIMM Block Window Driver Writer’s Guide, Intel
  • 27. 27 NFIT SPA NVDIMM Block Window Driver Writer’s Guide, Intel
  • 28. 28 NFIT Flush Hint NVDIMM Block Window Driver Writer’s Guide, Intel
  • 29. 29 NFIT Block Window NVDIMM Block Window Driver Writer’s Guide, Intel
  • 30. 30 NFIT (fixed) NVDIMM Block Window Driver Writer’s Guide, Intel
  • 37. 37 Conceptual model of driver/acpi/nfit
  • 38. Q&A
  • 39. 39 Reference • [1] NVDIMM Block Window Driver Writer’s Guide, Intel • [2] Documentation/nvdimm/nvdimm.txt, Linux Kernel • [3] NVDIMM Namespace Specification, Intel • [4] NVDIMM DSM Interface Example, Intel
  • 41.
  • 42. Corporate Headquarters Maxfeldstrasse 5 90409 Nuremberg Germany +49 911 740 53 0 (Worldwide) www.suse.com Join us on: www.opensuse.org 42
  • 43. Unpublished Work of SUSE. All Rights Reserved. This work is an unpublished work and contains confidential, proprietary and trade secret information of SUSE. Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. General Disclaimer This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for SUSE products remains at the sole discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.