SlideShare a Scribd company logo
1 of 37
Download to read offline
Provision Intel® Optane™ DC Persistent Memory in Linux*
SPDK, PMDK & Vtune™ Summit
Agenda
 Intel’s Memory Mode
 Linux Utilities
 Verifying Hardware
 Validating OS Support
 Provisioning Persistent Memory (App Direct)
 Provisioning Walkthrough Examples
 Q&A
2
SPDK, PMDK & Vtune™ Summit
ProvisioningPersistentMemory
Memory Mode
SPDK, PMDK & Vtune™ Summit 4
UsingtheBIOS&BMC
Auto = Use on-DIMM config
1LM = AppDirect
2LM = Memory Mode
1
2
3
4
SPDK, PMDK & Vtune™ Summit 5
Ipmctl:Creatingamemorymodegoal(100%ofpmem)
# ipmctl create -goal MemoryMode=100
The following configuration will be applied:
SocketID | DimmID | MemorySize | AppDirect1Size | AppDirect2Size
==================================================================
0x0000 | 0x0001 | 252.0 GiB | 0.0 GiB | 0.0 GiB
0x0000 | 0x0011 | 252.0 GiB | 0.0 GiB | 0.0 GiB
0x0000 | 0x0021 | 252.0 GiB | 0.0 GiB | 0.0 GiB
0x0000 | 0x0101 | 252.0 GiB | 0.0 GiB | 0.0 GiB
0x0000 | 0x0111 | 252.0 GiB | 0.0 GiB | 0.0 GiB
0x0000 | 0x0121 | 252.0 GiB | 0.0 GiB | 0.0 GiB
0x0001 | 0x1001 | 252.0 GiB | 0.0 GiB | 0.0 GiB
0x0001 | 0x1011 | 252.0 GiB | 0.0 GiB | 0.0 GiB
0x0001 | 0x1021 | 252.0 GiB | 0.0 GiB | 0.0 GiB
0x0001 | 0x1101 | 252.0 GiB | 0.0 GiB | 0.0 GiB
0x0001 | 0x1111 | 252.0 GiB | 0.0 GiB | 0.0 GiB
0x0001 | 0x1121 | 252.0 GiB | 0.0 GiB | 0.0 GiB
Do you want to continue? [y/n] y
…
A reboot is required to process new memory allocation goals.
# systemctl reboot
MemorySize:
The DCPMM capacity that will be
configured in Memory Mode.
AppDirect1Size:
The DCPMM capacity that will be
configured as the first App Direct
interleave set if applicable.
AppDirect2Size:
The DCPMM capacity that will be
configured as the second App Direct
interleave set if applicable.
SPDK, PMDK & Vtune™ Summit 6
MemoryModeViewedfromtheoperatingsystem
# lsmem
...
Memory block size: 1G
Total online memory: 3T
Total offline memory: 0B
# free -g
total used free shared buff/cache available
Mem: 2975 5 2969 0 0 2961
Swap: 31 0 31
System Config:
2-Socket
DDR: 384GB
PMEM: 3TB
# top
top - 16:18:31 up 7 min, 1 user, load average: 0.00, 0.07, 0.06
Tasks: 839 total, 1 running, 838 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
TiB Mem : 2.9 total, 2.9 free, 0.0 used, 0.0 buff/cache
TiB Swap: 0.0 total, 0.0 free, 0.0 used. 2.9 avail Mem
# ipmctl show -memoryresources
Capacity=3029.4 GiB
MemoryCapacity=3024.0 GiB
AppDirectCapacity=0.0 GiB
UnconfiguredCapacity=0.0 GiB
InaccessibleCapacity=0.0 GiB
ReservedCapacity=5.4 GiB
SPDK, PMDK & Vtune™ Summit 7
Ipmctl:Creatingamemory&Appdirectmixedgoal
# ipmctl create -goal MemoryMode=50
The following configuration will be applied:
SocketID | DimmID | MemorySize | AppDirect1Size | AppDirect2Size
==================================================================
0x0000 | 0x0001 | 124.0 GiB | 128.0 GiB | 0.0 GiB
0x0000 | 0x0011 | 124.0 GiB | 128.0 GiB | 0.0 GiB
0x0000 | 0x0021 | 124.0 GiB | 128.0 GiB | 0.0 GiB
0x0000 | 0x0101 | 124.0 GiB | 128.0 GiB | 0.0 GiB
0x0000 | 0x0111 | 124.0 GiB | 128.0 GiB | 0.0 GiB
0x0000 | 0x0121 | 124.0 GiB | 128.0 GiB | 0.0 GiB
0x0001 | 0x1001 | 124.0 GiB | 128.0 GiB | 0.0 GiB
0x0001 | 0x1011 | 124.0 GiB | 128.0 GiB | 0.0 GiB
0x0001 | 0x1021 | 124.0 GiB | 128.0 GiB | 0.0 GiB
0x0001 | 0x1101 | 124.0 GiB | 128.0 GiB | 0.0 GiB
0x0001 | 0x1111 | 124.0 GiB | 128.0 GiB | 0.0 GiB
0x0001 | 0x1121 | 124.0 GiB | 128.0 GiB | 0.0 GiB
Do you want to continue? [y/n] y
…
A reboot is required to process new memory allocation goals.
# systemctl reboot
Note: 100% of DRAM is
used for the
MemoryMode Cache
LinuxUtilities
ipmctl & ndctl
SPDK, PMDK & Vtune™ Summit 9
Linuxutilities–ipmctlandndctl IPMCTL NDCTL
Vendor Intel® Neutral
Open Source Yes Yes
Linux Yes Yes
Windows Yes No
Manage Goals/Regions Yes No
Manage Namespaces No* Yes
Health/S.M.A.R.T Yes Yes
Performance Yes No
Security Yes Yes
* Available in UEFI
IPMCTL
• Intel® Optane® Technology only
• Linux, Windows, & UEFI
• Manage Hardware features
• Discover & Manage Modules
• Provision Platform Config – Memory or AppDirect
• View & Update Module Firmware
• Monitor Health
• Track Performance
• Debug & Troubleshoot
NDCTL
• Vendor Neutral
• Linux only
• Manage Hardware and OS features
• Show Module Information
• Manage Namespaces & Config Labels
• Monitor Health
• Manage Security - Passphrases & Secure Erase
• Error Injection/Testing
SPDK, PMDK & Vtune™ Summit 10
ipmctl-UtilityformanagingIntelOptaneDCpersistentmemorymodules
show –device
show -dimm
show –memory-resources
show –socket
show –system-capabilities
show -topology
change –device-passphrase
change –device-security
enable –device-security
erase –device-data
create -goal
delete -goal
show –goal
dump –goal
load –goal
show -region
show -performance
show -sensor
change -sensor
dump -support
show –events
show –firmware
show –host
acknowledge –event
update -firmware
change –preferences
show -preferences
help
dump –debug-log
inject -error
run -diagnostic
show -acpi
show -pcd
show –nfit
show –error-log
Device Discovery
SecurityProvision Memory Health & Performance
Support & Maintenance
Debugging
SPDK, PMDK & Vtune™ Summit 11
Ndctl-Managelinux"libnvdimm"subsystemdevices
# ndctl
check-labels disable-namespace freeze-security list sanitize-dimm version
check-namespace disable-region help load-keys setup-passphrase wait-overwrite
create-namespace enable-dimm init-labels monitor start-scrub wait-scrub
destroy-namespace enable-namespace inject-error read-labels update-firmware write-labels
disable-dimm enable-region inject-smart remove-passphrase update-passphrase zero-labels
Abrieflookatthehardware
SPDK, PMDK & Vtune™ Summit 13
HowtoverifyOptanePMEM&DDRtopology
DRAM
Persistent
Memory
32 32
32 32
32
256256
32
256 256
256 256
32 32
32 32
32
256256
32
256 256
256 256
384 GiB
3072 GiB
Total:
3456 GiB
StorageStorage
DRAM & PMEM Solution
# ipmctl show -dimm
DimmID | Capacity | HealthState | ActionRequired | LockState | FWVersion
==============================================================================
0x0001 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346
0x0011 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346
0x0021 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346
[….]
0x1101 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346
0x1111 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346
0x1121 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346
# ipmctl show -topology
DimmID | MemoryType| Capacity | PhysicalID| DeviceLocator
============================================================
0x0001 | DCPM | 252.4 GiB | 0x0028 | CPU1_DIMM_A2
0x0011 | DCPM | 252.4 GiB | 0x002c | CPU1_DIMM_B2
[…]
N/A | DDR4 | 32.0 GiB | 0x004a | CPU2_DIMM_C1
N/A | DDR4 | 32.0 GiB | 0x0050 | CPU2_DIMM_D1
N/A | DDR4 | 32.0 GiB | 0x0054 | CPU2_DIMM_E1
N/A | DDR4 | 32.0 GiB | 0x0058 | CPU2_DIMM_F1
# ipmctl show -memoryresources
Capacity=3029.4 GiB
MemoryCapacity=0.0 GiB
AppDirectCapacity=3024.0 GiB
UnconfiguredCapacity=5.2 GiB
InaccessibleCapacity=0.0 GiB
ReservedCapacity=0.2 GiB
SPDK, PMDK & Vtune™ Summit 14
UsingndctltoviewPMEMtopology$ ndctl list –DFH # List DIMM, Firmware, & Health
[
{
"dev":"nmem1",
"id":"8089-a2-1837-00000bb3",
"handle":17,
"phys_id":44,
"health":{
"health_state":"ok",
"temperature_celsius":29.0,
"controller_temperature_celsius":28.0,
"spares_percentage":100,
"alarm_temperature":false,
"alarm_controller_temperature":false,
"alarm_spares":false,
"alarm_enabled_media_temperature":false,
"alarm_enabled_ctrl_temperature":false,
"alarm_enabled_spares":false,
"shutdown_state":"clean",
"shutdown_count":1
},
"firmware":{
"current_version":4328543046
}
},
[…]
$ ndctl list –NuRD # List Modules, Regions, & Namespaces
"dimms":[
{
"dev":"nmem1",
"id":"8089-a2-1837-00000bb3",
"handle":"0x11",
"phys_id":"0x2c"
},
[…]
"regions":[
{
"dev":"region1",
"size":"1512.00 GiB (1623.50 GB)",
"available_size":0,
"max_available_extent":0,
"type":"pmem",
"mappings":[
{
"dimm":"nmem11",
"offset":"0x10000000",
"length":"0x3f00000000",
"position":5
},
[…]
"namespaces":[
{
"dev":"namespace1.0",
"mode":"fsdax",
"map":"dev",
"size":"1488.37 GiB (1598.13 GB)",
"uuid":"47cbd389-b1ec-4827-96f1-cbd0c0955c41",
"sector_size":512,
"align":2097152,
"blockdev":"pmem1"
}
ValidatingOperatingSystemSupport
SPDK, PMDK & Vtune™ Summit
VerifyingOperatingSystemSupport
• The BIOS must provide NFIT (Non-Volatile Firmware Interface Table) info
# ndctl list --bus all | grep -i nfit
"provider":"ACPI.NFIT",
• Verify the Kernel has PMEM and NVDIMM support enabled
# egrep -i "pmem|nvdimm" /boot/config-`uname -r`
CONFIG_X86_PMEM_LEGACY_DEVICE=y
CONFIG_X86_PMEM_LEGACY=m
CONFIG_LIBNVDIMM=y
CONFIG_BLK_DEV_PMEM=m
CONFIG_NVDIMM_PFN=y
CONFIG_NVDIMM_DAX=y
CONFIG_DEV_DAX_PMEM=m
CONFIG_ARCH_HAS_PMEM_API=y
• Check dmesg
# dmesg | grep e820 | grep -i persistent
[ 0.000000] BIOS-e820: [mem 0x0000003060000000-0x000001aa5fffffff] persistent (type 7)
[ 0.000000] BIOS-e820: [mem 0x000001da00000000-0x00000353ffffffff] persistent (type 7)
ProvisioningPersistentMemoryApp Direct
SPDK, PMDK & Vtune™ Summit 18
AccessingPersistentMemoryfromtheOS
Legacy Storage APIs
Block Atomicity
Storage APIs with DAX
(AppDirect)
PersistentMemory
USERSPACEKERNELSPACE
Standard
File API
GenericNVDIMMDriver
Application
FileSystem
Standard
Raw
Device
Access
mmap
Load/
Store
Standard
File API
pmem-Aware
FileSystem
MMU
Mappings
“DAX”
BTT
DevDAX
PMDK
mmap
HARDWARE
• No Code Changes Required
• Operates in Blocks like SSD/HDD
• Traditional read/write
• Works with Existing File
Systems
• Atomicity at block level
• Block size configurable
• 4K, 512B*
• NVDIMM Driver required
• Support starting Kernel 4.2
• Configured as Boot Device
• Higher Endurance than Enterprise
SSDs
• High Performance Block Storage
• Low Latency, higher BW, High
IOPs
*Requires Linux
• Code changes may be required*
• Bypasses file system page cache
• Requires DAX enabled file system
• XFS, EXT4, NTFS
• No Kernel Code or interrupts
• No interrupts
• Fastest IO path possible
* Code changes required for load/store direct
access if the application does not already
support this.
SPDK, PMDK & Vtune™ Summit
ProvisioningPersistentmemorySteps
Create Regions
(Hardware)
Create
Namespaces
(Kernel)
Make & Mount
File Systems
(User Space)
1 2 3
SPDK, PMDK & Vtune™ Summit 20
Step1-CreatingRegions(vendorspecific)
AnIntelOptaneDCPersistentMemoryExample
0
# ipmctl create -goal PersistentMemoryType=AppDirect
# reboot
1 2 3 4 5
Region0
Interleaved Sets
0
# ipmctl create -goal PersistentMemoryType=AppDirect
# reboot
1 2 3 4 5
Region0
Non-Interleaved Sets
Region1
Region2
Region3
Region4
Region5
PMEM
Modules
Note: Cannot Interleave
across sockets.
SPDK, PMDK & Vtune™ Summit 21
Ipmctl:CreateanAppDirectGoal# ipmctl create -goal PersistentMemoryType=AppDirect
The following configuration will be applied:
SocketID | DimmID | MemorySize | AppDirect1Size | AppDirect2Size
==================================================================
0x0000 | 0x0001 | 0.0 GiB | 252.0 GiB | 0.0 GiB
0x0000 | 0x0011 | 0.0 GiB | 252.0 GiB | 0.0 GiB
0x0000 | 0x0021 | 0.0 GiB | 252.0 GiB | 0.0 GiB
0x0000 | 0x0101 | 0.0 GiB | 252.0 GiB | 0.0 GiB
0x0000 | 0x0111 | 0.0 GiB | 252.0 GiB | 0.0 GiB
0x0000 | 0x0121 | 0.0 GiB | 252.0 GiB | 0.0 GiB
0x0001 | 0x1001 | 0.0 GiB | 252.0 GiB | 0.0 GiB
0x0001 | 0x1011 | 0.0 GiB | 252.0 GiB | 0.0 GiB
0x0001 | 0x1021 | 0.0 GiB | 252.0 GiB | 0.0 GiB
…
Do you want to continue? [y/n] y
…
A reboot is required to process new memory allocation goals.
# systemctl reboot
…
# ipmctl show -region
SocketID | ISetID | PersistentMemoryType | Capacity | FreeCapacity | HealthState
================================================================================================
0x0000 | 0x2d3c7f48f4e22ccc | AppDirect | 1512.0 GiB | 1512.0 GiB | Healthy
0x0001 | 0xdd387f488ce42ccc | AppDirect | 1512.0 GiB | 1512.0 GiB | Healthy
SPDK, PMDK & Vtune™ Summit 22
Step2&3–CreatingNamespaces&Filesystems
PMEM (Socket1)PMEM (Socket0)
Volatile
DRAM
Region 0
Namespace0.0
(fsdax)
/dev/pmem0
DAX
Filesystem
Namespace0.1
(devdax)
/dev/dax0.1
Region 1
Namespace1.0
(sector)
/dev/pmem1s
DAX
Filesystem
Namespace1.1
(fsdax)
/dev/pmem2
NVDIMM
Driver
(Kernel)
Hardware
DAX Filesystems:
EXT4, XFS, NTFS
Persistent Memory
Devices
Namespaces
Regions
(Interleave Sets)
Mount DAX-enabled file
system onto DCPMMs
Operating System
defined software device
representing the
namespace
ndctl (Linux): configures
& manages namespaces
ipmctl (Linux or UEFI):
configures & manages
the regions on the
DIMMs
DAX
FS
DAX
FS
SPDK, PMDK & Vtune™ Summit
23
Namespacemodes
FSDAX (Default)
• Default namespace mode
• Supports XFS & EXT4
• Removes Page Cache
• Allows Direct Mappings to PMEM
• Block Device (/dev/pmem0)
DEVDAX
• Similar mmap() capabilities to FSDAX
• Useful for RDMA
• Removes Page Cache
• Allows Direct Mappings to PMEM
• Character Device (/dev/dax0.0)
SECTOR
• Supports any filesystem
• Sector/Block Atomicity
• No DAX Support
• OS Bootable
• Block Device (/dev/pmem0s)
RAW
• Acts like a Memory Disk
• No DAX Support
See:
• https://docs.pmem.io/ndctl-users-guide/managing-namespaces
• # man ndctl-create-namespace
SPDK, PMDK & Vtune™ Summit
Vendor Neutral
Vendor Specific
24
Howtocreatedaxfilesystems(FSDAX)
PMEM (Socket1)PMEM (Socket0)
Applications
(User Space)
NVDIMM
Driver
(Kernel)
Hardware
Region 0
Namespace0.0
/dev/pmem0
DAX
Filesystem
# ipmctl create -goal PersistentMemoryType=AppDirect
# reboot
# ndctl create-namespace --region region0 -–mode fsdax
# ndctl create-namespace --region region1 -–mode fsdax
# mkfs.ext4 /dev/pmem0
# mkfs.ext4 /dev/pmem1
# mount –o dax /dev/pmem0 /pmemfs0
# mount –o dax /dev/pmem1 /pmemfs1
Namespace1.0
/dev/pmem1
DAX
Filesystem
Region 1
Defaults
new
SPDK, PMDK & Vtune™ Summit
Vendor Neutral
Vendor Specific
25
HowtocreateBlockatomicfilesystems(sector)
PMEM (Socket1)PMEM (Socket0)
Applications
(User Space)
NVDIMM
Driver
(Kernel)
Hardware
Region 0
Namespace0.0
/dev/pmem0s
DAX
Filesystem
# ipmctl create -goal PersistentMemoryType=AppDirect
# reboot
# ndctl create-namespace --region region0 -–mode sector
# ndctl create-namespace --region region1 -–mode sector
# mkfs.ext4 /dev/pmem0
# mkfs.ext4 /dev/pmem1
# mount /dev/pmem0 /pmemfs0
# mount /dev/pmem1 /pmemfs1
Namespace1.0
/dev/pmem1s
DAX
Filesystem
Region 1
SPDK, PMDK & Vtune™ Summit
Vendor Neutral
Vendor Specific
26
Howtodevicedaxinstances(devdax)
PMEM (Socket1)PMEM (Socket0)
Applications
(User Space)
NVDIMM
Driver
(Kernel)
Hardware
Region 0
Namespace0.0
/dev/dax0.0
# ipmctl create -goal PersistentMemoryType=AppDirect
# reboot
# ndctl create-namespace --region region0 -–mode devdax
# ndctl create-namespace --region region1 -–mode devdax
Namespace1.0
/dev/dax1.0
Region 1
SPDK, PMDK & Vtune™ Summit
Vendor Neutral
Vendor Specific
27
Howtopartitionregions
PMEM (Socket1)PMEM (Socket0)
Applications
(User Space)
NVDIMM
Driver
(Kernel)
Hardware
Region 0
Namespace0.0/dev/pmem0
DAX
Filesystem
# ipmctl create -goal PersistentMemoryType=AppDirect
# reboot
# ndctl create-namespace --region region0 -–mode fsdax
--size 50g
# ndctl create-namespace --region region0 -–mode fsdax
--size 200g
# ndctl create-namespace --region region1 -–mode fsdax
# mkfs.ext4 /dev/pmem0
# mkfs.xfs /dev/pmem0.1
# mkfs.ext4 /dev/pmem1
# mount –o dax /dev/pmem0 /pmemfs0-0
# mount –o dax /dev/pmem0.1 /pmemfs0-1
# mount –o dax /dev/pmem1 /pmemfs1-0
Namespace1.0
/dev/pmem1
DAX
Filesystem
Region 1
Namespace0.1/dev/pmem0.1
DAX
Filesystem
SPDK, PMDK & Vtune™ Summit
Vendor Neutral
Vendor Specific
28
Howtopartitionnamespaces(FSDAX&SECTOR)
PMEM (Socket1)PMEM (Socket0)
Applications
(User Space)
NVDIMM
Driver
(Kernel)
Hardware
Region 0
DAX
Filesystem
# ipmctl create -goal PersistentMemoryType=AppDirect
# reboot
# ndctl create-namespace --region region0 -–mode fsdax
# ndctl create-namespace --region region1 -–mode sector
# fdisk /dev/pmem0
<Create partition table>
# fdisk /dev/pmem1s
<Create partition table>
# mkfs.ext4 /dev/pmem0p0
# mkfs.xfs /dev/pmem0p1
# mkfs.ext4 /dev/pmem1sp0
# mkfs.ext4 /dev/pmem1sp1
# mount –o dax /dev/pmem0p0 /pmemfs0-0
# mount –o dax /dev/pmem0p1 /pmemfs0-1
# mount /dev/pmem1p0 /pmemfs1-0
# mount /dev/pmem1p1 /pmemfs1-1
Namespace1.0
/dev/pmem1s
Region 1
DAX
Filesystem
Namespace0.0
/dev/pmem0
DAX
Filesystem
DAX
Filesystem
SPDK, PMDK & Vtune™ Summit
Vendor Neutral
Vendor Specific
29
HowtoRAIDnamespaces(FSDAX&SECTOR)
PMEM (Socket1)PMEM (Socket0)
Applications
(User Space)
NVDIMM
Driver
(Kernel)
Hardware
Region 0
DAX Filesystem
# ipmctl create -goal PersistentMemoryType=AppDirect
# reboot
# ndctl create-namespace --region region0 -–mode fsdax
# ndctl create-namespace --region region1 -–mode fsdax
Create an LVM or DM dm-stripe or dm-linear, eg:
# echo -e "0 $(( `blockdev --getsz /dev/pmem0` + 
`blockdev --getsz /dev/pmem0` )) striped 2 4096 
/dev/pmem0 0 /dev/pmem1 0" | 
sudo dmsetup create striped-pmem
# fdisk /dev/mapper/striped-pmem
# mkfs.ext4 -b 4096 -E stride=512 
-F /dev/mapper/striped-pmem
# mount –o dax /dev/mapper/striped-pmem /mystripedpmemfs
Namespace1.0
/dev/pmem1
Region 1
Namespace0.0
/dev/pmem0
LVM or Device-Mapper
Note: Stripe or Concat only
Blog: http://pmem.io/2018/05/15/using_persistent_memory_devices_with_the_linux_device_mapper.html
PersistentMemoryinGCP
30
SPDK, PMDK & Vtune™ Summit
SPDK, PMDK & Vtune™ Summit 32
SPDK, PMDK & Vtune™ Summit 33
Resources
• ipmctl: https://github.com/intel/ipmctl
• ndctl: https://github.com/pmem/ndctl
• https://docs.pmem.io
• Quick Start Guides (Persistent Memory)
• Getting Started Guides (Persistent Memory)
• NDCTL User Guide
• Intel PMEM Developer Zone - https://software.intel.com/pmem
• IPMCTL Quick Start Guide
• Videos
• Knowledge Articles
• Persistent Memory Developer Kit (PMDK) Code Examples
Q&A
34
Provision Intel® Optane™ DC Persistent Memory in Linux*
SPDK, PMDK & Vtune™ Summit 36
Backup
Provision Intel® Optane™ DC Persistent Memory in Linux*

More Related Content

What's hot

Kernel Recipes 2017: Using Linux perf at Netflix
Kernel Recipes 2017: Using Linux perf at NetflixKernel Recipes 2017: Using Linux perf at Netflix
Kernel Recipes 2017: Using Linux perf at NetflixBrendan Gregg
 
Understanding and Measuring I/O Performance
Understanding and Measuring I/O PerformanceUnderstanding and Measuring I/O Performance
Understanding and Measuring I/O PerformanceGlenn K. Lockwood
 
Crimson: Ceph for the Age of NVMe and Persistent Memory
Crimson: Ceph for the Age of NVMe and Persistent MemoryCrimson: Ceph for the Age of NVMe and Persistent Memory
Crimson: Ceph for the Age of NVMe and Persistent MemoryScyllaDB
 
Slab Allocator in Linux Kernel
Slab Allocator in Linux KernelSlab Allocator in Linux Kernel
Slab Allocator in Linux KernelAdrian Huang
 
[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍KyeongWon Koo
 
intel speed-select-technology-base-frequency-enhancing-performance
intel speed-select-technology-base-frequency-enhancing-performanceintel speed-select-technology-base-frequency-enhancing-performance
intel speed-select-technology-base-frequency-enhancing-performanceDESMOND YUEN
 
nGram full text search (by 이성욱)
nGram full text search (by 이성욱)nGram full text search (by 이성욱)
nGram full text search (by 이성욱)I Goo Lee.
 
Sparc t4 2 system technical overview
Sparc t4 2 system technical overviewSparc t4 2 system technical overview
Sparc t4 2 system technical overviewsolarisyougood
 
Systems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting StartedSystems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting StartedBrendan Gregg
 
GlusterFS As an Object Storage
GlusterFS As an Object StorageGlusterFS As an Object Storage
GlusterFS As an Object StorageKeisuke Takahashi
 
Final draft intel core i5 processors architecture
Final draft intel core i5 processors architectureFinal draft intel core i5 processors architecture
Final draft intel core i5 processors architectureJawid Ahmad Baktash
 
RHEVM - Live Storage Migration
RHEVM - Live Storage MigrationRHEVM - Live Storage Migration
RHEVM - Live Storage MigrationRaz Tamir
 
AMD Hot Chips Bulldozer & Bobcat Presentation
AMD Hot Chips Bulldozer & Bobcat PresentationAMD Hot Chips Bulldozer & Bobcat Presentation
AMD Hot Chips Bulldozer & Bobcat PresentationAMD
 
Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0Ceph Community
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)NAVER D2
 
Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)Brendan Gregg
 
Intel® core™ i5 700 desktop processor
Intel® core™ i5 700 desktop processorIntel® core™ i5 700 desktop processor
Intel® core™ i5 700 desktop processorYara Ali
 
YOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceYOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceBrendan Gregg
 

What's hot (20)

Kernel Recipes 2017: Using Linux perf at Netflix
Kernel Recipes 2017: Using Linux perf at NetflixKernel Recipes 2017: Using Linux perf at Netflix
Kernel Recipes 2017: Using Linux perf at Netflix
 
Understanding and Measuring I/O Performance
Understanding and Measuring I/O PerformanceUnderstanding and Measuring I/O Performance
Understanding and Measuring I/O Performance
 
Crimson: Ceph for the Age of NVMe and Persistent Memory
Crimson: Ceph for the Age of NVMe and Persistent MemoryCrimson: Ceph for the Age of NVMe and Persistent Memory
Crimson: Ceph for the Age of NVMe and Persistent Memory
 
Slab Allocator in Linux Kernel
Slab Allocator in Linux KernelSlab Allocator in Linux Kernel
Slab Allocator in Linux Kernel
 
[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍
 
intel speed-select-technology-base-frequency-enhancing-performance
intel speed-select-technology-base-frequency-enhancing-performanceintel speed-select-technology-base-frequency-enhancing-performance
intel speed-select-technology-base-frequency-enhancing-performance
 
nGram full text search (by 이성욱)
nGram full text search (by 이성욱)nGram full text search (by 이성욱)
nGram full text search (by 이성욱)
 
Sparc t4 2 system technical overview
Sparc t4 2 system technical overviewSparc t4 2 system technical overview
Sparc t4 2 system technical overview
 
Spark Tips & Tricks
Spark Tips & TricksSpark Tips & Tricks
Spark Tips & Tricks
 
Much Ado About CPU
Much Ado About CPUMuch Ado About CPU
Much Ado About CPU
 
Systems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting StartedSystems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting Started
 
GlusterFS As an Object Storage
GlusterFS As an Object StorageGlusterFS As an Object Storage
GlusterFS As an Object Storage
 
Final draft intel core i5 processors architecture
Final draft intel core i5 processors architectureFinal draft intel core i5 processors architecture
Final draft intel core i5 processors architecture
 
RHEVM - Live Storage Migration
RHEVM - Live Storage MigrationRHEVM - Live Storage Migration
RHEVM - Live Storage Migration
 
AMD Hot Chips Bulldozer & Bobcat Presentation
AMD Hot Chips Bulldozer & Bobcat PresentationAMD Hot Chips Bulldozer & Bobcat Presentation
AMD Hot Chips Bulldozer & Bobcat Presentation
 
Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)
 
Intel® core™ i5 700 desktop processor
Intel® core™ i5 700 desktop processorIntel® core™ i5 700 desktop processor
Intel® core™ i5 700 desktop processor
 
YOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceYOW2020 Linux Systems Performance
YOW2020 Linux Systems Performance
 

Similar to Provision Intel® Optane™ DC Persistent Memory in Linux*

HKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case studyHKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case studyLinaro
 
Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debugginglibfetion
 
A Study on Atomics-based Integer Sum Reduction in HIP on AMD GPU
A Study on Atomics-based Integer Sum Reduction in HIP on AMD GPUA Study on Atomics-based Integer Sum Reduction in HIP on AMD GPU
A Study on Atomics-based Integer Sum Reduction in HIP on AMD GPUCarlos Reaño González
 
UWE Linux Boot Camp 2007: Hacking embedded Linux on the cheap
UWE Linux Boot Camp 2007: Hacking embedded Linux on the cheapUWE Linux Boot Camp 2007: Hacking embedded Linux on the cheap
UWE Linux Boot Camp 2007: Hacking embedded Linux on the cheapedlangley
 
SiteGround Tech TeamBuilding
SiteGround Tech TeamBuildingSiteGround Tech TeamBuilding
SiteGround Tech TeamBuildingMarian Marinov
 
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1Yukio Saito
 
Part 3 Maximizing the utilization of GPU resources on-premise and in the cloud
Part 3 Maximizing the utilization of GPU resources on-premise and in the cloudPart 3 Maximizing the utilization of GPU resources on-premise and in the cloud
Part 3 Maximizing the utilization of GPU resources on-premise and in the cloudUniva, an Altair Company
 
Kernel debug log and console on openSUSE
Kernel debug log and console on openSUSEKernel debug log and console on openSUSE
Kernel debug log and console on openSUSESUSE Labs Taipei
 
Volatile Uses for Persistent Memory
Volatile Uses for Persistent MemoryVolatile Uses for Persistent Memory
Volatile Uses for Persistent MemoryIntel® Software
 
GPU profiling for computer vision applications
GPU profiling for computer vision applicationsGPU profiling for computer vision applications
GPU profiling for computer vision applicationsMai Nishimura
 
Когда предрелизный не только софт
Когда предрелизный не только софтКогда предрелизный не только софт
Когда предрелизный не только софтCEE-SEC(R)
 
Memory Management in TIZEN - Samsung SW Platform Team
Memory Management in TIZEN - Samsung SW Platform TeamMemory Management in TIZEN - Samsung SW Platform Team
Memory Management in TIZEN - Samsung SW Platform TeamRyo Jin
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightLinaro
 
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」PC Cluster Consortium
 
Accelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slidesAccelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slidesDmitry Vostokov
 

Similar to Provision Intel® Optane™ DC Persistent Memory in Linux* (20)

Cgroups in android
Cgroups in androidCgroups in android
Cgroups in android
 
Muda Proposal
Muda ProposalMuda Proposal
Muda Proposal
 
HKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case studyHKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case study
 
Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debugging
 
A Study on Atomics-based Integer Sum Reduction in HIP on AMD GPU
A Study on Atomics-based Integer Sum Reduction in HIP on AMD GPUA Study on Atomics-based Integer Sum Reduction in HIP on AMD GPU
A Study on Atomics-based Integer Sum Reduction in HIP on AMD GPU
 
UWE Linux Boot Camp 2007: Hacking embedded Linux on the cheap
UWE Linux Boot Camp 2007: Hacking embedded Linux on the cheapUWE Linux Boot Camp 2007: Hacking embedded Linux on the cheap
UWE Linux Boot Camp 2007: Hacking embedded Linux on the cheap
 
SiteGround Tech TeamBuilding
SiteGround Tech TeamBuildingSiteGround Tech TeamBuilding
SiteGround Tech TeamBuilding
 
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1
Nvidia® cuda™ 5.0 Sample Evaluation Result Part 1
 
Part 3 Maximizing the utilization of GPU resources on-premise and in the cloud
Part 3 Maximizing the utilization of GPU resources on-premise and in the cloudPart 3 Maximizing the utilization of GPU resources on-premise and in the cloud
Part 3 Maximizing the utilization of GPU resources on-premise and in the cloud
 
Kernel debug log and console on openSUSE
Kernel debug log and console on openSUSEKernel debug log and console on openSUSE
Kernel debug log and console on openSUSE
 
Volatile Uses for Persistent Memory
Volatile Uses for Persistent MemoryVolatile Uses for Persistent Memory
Volatile Uses for Persistent Memory
 
GPU profiling for computer vision applications
GPU profiling for computer vision applicationsGPU profiling for computer vision applications
GPU profiling for computer vision applications
 
Clear cache memory
Clear cache memoryClear cache memory
Clear cache memory
 
Multipath
MultipathMultipath
Multipath
 
Когда предрелизный не только софт
Когда предрелизный не только софтКогда предрелизный не только софт
Когда предрелизный не только софт
 
Memory Management in TIZEN - Samsung SW Platform Team
Memory Management in TIZEN - Samsung SW Platform TeamMemory Management in TIZEN - Samsung SW Platform Team
Memory Management in TIZEN - Samsung SW Platform Team
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with Coresight
 
Joel Falcou, Boost.SIMD
Joel Falcou, Boost.SIMDJoel Falcou, Boost.SIMD
Joel Falcou, Boost.SIMD
 
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」
 
Accelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slidesAccelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slides
 

More from Intel® Software

AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology Intel® Software
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaPython Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaIntel® Software
 
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSciStreamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSciIntel® Software
 
AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.Intel® Software
 
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Intel® Software
 
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...Intel® Software
 
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...Intel® Software
 
AWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI ResearchAWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI ResearchIntel® Software
 
Intel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview SlidesIntel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview SlidesIntel® Software
 
AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019Intel® Software
 
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019Intel® Software
 
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Intel® Software
 
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...Intel® Software
 
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...Intel® Software
 
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...Intel® Software
 
AIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino SlidesAIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino SlidesIntel® Software
 
AIDC India - AI Vision Slides
AIDC India - AI Vision SlidesAIDC India - AI Vision Slides
AIDC India - AI Vision SlidesIntel® Software
 
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...Intel® Software
 

More from Intel® Software (20)

AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaPython Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and Anaconda
 
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSciStreamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
 
AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.
 
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
 
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
 
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
 
AWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI ResearchAWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI Research
 
Intel Developer Program
Intel Developer ProgramIntel Developer Program
Intel Developer Program
 
Intel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview SlidesIntel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview Slides
 
AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019
 
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
 
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
 
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
 
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
 
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
 
AIDC India - AI on IA
AIDC India  - AI on IAAIDC India  - AI on IA
AIDC India - AI on IA
 
AIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino SlidesAIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino Slides
 
AIDC India - AI Vision Slides
AIDC India - AI Vision SlidesAIDC India - AI Vision Slides
AIDC India - AI Vision Slides
 
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
 

Recently uploaded

UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 

Recently uploaded (20)

UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 

Provision Intel® Optane™ DC Persistent Memory in Linux*

  • 2. SPDK, PMDK & Vtune™ Summit Agenda  Intel’s Memory Mode  Linux Utilities  Verifying Hardware  Validating OS Support  Provisioning Persistent Memory (App Direct)  Provisioning Walkthrough Examples  Q&A 2
  • 3. SPDK, PMDK & Vtune™ Summit ProvisioningPersistentMemory Memory Mode
  • 4. SPDK, PMDK & Vtune™ Summit 4 UsingtheBIOS&BMC Auto = Use on-DIMM config 1LM = AppDirect 2LM = Memory Mode 1 2 3 4
  • 5. SPDK, PMDK & Vtune™ Summit 5 Ipmctl:Creatingamemorymodegoal(100%ofpmem) # ipmctl create -goal MemoryMode=100 The following configuration will be applied: SocketID | DimmID | MemorySize | AppDirect1Size | AppDirect2Size ================================================================== 0x0000 | 0x0001 | 252.0 GiB | 0.0 GiB | 0.0 GiB 0x0000 | 0x0011 | 252.0 GiB | 0.0 GiB | 0.0 GiB 0x0000 | 0x0021 | 252.0 GiB | 0.0 GiB | 0.0 GiB 0x0000 | 0x0101 | 252.0 GiB | 0.0 GiB | 0.0 GiB 0x0000 | 0x0111 | 252.0 GiB | 0.0 GiB | 0.0 GiB 0x0000 | 0x0121 | 252.0 GiB | 0.0 GiB | 0.0 GiB 0x0001 | 0x1001 | 252.0 GiB | 0.0 GiB | 0.0 GiB 0x0001 | 0x1011 | 252.0 GiB | 0.0 GiB | 0.0 GiB 0x0001 | 0x1021 | 252.0 GiB | 0.0 GiB | 0.0 GiB 0x0001 | 0x1101 | 252.0 GiB | 0.0 GiB | 0.0 GiB 0x0001 | 0x1111 | 252.0 GiB | 0.0 GiB | 0.0 GiB 0x0001 | 0x1121 | 252.0 GiB | 0.0 GiB | 0.0 GiB Do you want to continue? [y/n] y … A reboot is required to process new memory allocation goals. # systemctl reboot MemorySize: The DCPMM capacity that will be configured in Memory Mode. AppDirect1Size: The DCPMM capacity that will be configured as the first App Direct interleave set if applicable. AppDirect2Size: The DCPMM capacity that will be configured as the second App Direct interleave set if applicable.
  • 6. SPDK, PMDK & Vtune™ Summit 6 MemoryModeViewedfromtheoperatingsystem # lsmem ... Memory block size: 1G Total online memory: 3T Total offline memory: 0B # free -g total used free shared buff/cache available Mem: 2975 5 2969 0 0 2961 Swap: 31 0 31 System Config: 2-Socket DDR: 384GB PMEM: 3TB # top top - 16:18:31 up 7 min, 1 user, load average: 0.00, 0.07, 0.06 Tasks: 839 total, 1 running, 838 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st TiB Mem : 2.9 total, 2.9 free, 0.0 used, 0.0 buff/cache TiB Swap: 0.0 total, 0.0 free, 0.0 used. 2.9 avail Mem # ipmctl show -memoryresources Capacity=3029.4 GiB MemoryCapacity=3024.0 GiB AppDirectCapacity=0.0 GiB UnconfiguredCapacity=0.0 GiB InaccessibleCapacity=0.0 GiB ReservedCapacity=5.4 GiB
  • 7. SPDK, PMDK & Vtune™ Summit 7 Ipmctl:Creatingamemory&Appdirectmixedgoal # ipmctl create -goal MemoryMode=50 The following configuration will be applied: SocketID | DimmID | MemorySize | AppDirect1Size | AppDirect2Size ================================================================== 0x0000 | 0x0001 | 124.0 GiB | 128.0 GiB | 0.0 GiB 0x0000 | 0x0011 | 124.0 GiB | 128.0 GiB | 0.0 GiB 0x0000 | 0x0021 | 124.0 GiB | 128.0 GiB | 0.0 GiB 0x0000 | 0x0101 | 124.0 GiB | 128.0 GiB | 0.0 GiB 0x0000 | 0x0111 | 124.0 GiB | 128.0 GiB | 0.0 GiB 0x0000 | 0x0121 | 124.0 GiB | 128.0 GiB | 0.0 GiB 0x0001 | 0x1001 | 124.0 GiB | 128.0 GiB | 0.0 GiB 0x0001 | 0x1011 | 124.0 GiB | 128.0 GiB | 0.0 GiB 0x0001 | 0x1021 | 124.0 GiB | 128.0 GiB | 0.0 GiB 0x0001 | 0x1101 | 124.0 GiB | 128.0 GiB | 0.0 GiB 0x0001 | 0x1111 | 124.0 GiB | 128.0 GiB | 0.0 GiB 0x0001 | 0x1121 | 124.0 GiB | 128.0 GiB | 0.0 GiB Do you want to continue? [y/n] y … A reboot is required to process new memory allocation goals. # systemctl reboot Note: 100% of DRAM is used for the MemoryMode Cache
  • 9. SPDK, PMDK & Vtune™ Summit 9 Linuxutilities–ipmctlandndctl IPMCTL NDCTL Vendor Intel® Neutral Open Source Yes Yes Linux Yes Yes Windows Yes No Manage Goals/Regions Yes No Manage Namespaces No* Yes Health/S.M.A.R.T Yes Yes Performance Yes No Security Yes Yes * Available in UEFI IPMCTL • Intel® Optane® Technology only • Linux, Windows, & UEFI • Manage Hardware features • Discover & Manage Modules • Provision Platform Config – Memory or AppDirect • View & Update Module Firmware • Monitor Health • Track Performance • Debug & Troubleshoot NDCTL • Vendor Neutral • Linux only • Manage Hardware and OS features • Show Module Information • Manage Namespaces & Config Labels • Monitor Health • Manage Security - Passphrases & Secure Erase • Error Injection/Testing
  • 10. SPDK, PMDK & Vtune™ Summit 10 ipmctl-UtilityformanagingIntelOptaneDCpersistentmemorymodules show –device show -dimm show –memory-resources show –socket show –system-capabilities show -topology change –device-passphrase change –device-security enable –device-security erase –device-data create -goal delete -goal show –goal dump –goal load –goal show -region show -performance show -sensor change -sensor dump -support show –events show –firmware show –host acknowledge –event update -firmware change –preferences show -preferences help dump –debug-log inject -error run -diagnostic show -acpi show -pcd show –nfit show –error-log Device Discovery SecurityProvision Memory Health & Performance Support & Maintenance Debugging
  • 11. SPDK, PMDK & Vtune™ Summit 11 Ndctl-Managelinux"libnvdimm"subsystemdevices # ndctl check-labels disable-namespace freeze-security list sanitize-dimm version check-namespace disable-region help load-keys setup-passphrase wait-overwrite create-namespace enable-dimm init-labels monitor start-scrub wait-scrub destroy-namespace enable-namespace inject-error read-labels update-firmware write-labels disable-dimm enable-region inject-smart remove-passphrase update-passphrase zero-labels
  • 13. SPDK, PMDK & Vtune™ Summit 13 HowtoverifyOptanePMEM&DDRtopology DRAM Persistent Memory 32 32 32 32 32 256256 32 256 256 256 256 32 32 32 32 32 256256 32 256 256 256 256 384 GiB 3072 GiB Total: 3456 GiB StorageStorage DRAM & PMEM Solution # ipmctl show -dimm DimmID | Capacity | HealthState | ActionRequired | LockState | FWVersion ============================================================================== 0x0001 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346 0x0011 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346 0x0021 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346 [….] 0x1101 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346 0x1111 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346 0x1121 | 252.4 GiB | Healthy | 0 | Disabled | 01.02.00.5346 # ipmctl show -topology DimmID | MemoryType| Capacity | PhysicalID| DeviceLocator ============================================================ 0x0001 | DCPM | 252.4 GiB | 0x0028 | CPU1_DIMM_A2 0x0011 | DCPM | 252.4 GiB | 0x002c | CPU1_DIMM_B2 […] N/A | DDR4 | 32.0 GiB | 0x004a | CPU2_DIMM_C1 N/A | DDR4 | 32.0 GiB | 0x0050 | CPU2_DIMM_D1 N/A | DDR4 | 32.0 GiB | 0x0054 | CPU2_DIMM_E1 N/A | DDR4 | 32.0 GiB | 0x0058 | CPU2_DIMM_F1 # ipmctl show -memoryresources Capacity=3029.4 GiB MemoryCapacity=0.0 GiB AppDirectCapacity=3024.0 GiB UnconfiguredCapacity=5.2 GiB InaccessibleCapacity=0.0 GiB ReservedCapacity=0.2 GiB
  • 14. SPDK, PMDK & Vtune™ Summit 14 UsingndctltoviewPMEMtopology$ ndctl list –DFH # List DIMM, Firmware, & Health [ { "dev":"nmem1", "id":"8089-a2-1837-00000bb3", "handle":17, "phys_id":44, "health":{ "health_state":"ok", "temperature_celsius":29.0, "controller_temperature_celsius":28.0, "spares_percentage":100, "alarm_temperature":false, "alarm_controller_temperature":false, "alarm_spares":false, "alarm_enabled_media_temperature":false, "alarm_enabled_ctrl_temperature":false, "alarm_enabled_spares":false, "shutdown_state":"clean", "shutdown_count":1 }, "firmware":{ "current_version":4328543046 } }, […] $ ndctl list –NuRD # List Modules, Regions, & Namespaces "dimms":[ { "dev":"nmem1", "id":"8089-a2-1837-00000bb3", "handle":"0x11", "phys_id":"0x2c" }, […] "regions":[ { "dev":"region1", "size":"1512.00 GiB (1623.50 GB)", "available_size":0, "max_available_extent":0, "type":"pmem", "mappings":[ { "dimm":"nmem11", "offset":"0x10000000", "length":"0x3f00000000", "position":5 }, […] "namespaces":[ { "dev":"namespace1.0", "mode":"fsdax", "map":"dev", "size":"1488.37 GiB (1598.13 GB)", "uuid":"47cbd389-b1ec-4827-96f1-cbd0c0955c41", "sector_size":512, "align":2097152, "blockdev":"pmem1" }
  • 16. SPDK, PMDK & Vtune™ Summit VerifyingOperatingSystemSupport • The BIOS must provide NFIT (Non-Volatile Firmware Interface Table) info # ndctl list --bus all | grep -i nfit "provider":"ACPI.NFIT", • Verify the Kernel has PMEM and NVDIMM support enabled # egrep -i "pmem|nvdimm" /boot/config-`uname -r` CONFIG_X86_PMEM_LEGACY_DEVICE=y CONFIG_X86_PMEM_LEGACY=m CONFIG_LIBNVDIMM=y CONFIG_BLK_DEV_PMEM=m CONFIG_NVDIMM_PFN=y CONFIG_NVDIMM_DAX=y CONFIG_DEV_DAX_PMEM=m CONFIG_ARCH_HAS_PMEM_API=y • Check dmesg # dmesg | grep e820 | grep -i persistent [ 0.000000] BIOS-e820: [mem 0x0000003060000000-0x000001aa5fffffff] persistent (type 7) [ 0.000000] BIOS-e820: [mem 0x000001da00000000-0x00000353ffffffff] persistent (type 7)
  • 18. SPDK, PMDK & Vtune™ Summit 18 AccessingPersistentMemoryfromtheOS Legacy Storage APIs Block Atomicity Storage APIs with DAX (AppDirect) PersistentMemory USERSPACEKERNELSPACE Standard File API GenericNVDIMMDriver Application FileSystem Standard Raw Device Access mmap Load/ Store Standard File API pmem-Aware FileSystem MMU Mappings “DAX” BTT DevDAX PMDK mmap HARDWARE • No Code Changes Required • Operates in Blocks like SSD/HDD • Traditional read/write • Works with Existing File Systems • Atomicity at block level • Block size configurable • 4K, 512B* • NVDIMM Driver required • Support starting Kernel 4.2 • Configured as Boot Device • Higher Endurance than Enterprise SSDs • High Performance Block Storage • Low Latency, higher BW, High IOPs *Requires Linux • Code changes may be required* • Bypasses file system page cache • Requires DAX enabled file system • XFS, EXT4, NTFS • No Kernel Code or interrupts • No interrupts • Fastest IO path possible * Code changes required for load/store direct access if the application does not already support this.
  • 19. SPDK, PMDK & Vtune™ Summit ProvisioningPersistentmemorySteps Create Regions (Hardware) Create Namespaces (Kernel) Make & Mount File Systems (User Space) 1 2 3
  • 20. SPDK, PMDK & Vtune™ Summit 20 Step1-CreatingRegions(vendorspecific) AnIntelOptaneDCPersistentMemoryExample 0 # ipmctl create -goal PersistentMemoryType=AppDirect # reboot 1 2 3 4 5 Region0 Interleaved Sets 0 # ipmctl create -goal PersistentMemoryType=AppDirect # reboot 1 2 3 4 5 Region0 Non-Interleaved Sets Region1 Region2 Region3 Region4 Region5 PMEM Modules Note: Cannot Interleave across sockets.
  • 21. SPDK, PMDK & Vtune™ Summit 21 Ipmctl:CreateanAppDirectGoal# ipmctl create -goal PersistentMemoryType=AppDirect The following configuration will be applied: SocketID | DimmID | MemorySize | AppDirect1Size | AppDirect2Size ================================================================== 0x0000 | 0x0001 | 0.0 GiB | 252.0 GiB | 0.0 GiB 0x0000 | 0x0011 | 0.0 GiB | 252.0 GiB | 0.0 GiB 0x0000 | 0x0021 | 0.0 GiB | 252.0 GiB | 0.0 GiB 0x0000 | 0x0101 | 0.0 GiB | 252.0 GiB | 0.0 GiB 0x0000 | 0x0111 | 0.0 GiB | 252.0 GiB | 0.0 GiB 0x0000 | 0x0121 | 0.0 GiB | 252.0 GiB | 0.0 GiB 0x0001 | 0x1001 | 0.0 GiB | 252.0 GiB | 0.0 GiB 0x0001 | 0x1011 | 0.0 GiB | 252.0 GiB | 0.0 GiB 0x0001 | 0x1021 | 0.0 GiB | 252.0 GiB | 0.0 GiB … Do you want to continue? [y/n] y … A reboot is required to process new memory allocation goals. # systemctl reboot … # ipmctl show -region SocketID | ISetID | PersistentMemoryType | Capacity | FreeCapacity | HealthState ================================================================================================ 0x0000 | 0x2d3c7f48f4e22ccc | AppDirect | 1512.0 GiB | 1512.0 GiB | Healthy 0x0001 | 0xdd387f488ce42ccc | AppDirect | 1512.0 GiB | 1512.0 GiB | Healthy
  • 22. SPDK, PMDK & Vtune™ Summit 22 Step2&3–CreatingNamespaces&Filesystems PMEM (Socket1)PMEM (Socket0) Volatile DRAM Region 0 Namespace0.0 (fsdax) /dev/pmem0 DAX Filesystem Namespace0.1 (devdax) /dev/dax0.1 Region 1 Namespace1.0 (sector) /dev/pmem1s DAX Filesystem Namespace1.1 (fsdax) /dev/pmem2 NVDIMM Driver (Kernel) Hardware DAX Filesystems: EXT4, XFS, NTFS Persistent Memory Devices Namespaces Regions (Interleave Sets) Mount DAX-enabled file system onto DCPMMs Operating System defined software device representing the namespace ndctl (Linux): configures & manages namespaces ipmctl (Linux or UEFI): configures & manages the regions on the DIMMs DAX FS DAX FS
  • 23. SPDK, PMDK & Vtune™ Summit 23 Namespacemodes FSDAX (Default) • Default namespace mode • Supports XFS & EXT4 • Removes Page Cache • Allows Direct Mappings to PMEM • Block Device (/dev/pmem0) DEVDAX • Similar mmap() capabilities to FSDAX • Useful for RDMA • Removes Page Cache • Allows Direct Mappings to PMEM • Character Device (/dev/dax0.0) SECTOR • Supports any filesystem • Sector/Block Atomicity • No DAX Support • OS Bootable • Block Device (/dev/pmem0s) RAW • Acts like a Memory Disk • No DAX Support See: • https://docs.pmem.io/ndctl-users-guide/managing-namespaces • # man ndctl-create-namespace
  • 24. SPDK, PMDK & Vtune™ Summit Vendor Neutral Vendor Specific 24 Howtocreatedaxfilesystems(FSDAX) PMEM (Socket1)PMEM (Socket0) Applications (User Space) NVDIMM Driver (Kernel) Hardware Region 0 Namespace0.0 /dev/pmem0 DAX Filesystem # ipmctl create -goal PersistentMemoryType=AppDirect # reboot # ndctl create-namespace --region region0 -–mode fsdax # ndctl create-namespace --region region1 -–mode fsdax # mkfs.ext4 /dev/pmem0 # mkfs.ext4 /dev/pmem1 # mount –o dax /dev/pmem0 /pmemfs0 # mount –o dax /dev/pmem1 /pmemfs1 Namespace1.0 /dev/pmem1 DAX Filesystem Region 1 Defaults new
  • 25. SPDK, PMDK & Vtune™ Summit Vendor Neutral Vendor Specific 25 HowtocreateBlockatomicfilesystems(sector) PMEM (Socket1)PMEM (Socket0) Applications (User Space) NVDIMM Driver (Kernel) Hardware Region 0 Namespace0.0 /dev/pmem0s DAX Filesystem # ipmctl create -goal PersistentMemoryType=AppDirect # reboot # ndctl create-namespace --region region0 -–mode sector # ndctl create-namespace --region region1 -–mode sector # mkfs.ext4 /dev/pmem0 # mkfs.ext4 /dev/pmem1 # mount /dev/pmem0 /pmemfs0 # mount /dev/pmem1 /pmemfs1 Namespace1.0 /dev/pmem1s DAX Filesystem Region 1
  • 26. SPDK, PMDK & Vtune™ Summit Vendor Neutral Vendor Specific 26 Howtodevicedaxinstances(devdax) PMEM (Socket1)PMEM (Socket0) Applications (User Space) NVDIMM Driver (Kernel) Hardware Region 0 Namespace0.0 /dev/dax0.0 # ipmctl create -goal PersistentMemoryType=AppDirect # reboot # ndctl create-namespace --region region0 -–mode devdax # ndctl create-namespace --region region1 -–mode devdax Namespace1.0 /dev/dax1.0 Region 1
  • 27. SPDK, PMDK & Vtune™ Summit Vendor Neutral Vendor Specific 27 Howtopartitionregions PMEM (Socket1)PMEM (Socket0) Applications (User Space) NVDIMM Driver (Kernel) Hardware Region 0 Namespace0.0/dev/pmem0 DAX Filesystem # ipmctl create -goal PersistentMemoryType=AppDirect # reboot # ndctl create-namespace --region region0 -–mode fsdax --size 50g # ndctl create-namespace --region region0 -–mode fsdax --size 200g # ndctl create-namespace --region region1 -–mode fsdax # mkfs.ext4 /dev/pmem0 # mkfs.xfs /dev/pmem0.1 # mkfs.ext4 /dev/pmem1 # mount –o dax /dev/pmem0 /pmemfs0-0 # mount –o dax /dev/pmem0.1 /pmemfs0-1 # mount –o dax /dev/pmem1 /pmemfs1-0 Namespace1.0 /dev/pmem1 DAX Filesystem Region 1 Namespace0.1/dev/pmem0.1 DAX Filesystem
  • 28. SPDK, PMDK & Vtune™ Summit Vendor Neutral Vendor Specific 28 Howtopartitionnamespaces(FSDAX&SECTOR) PMEM (Socket1)PMEM (Socket0) Applications (User Space) NVDIMM Driver (Kernel) Hardware Region 0 DAX Filesystem # ipmctl create -goal PersistentMemoryType=AppDirect # reboot # ndctl create-namespace --region region0 -–mode fsdax # ndctl create-namespace --region region1 -–mode sector # fdisk /dev/pmem0 <Create partition table> # fdisk /dev/pmem1s <Create partition table> # mkfs.ext4 /dev/pmem0p0 # mkfs.xfs /dev/pmem0p1 # mkfs.ext4 /dev/pmem1sp0 # mkfs.ext4 /dev/pmem1sp1 # mount –o dax /dev/pmem0p0 /pmemfs0-0 # mount –o dax /dev/pmem0p1 /pmemfs0-1 # mount /dev/pmem1p0 /pmemfs1-0 # mount /dev/pmem1p1 /pmemfs1-1 Namespace1.0 /dev/pmem1s Region 1 DAX Filesystem Namespace0.0 /dev/pmem0 DAX Filesystem DAX Filesystem
  • 29. SPDK, PMDK & Vtune™ Summit Vendor Neutral Vendor Specific 29 HowtoRAIDnamespaces(FSDAX&SECTOR) PMEM (Socket1)PMEM (Socket0) Applications (User Space) NVDIMM Driver (Kernel) Hardware Region 0 DAX Filesystem # ipmctl create -goal PersistentMemoryType=AppDirect # reboot # ndctl create-namespace --region region0 -–mode fsdax # ndctl create-namespace --region region1 -–mode fsdax Create an LVM or DM dm-stripe or dm-linear, eg: # echo -e "0 $(( `blockdev --getsz /dev/pmem0` + `blockdev --getsz /dev/pmem0` )) striped 2 4096 /dev/pmem0 0 /dev/pmem1 0" | sudo dmsetup create striped-pmem # fdisk /dev/mapper/striped-pmem # mkfs.ext4 -b 4096 -E stride=512 -F /dev/mapper/striped-pmem # mount –o dax /dev/mapper/striped-pmem /mystripedpmemfs Namespace1.0 /dev/pmem1 Region 1 Namespace0.0 /dev/pmem0 LVM or Device-Mapper Note: Stripe or Concat only Blog: http://pmem.io/2018/05/15/using_persistent_memory_devices_with_the_linux_device_mapper.html
  • 31. SPDK, PMDK & Vtune™ Summit
  • 32. SPDK, PMDK & Vtune™ Summit 32
  • 33. SPDK, PMDK & Vtune™ Summit 33 Resources • ipmctl: https://github.com/intel/ipmctl • ndctl: https://github.com/pmem/ndctl • https://docs.pmem.io • Quick Start Guides (Persistent Memory) • Getting Started Guides (Persistent Memory) • NDCTL User Guide • Intel PMEM Developer Zone - https://software.intel.com/pmem • IPMCTL Quick Start Guide • Videos • Knowledge Articles • Persistent Memory Developer Kit (PMDK) Code Examples
  • 36. SPDK, PMDK & Vtune™ Summit 36 Backup