SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
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
SPDK, PMDK & Vtune™ Summit 36
Backup
Provision Intel® Optane™ DC Persistent Memory in Linux*

Contenu connexe

Tendances

Hardware & Software Platforms for HPC, AI and ML
Hardware & Software Platforms for HPC, AI and MLHardware & Software Platforms for HPC, AI and ML
Hardware & Software Platforms for HPC, AI and MLinside-BigData.com
 
eMMC Embedded Multimedia Card overview
eMMC Embedded Multimedia Card overvieweMMC Embedded Multimedia Card overview
eMMC Embedded Multimedia Card overviewVijayGESYS
 
Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01Hajime Tazaki
 
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_FinalGopi Krishnamurthy
 
Wido den Hollander - 10 ways to break your Ceph cluster
Wido den Hollander - 10 ways to break your Ceph clusterWido den Hollander - 10 ways to break your Ceph cluster
Wido den Hollander - 10 ways to break your Ceph clusterShapeBlue
 
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)marsee101
 
ceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-shortceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-shortNAVER D2
 
ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料直久 住川
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageKernel TLV
 
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
 
LAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel AwarenessLAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel AwarenessLinaro
 
Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?Samsung Open Source Group
 
Linux Memory Management with CMA (Contiguous Memory Allocator)
Linux Memory Management with CMA (Contiguous Memory Allocator)Linux Memory Management with CMA (Contiguous Memory Allocator)
Linux Memory Management with CMA (Contiguous Memory Allocator)Pankaj Suryawanshi
 
Best practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialBest practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialColin Charles
 
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...VMworld
 
Memory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux KernelMemory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux KernelAdrian Huang
 
Understanding Storage I/O Under Load
Understanding Storage I/O Under LoadUnderstanding Storage I/O Under Load
Understanding Storage I/O Under LoadScyllaDB
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenMITSUNARI Shigeo
 
PCI Express Verification using Reference Modeling
PCI Express Verification using Reference ModelingPCI Express Verification using Reference Modeling
PCI Express Verification using Reference ModelingDVClub
 

Tendances (20)

Hardware & Software Platforms for HPC, AI and ML
Hardware & Software Platforms for HPC, AI and MLHardware & Software Platforms for HPC, AI and ML
Hardware & Software Platforms for HPC, AI and ML
 
eMMC Embedded Multimedia Card overview
eMMC Embedded Multimedia Card overvieweMMC Embedded Multimedia Card overview
eMMC Embedded Multimedia Card overview
 
Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01Library Operating System for Linux #netdev01
Library Operating System for Linux #netdev01
 
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
03_03_Implementing_PCIe_ATS_in_ARM-based_SoCs_Final
 
Wido den Hollander - 10 ways to break your Ceph cluster
Wido den Hollander - 10 ways to break your Ceph clusterWido den Hollander - 10 ways to break your Ceph cluster
Wido den Hollander - 10 ways to break your Ceph cluster
 
Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)Vivado hls勉強会3(axi4 lite slave)
Vivado hls勉強会3(axi4 lite slave)
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
 
ceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-shortceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-short
 
ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
 
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
 
LAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel AwarenessLAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel Awareness
 
Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?
 
Linux Memory Management with CMA (Contiguous Memory Allocator)
Linux Memory Management with CMA (Contiguous Memory Allocator)Linux Memory Management with CMA (Contiguous Memory Allocator)
Linux Memory Management with CMA (Contiguous Memory Allocator)
 
Best practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialBest practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability Tutorial
 
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
VMworld 2013: ESXi Native Networking Driver Model - Delivering on Simplicity ...
 
Memory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux KernelMemory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux Kernel
 
Understanding Storage I/O Under Load
Understanding Storage I/O Under LoadUnderstanding Storage I/O Under Load
Understanding Storage I/O Under Load
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
 
PCI Express Verification using Reference Modeling
PCI Express Verification using Reference ModelingPCI Express Verification using Reference Modeling
PCI Express Verification using Reference Modeling
 

Similaire à 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
 
YOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceYOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceBrendan Gregg
 

Similaire à 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ソリューション」
 
YOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceYOW2020 Linux Systems Performance
YOW2020 Linux Systems Performance
 

Plus de 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
 

Plus de 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 ...
 

Dernier

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 

Dernier (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 

Provision Intel® Optane™ DC Persistent Memory in Linux*

  • 1.
  • 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
  • 35.
  • 36. SPDK, PMDK & Vtune™ Summit 36 Backup