SlideShare a Scribd company logo
1 of 25
Download to read offline
KernelTLV Filesystem Supersession
Part I File Systems: why, how and where (another slide deck)
Philip.Derbeko@gmail.com
Part II Emerging PM HW & SW stack implications
Amit.Golander@netapp.com
Part III ZUFS – PM-based file systems in user space
Shachar.Sharon@netapp.com
Boaz.Harrosh@netapp.com
© 2017 NetApp, Inc. All rights reserved1
KernelTLV Meetup
Nov. 14th 2017
Part II
Persistent Memory (PM) – HW & SW implications
Emerging PM/NVDIMM devices,
the value they bring to applications and
how they revolutionize the storage stack
© 2017 NetApp, Inc. All rights reserved2
KernelTLV Meetup
Nov. 14th 2017
About
© 2017 NetApp, Inc. All rights reserved.3
~12,000
employees
50+
countries
Only Top 5 vendor
that is rapidly
growing
Celebrating
25Years
Founded in 1992
NetApp acquired @ June 2017
TLV area
based
Recruiting
FS Dev.
+1
PM
Software
Pioneer
Since 2014
Ground
breaking
Latencies
Storage Media Generations
© 2017 NetApp, Inc. All rights reserved4
PM marries the best of both worlds: +
Storage
Persistency
Memory
Speed
HDD FLASH
IOPS
(even if random…)
Latency
(even under load…)
NVDIMM / PM
Definitions
Rounded latency numbers & under typical load
5
SCM (Storage Class Memory)
Byte-addressable Media
@ Near-memory speed
<1us
5 © 2017 NetApp, Inc. All rights reserved.
PM (Persistent Memory)
Byte-addressable Device
@ Near-memory speed, on memory bus
PM-based Storage - Question Traditional Assumptions
Byte-addressable
media
Block-addressable
wrapper
SW layers Network SW caching Block
abstraction
?
66 © 2017 NetApp, Inc. All rights reserved.
Memory Vs.
Storage
Block wrapper
PM-based FS
Application
Block-based FS
Page Cache
bio
PM-based Software Approaches
Application
Re-written
Application
NPM
DAX-enabled FS
SW reuse Performance
App
SW
Infrastructure
HW
Linux Kernel Enablers
“-o dax”
Built in Kernel driver nd_btt.ko.
Source: drivers/nvdimm/btt.c
Built in Kernel driver nd_pmem.ko.
Source: drivers/nvdimm/pmem.c
Built in Kernel driver core.ko.
Source: drivers/nvdimm/core.c
Linux 4.1+ subsystems added support of NVDIMMs. Mostly stable from 4.4
NVDIMM modules presented as device links: /dev/pmem0, /dev/pmem1
QEMO support
BTT (Block, Atomic)
PMEM (Direct Access)
DAX Enabled FS
NFIT Core
8Can also refer to kTLV Meetup from 2016 - https://www.youtube.com/watch?v=FVrgt9JtcwQ
Block wrapper
PM-based FS
Applications
DAX-enabled FS
Storage
semantics
PM-based Software Approaches
Memory
semantics
Block-based FS
Page Cache
bio
NPM
Mmap, ld/st, msyncRead/write, fsync
NVDIMM Driver
Examples:
Block wrapper
PM-based FS
Applications
DAX-enabled FS
Storage
semantics
Memory
semantics
Block-based FS
Page Cache
bio
NPM
NTFS-DAX
REFS-DAX
XFS-DAX
EXT4-DAX
NOVA
LUMFS
SIMFS
HINFS
Plexistor
M1FS
NVDIMM Driver
Examples:
Windows server 2016
Linux 4.4 and above
Ubuntu 16.04 LTS
RHEL 7.3
Fedora 23
SLES 12 SP2
Examples:
NVML 1.3
(*) Huge variance in features and stability(*) Good portability
PM-based Software Approaches
11 1111
© 2017 NetApp, Inc. All rights reserved.
Part III
ZUFS - Zero-copy User-mode FS
New style user-mode filesystems that require:
- Extremely Low-Latency
- Synchronous & DAX
© 2017 NetApp, Inc. All rights reserved12
KernelTLV Meetup
Nov. 14th 2017
From VFS to Zufs
© 2017 NetApp, Inc. All rights reserved
13
Why Userspace?
• Resiliency
• Ease of development
• Externals (e.g. compress, encrypt)
• Licensing
• Market requirements (avoid kernel modules)
© 2017 NetApp, Inc. All rights reserved
14
ZUFS and FUSE are complementary tools
© 2017 NetApp, Inc. All rights reserved
15
Motivation
FuSE is great for HDDs and ok(ish) for SSDs, but not suitable for PMEM
© 2017 NetApp, Inc. All rights reserved.16
FlashHDD Memory
FUSE
SCM
?
RDMATCP
Latency$/GB
FUSE ZUFS
Typical medias Built for HDDs & extended to Flash Built for PM/NVDIMMs and DRAM
SW Perf. goals • Secondary (High latency media)
• Async I/O Throughput
• SW is the bottleneck
• Latency is everything
SW caching Slow media ->
Rely on OS Page Cache
Near-memory speed media ->
Bypass OS Page Cache
Access method I/O only I/O and mmap (DAX)
Cost of redundant
copy / context switch
Negligible The bottleneck ->
Avoid copies, queues & remain on core
Latency penalty
under load
100s of µs 3-4 µs
DesignAssumptions
Zufs Overview
Core 1
Core 2
Core 3
Core 4
© 2017 NetApp, Inc. All rights reserved
18
Kernel to Userspace
© 2017 NetApp, Inc. All rights reserved
19
ZUFS – Kernel Zoom-in
© 2017 NetApp, Inc. All rights reserved20
KernelTLV Meetup
Nov. 14th 2017
Preliminary Results FUSE Vs. ZUFS (PM Media)
© 2017 NetApp, Inc. All rights reserved.21
• Measured on
Dual socket Intel XEON 2650v4 (48 HW Threads)
DRAM-backed PMEM type
• Random 4KB DirectIO writ(ish) access
Architecture
© 2017 NetApp, Inc. All rights reserved.22
APP
zt-vma
PP
P
App pages Mapped into Server VM
Unmapped on return
ZUS
Zu Server
ZUF
Zu Feeder
zt per cpu ...
kernel
 ZT - ZUFS Thread per CPU, affinity on a single CPU (thread_fifo/rr)
 Special ZUFS communication file per ZT (O_TMPFILE + IOCTL_ZUFS_INIT)
 ZT-vma - Mmap 4M vma zero copy communication area per ZT
 IOCTL_ZU_WAIT_OPT – threads sleeps in Kernel waiting for an operation
 On App IO current CPU ZT is selected, app pages mapped into ZT-vma. Server thread
released with an operation
 After execution, ZT returns to kernel (IOCTL_ZU_WAIT_OPT), app is released, Server
wait for new operation.
 On exit (or server crash) file is closed, Kernel cleans all resources
 Async operation is also supported. Server can return EAGAIN.
 Server will later complete the operation ASYNC. App will be woken up.
 Application mmap (DAX) is the opposite direction. ZUS exposes pages
(opt_get_data_block) into the app VM
© 2017 NetApp, Inc. All rights reserved.23
Architecture
Perf. Optimizations - 1
MMAP_LOCAL_CPU
© 2017 NetApp, Inc. All rights reserved24
• mm patch to
allow single-core TLB invalidate (in the common case)
0
5
10
15
20
25
30
- 200,000 400,000 600,000 800,000 1,000,000 1,200,000 1,400,000 1,600,000 1,800,000 2,000,000
Latency[us]
IOPS
ZUFS w/wo mm patch
ZUFS_unpatched_mm
ZUFS_patched_mm
Perf. Optimizations - 2
© 2017 NetApp, Inc. All rights reserved.25
• scheduler patch to
allow efficient context switch on same core (Relay Object)
Unimplemented
No Perf. Results
© 2017 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL ---26
Questions

More Related Content

What's hot

Kernel Recipes 2016 - New hwmon device registration API - Jean Delvare
Kernel Recipes 2016 -  New hwmon device registration API - Jean DelvareKernel Recipes 2016 -  New hwmon device registration API - Jean Delvare
Kernel Recipes 2016 - New hwmon device registration API - Jean DelvareAnne Nicolas
 
BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108Linaro
 
Windows Internals for Linux Kernel Developers
Windows Internals for Linux Kernel DevelopersWindows Internals for Linux Kernel Developers
Windows Internals for Linux Kernel DevelopersKernel TLV
 
Linux Locking Mechanisms
Linux Locking MechanismsLinux Locking Mechanisms
Linux Locking MechanismsKernel TLV
 
OpenZFS Channel programs
OpenZFS Channel programsOpenZFS Channel programs
OpenZFS Channel programsMatthew Ahrens
 
Containers are the future of the Cloud
Containers are the future of the CloudContainers are the future of the Cloud
Containers are the future of the CloudPavel Odintsov
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Kynetics
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDKKernel TLV
 
Asymmetric Multiprocessing - Kynetics ELC 2018 portland
Asymmetric Multiprocessing - Kynetics ELC 2018 portlandAsymmetric Multiprocessing - Kynetics ELC 2018 portland
Asymmetric Multiprocessing - Kynetics ELC 2018 portlandNicola La Gloria
 
Kernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologiesKernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologiesAnne Nicolas
 
File Systems: Why, How and Where
File Systems: Why, How and WhereFile Systems: Why, How and Where
File Systems: Why, How and WhereKernel TLV
 
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112Linaro
 
Kernel Recipes 2017 - Build farm again - Willy Tarreau
Kernel Recipes 2017 - Build farm again - Willy TarreauKernel Recipes 2017 - Build farm again - Willy Tarreau
Kernel Recipes 2017 - Build farm again - Willy TarreauAnne Nicolas
 
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) WinningKernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) WinningAnne Nicolas
 
Advanced Namespaces and cgroups
Advanced Namespaces and cgroupsAdvanced Namespaces and cgroups
Advanced Namespaces and cgroupsKernel TLV
 
Linuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best PracticesLinuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best Practiceschristophm
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KernelThomas Graf
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemdAlison Chaiken
 

What's hot (20)

Kernel Recipes 2016 - New hwmon device registration API - Jean Delvare
Kernel Recipes 2016 -  New hwmon device registration API - Jean DelvareKernel Recipes 2016 -  New hwmon device registration API - Jean Delvare
Kernel Recipes 2016 - New hwmon device registration API - Jean Delvare
 
BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108
 
Windows Internals for Linux Kernel Developers
Windows Internals for Linux Kernel DevelopersWindows Internals for Linux Kernel Developers
Windows Internals for Linux Kernel Developers
 
Linux Locking Mechanisms
Linux Locking MechanismsLinux Locking Mechanisms
Linux Locking Mechanisms
 
OpenZFS - AsiaBSDcon
OpenZFS - AsiaBSDconOpenZFS - AsiaBSDcon
OpenZFS - AsiaBSDcon
 
OpenZFS Channel programs
OpenZFS Channel programsOpenZFS Channel programs
OpenZFS Channel programs
 
Containers are the future of the Cloud
Containers are the future of the CloudContainers are the future of the Cloud
Containers are the future of the Cloud
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDK
 
OpenZFS at LinuxCon
OpenZFS at LinuxConOpenZFS at LinuxCon
OpenZFS at LinuxCon
 
Asymmetric Multiprocessing - Kynetics ELC 2018 portland
Asymmetric Multiprocessing - Kynetics ELC 2018 portlandAsymmetric Multiprocessing - Kynetics ELC 2018 portland
Asymmetric Multiprocessing - Kynetics ELC 2018 portland
 
Kernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologiesKernel Recipes 2015: Kernel packet capture technologies
Kernel Recipes 2015: Kernel packet capture technologies
 
File Systems: Why, How and Where
File Systems: Why, How and WhereFile Systems: Why, How and Where
File Systems: Why, How and Where
 
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
 
Kernel Recipes 2017 - Build farm again - Willy Tarreau
Kernel Recipes 2017 - Build farm again - Willy TarreauKernel Recipes 2017 - Build farm again - Willy Tarreau
Kernel Recipes 2017 - Build farm again - Willy Tarreau
 
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) WinningKernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
 
Advanced Namespaces and cgroups
Advanced Namespaces and cgroupsAdvanced Namespaces and cgroups
Advanced Namespaces and cgroups
 
Linuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best PracticesLinuxcon Barcelon 2012: LXC Best Practices
Linuxcon Barcelon 2012: LXC Best Practices
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux Kernel
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemd
 

Similar to Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User Space

IBM Platform Computing Elastic Storage
IBM Platform Computing  Elastic StorageIBM Platform Computing  Elastic Storage
IBM Platform Computing Elastic StoragePatrick Bouillaud
 
pnfs status
pnfs statuspnfs status
pnfs statusbergwolf
 
Unix and Linux Common Boot Disk Disaster Recovery Tools by Dusan Baljevic
Unix and Linux Common Boot Disk Disaster Recovery Tools by Dusan BaljevicUnix and Linux Common Boot Disk Disaster Recovery Tools by Dusan Baljevic
Unix and Linux Common Boot Disk Disaster Recovery Tools by Dusan BaljevicCircling Cycle
 
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyLinux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyBoden Russell
 
Wheeler w 0450_linux_file_systems1
Wheeler w 0450_linux_file_systems1Wheeler w 0450_linux_file_systems1
Wheeler w 0450_linux_file_systems1sprdd
 
Wheeler w 0450_linux_file_systems1
Wheeler w 0450_linux_file_systems1Wheeler w 0450_linux_file_systems1
Wheeler w 0450_linux_file_systems1sprdd
 
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageWebinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageMayaData Inc
 
We4IT lcty 2013 - infra-man - domino run faster
We4IT lcty 2013 - infra-man - domino run faster We4IT lcty 2013 - infra-man - domino run faster
We4IT lcty 2013 - infra-man - domino run faster We4IT Group
 
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...The Linux Foundation
 
S104878 nvme-revolution-jburg-v1809b
S104878 nvme-revolution-jburg-v1809bS104878 nvme-revolution-jburg-v1809b
S104878 nvme-revolution-jburg-v1809bTony Pearson
 
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System z
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System zSHARE.ORG in Boston Aug 2013 RHEL update for IBM System z
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System zFilipe Miranda
 
Unix nim-presentation
Unix nim-presentationUnix nim-presentation
Unix nim-presentationRajeev Ghosh
 
LAS16-400: Mini Conference 3 AOSP (Session 1)
LAS16-400: Mini Conference 3 AOSP (Session 1)LAS16-400: Mini Conference 3 AOSP (Session 1)
LAS16-400: Mini Conference 3 AOSP (Session 1)Linaro
 
LF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver modelLF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver modelLF_DPDK
 
Build a High Available NFS Cluster Based on CephFS - Shangzhong Zhu
Build a High Available NFS Cluster Based on CephFS - Shangzhong ZhuBuild a High Available NFS Cluster Based on CephFS - Shangzhong Zhu
Build a High Available NFS Cluster Based on CephFS - Shangzhong ZhuCeph Community
 
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...Building High Availability Clusters with SUSE Linux Enterprise High Availabil...
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...Novell
 
Максим Мельников - FOSDEM 2014 overview
Максим Мельников - FOSDEM 2014 overviewМаксим Мельников - FOSDEM 2014 overview
Максим Мельников - FOSDEM 2014 overviewMinsk Linux User Group
 

Similar to Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User Space (20)

IBM Platform Computing Elastic Storage
IBM Platform Computing  Elastic StorageIBM Platform Computing  Elastic Storage
IBM Platform Computing Elastic Storage
 
pnfs status
pnfs statuspnfs status
pnfs status
 
52 nfs
52 nfs52 nfs
52 nfs
 
Unix and Linux Common Boot Disk Disaster Recovery Tools by Dusan Baljevic
Unix and Linux Common Boot Disk Disaster Recovery Tools by Dusan BaljevicUnix and Linux Common Boot Disk Disaster Recovery Tools by Dusan Baljevic
Unix and Linux Common Boot Disk Disaster Recovery Tools by Dusan Baljevic
 
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyLinux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
 
Wheeler w 0450_linux_file_systems1
Wheeler w 0450_linux_file_systems1Wheeler w 0450_linux_file_systems1
Wheeler w 0450_linux_file_systems1
 
Wheeler w 0450_linux_file_systems1
Wheeler w 0450_linux_file_systems1Wheeler w 0450_linux_file_systems1
Wheeler w 0450_linux_file_systems1
 
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageWebinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
 
We4IT lcty 2013 - infra-man - domino run faster
We4IT lcty 2013 - infra-man - domino run faster We4IT lcty 2013 - infra-man - domino run faster
We4IT lcty 2013 - infra-man - domino run faster
 
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
LCNA14: Why Use Xen for Large Scale Enterprise Deployments? - Konrad Rzeszute...
 
S104878 nvme-revolution-jburg-v1809b
S104878 nvme-revolution-jburg-v1809bS104878 nvme-revolution-jburg-v1809b
S104878 nvme-revolution-jburg-v1809b
 
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System z
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System zSHARE.ORG in Boston Aug 2013 RHEL update for IBM System z
SHARE.ORG in Boston Aug 2013 RHEL update for IBM System z
 
Unix nim-presentation
Unix nim-presentationUnix nim-presentation
Unix nim-presentation
 
LAS16-400: Mini Conference 3 AOSP (Session 1)
LAS16-400: Mini Conference 3 AOSP (Session 1)LAS16-400: Mini Conference 3 AOSP (Session 1)
LAS16-400: Mini Conference 3 AOSP (Session 1)
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
 
LF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver modelLF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver model
 
Build a High Available NFS Cluster Based on CephFS - Shangzhong Zhu
Build a High Available NFS Cluster Based on CephFS - Shangzhong ZhuBuild a High Available NFS Cluster Based on CephFS - Shangzhong Zhu
Build a High Available NFS Cluster Based on CephFS - Shangzhong Zhu
 
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...Building High Availability Clusters with SUSE Linux Enterprise High Availabil...
Building High Availability Clusters with SUSE Linux Enterprise High Availabil...
 
Максим Мельников - FOSDEM 2014 overview
Максим Мельников - FOSDEM 2014 overviewМаксим Мельников - FOSDEM 2014 overview
Максим Мельников - FOSDEM 2014 overview
 
FOSDEM 2014 Overview
FOSDEM 2014 OverviewFOSDEM 2014 Overview
FOSDEM 2014 Overview
 

More from Kernel TLV

Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCKernel TLV
 
SGX Trusted Execution Environment
SGX Trusted Execution EnvironmentSGX Trusted Execution Environment
SGX Trusted Execution EnvironmentKernel TLV
 
Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545Kernel TLV
 
Present Absence of Linux Filesystem Security
Present Absence of Linux Filesystem SecurityPresent Absence of Linux Filesystem Security
Present Absence of Linux Filesystem SecurityKernel TLV
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptablesKernel TLV
 
KernelTLV Speaker Guidelines
KernelTLV Speaker GuidelinesKernelTLV Speaker Guidelines
KernelTLV Speaker GuidelinesKernel TLV
 
Userfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future DevelopmentUserfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future DevelopmentKernel TLV
 
Linux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use CasesLinux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use CasesKernel TLV
 
DMA Survival Guide
DMA Survival GuideDMA Survival Guide
DMA Survival GuideKernel TLV
 
FD.IO Vector Packet Processing
FD.IO Vector Packet ProcessingFD.IO Vector Packet Processing
FD.IO Vector Packet ProcessingKernel TLV
 
WiFi and the Beast
WiFi and the BeastWiFi and the Beast
WiFi and the BeastKernel TLV
 
Specializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network StackSpecializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network StackKernel TLV
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux InterruptsKernel TLV
 
Userfaultfd and Post-Copy Migration
Userfaultfd and Post-Copy MigrationUserfaultfd and Post-Copy Migration
Userfaultfd and Post-Copy MigrationKernel TLV
 
VLANs in the Linux Kernel
VLANs in the Linux KernelVLANs in the Linux Kernel
VLANs in the Linux KernelKernel TLV
 
Switchdev - No More SDK
Switchdev - No More SDKSwitchdev - No More SDK
Switchdev - No More SDKKernel TLV
 
grsecurity and PaX
grsecurity and PaXgrsecurity and PaX
grsecurity and PaXKernel TLV
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network InterfacesKernel TLV
 
Modern Linux Tracing Landscape
Modern Linux Tracing LandscapeModern Linux Tracing Landscape
Modern Linux Tracing LandscapeKernel TLV
 

More from Kernel TLV (20)

DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
 
Building Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCCBuilding Network Functions with eBPF & BCC
Building Network Functions with eBPF & BCC
 
SGX Trusted Execution Environment
SGX Trusted Execution EnvironmentSGX Trusted Execution Environment
SGX Trusted Execution Environment
 
Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545Bypassing ASLR Exploiting CVE 2015-7545
Bypassing ASLR Exploiting CVE 2015-7545
 
Present Absence of Linux Filesystem Security
Present Absence of Linux Filesystem SecurityPresent Absence of Linux Filesystem Security
Present Absence of Linux Filesystem Security
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 
KernelTLV Speaker Guidelines
KernelTLV Speaker GuidelinesKernelTLV Speaker Guidelines
KernelTLV Speaker Guidelines
 
Userfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future DevelopmentUserfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future Development
 
Linux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use CasesLinux Kernel Cryptographic API and Use Cases
Linux Kernel Cryptographic API and Use Cases
 
DMA Survival Guide
DMA Survival GuideDMA Survival Guide
DMA Survival Guide
 
FD.IO Vector Packet Processing
FD.IO Vector Packet ProcessingFD.IO Vector Packet Processing
FD.IO Vector Packet Processing
 
WiFi and the Beast
WiFi and the BeastWiFi and the Beast
WiFi and the Beast
 
Specializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network StackSpecializing the Data Path - Hooking into the Linux Network Stack
Specializing the Data Path - Hooking into the Linux Network Stack
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux Interrupts
 
Userfaultfd and Post-Copy Migration
Userfaultfd and Post-Copy MigrationUserfaultfd and Post-Copy Migration
Userfaultfd and Post-Copy Migration
 
VLANs in the Linux Kernel
VLANs in the Linux KernelVLANs in the Linux Kernel
VLANs in the Linux Kernel
 
Switchdev - No More SDK
Switchdev - No More SDKSwitchdev - No More SDK
Switchdev - No More SDK
 
grsecurity and PaX
grsecurity and PaXgrsecurity and PaX
grsecurity and PaX
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
Modern Linux Tracing Landscape
Modern Linux Tracing LandscapeModern Linux Tracing Landscape
Modern Linux Tracing Landscape
 

Recently uploaded

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 

Recently uploaded (20)

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 

Emerging Persistent Memory Hardware and ZUFS - PM-based File Systems in User Space

  • 1. KernelTLV Filesystem Supersession Part I File Systems: why, how and where (another slide deck) Philip.Derbeko@gmail.com Part II Emerging PM HW & SW stack implications Amit.Golander@netapp.com Part III ZUFS – PM-based file systems in user space Shachar.Sharon@netapp.com Boaz.Harrosh@netapp.com © 2017 NetApp, Inc. All rights reserved1 KernelTLV Meetup Nov. 14th 2017
  • 2. Part II Persistent Memory (PM) – HW & SW implications Emerging PM/NVDIMM devices, the value they bring to applications and how they revolutionize the storage stack © 2017 NetApp, Inc. All rights reserved2 KernelTLV Meetup Nov. 14th 2017
  • 3. About © 2017 NetApp, Inc. All rights reserved.3 ~12,000 employees 50+ countries Only Top 5 vendor that is rapidly growing Celebrating 25Years Founded in 1992 NetApp acquired @ June 2017 TLV area based Recruiting FS Dev. +1 PM Software Pioneer Since 2014 Ground breaking Latencies
  • 4. Storage Media Generations © 2017 NetApp, Inc. All rights reserved4 PM marries the best of both worlds: + Storage Persistency Memory Speed HDD FLASH IOPS (even if random…) Latency (even under load…) NVDIMM / PM
  • 5. Definitions Rounded latency numbers & under typical load 5 SCM (Storage Class Memory) Byte-addressable Media @ Near-memory speed <1us 5 © 2017 NetApp, Inc. All rights reserved. PM (Persistent Memory) Byte-addressable Device @ Near-memory speed, on memory bus
  • 6. PM-based Storage - Question Traditional Assumptions Byte-addressable media Block-addressable wrapper SW layers Network SW caching Block abstraction ? 66 © 2017 NetApp, Inc. All rights reserved. Memory Vs. Storage
  • 7. Block wrapper PM-based FS Application Block-based FS Page Cache bio PM-based Software Approaches Application Re-written Application NPM DAX-enabled FS SW reuse Performance App SW Infrastructure HW
  • 8. Linux Kernel Enablers “-o dax” Built in Kernel driver nd_btt.ko. Source: drivers/nvdimm/btt.c Built in Kernel driver nd_pmem.ko. Source: drivers/nvdimm/pmem.c Built in Kernel driver core.ko. Source: drivers/nvdimm/core.c Linux 4.1+ subsystems added support of NVDIMMs. Mostly stable from 4.4 NVDIMM modules presented as device links: /dev/pmem0, /dev/pmem1 QEMO support BTT (Block, Atomic) PMEM (Direct Access) DAX Enabled FS NFIT Core 8Can also refer to kTLV Meetup from 2016 - https://www.youtube.com/watch?v=FVrgt9JtcwQ
  • 9. Block wrapper PM-based FS Applications DAX-enabled FS Storage semantics PM-based Software Approaches Memory semantics Block-based FS Page Cache bio NPM Mmap, ld/st, msyncRead/write, fsync NVDIMM Driver
  • 10. Examples: Block wrapper PM-based FS Applications DAX-enabled FS Storage semantics Memory semantics Block-based FS Page Cache bio NPM NTFS-DAX REFS-DAX XFS-DAX EXT4-DAX NOVA LUMFS SIMFS HINFS Plexistor M1FS NVDIMM Driver Examples: Windows server 2016 Linux 4.4 and above Ubuntu 16.04 LTS RHEL 7.3 Fedora 23 SLES 12 SP2 Examples: NVML 1.3 (*) Huge variance in features and stability(*) Good portability PM-based Software Approaches
  • 11. 11 1111 © 2017 NetApp, Inc. All rights reserved.
  • 12. Part III ZUFS - Zero-copy User-mode FS New style user-mode filesystems that require: - Extremely Low-Latency - Synchronous & DAX © 2017 NetApp, Inc. All rights reserved12 KernelTLV Meetup Nov. 14th 2017
  • 13. From VFS to Zufs © 2017 NetApp, Inc. All rights reserved 13
  • 14. Why Userspace? • Resiliency • Ease of development • Externals (e.g. compress, encrypt) • Licensing • Market requirements (avoid kernel modules) © 2017 NetApp, Inc. All rights reserved 14
  • 15. ZUFS and FUSE are complementary tools © 2017 NetApp, Inc. All rights reserved 15
  • 16. Motivation FuSE is great for HDDs and ok(ish) for SSDs, but not suitable for PMEM © 2017 NetApp, Inc. All rights reserved.16 FlashHDD Memory FUSE SCM ? RDMATCP Latency$/GB FUSE ZUFS Typical medias Built for HDDs & extended to Flash Built for PM/NVDIMMs and DRAM SW Perf. goals • Secondary (High latency media) • Async I/O Throughput • SW is the bottleneck • Latency is everything SW caching Slow media -> Rely on OS Page Cache Near-memory speed media -> Bypass OS Page Cache Access method I/O only I/O and mmap (DAX) Cost of redundant copy / context switch Negligible The bottleneck -> Avoid copies, queues & remain on core Latency penalty under load 100s of µs 3-4 µs DesignAssumptions
  • 17. Zufs Overview Core 1 Core 2 Core 3 Core 4 © 2017 NetApp, Inc. All rights reserved 18
  • 18. Kernel to Userspace © 2017 NetApp, Inc. All rights reserved 19
  • 19. ZUFS – Kernel Zoom-in © 2017 NetApp, Inc. All rights reserved20 KernelTLV Meetup Nov. 14th 2017
  • 20. Preliminary Results FUSE Vs. ZUFS (PM Media) © 2017 NetApp, Inc. All rights reserved.21 • Measured on Dual socket Intel XEON 2650v4 (48 HW Threads) DRAM-backed PMEM type • Random 4KB DirectIO writ(ish) access
  • 21. Architecture © 2017 NetApp, Inc. All rights reserved.22 APP zt-vma PP P App pages Mapped into Server VM Unmapped on return ZUS Zu Server ZUF Zu Feeder zt per cpu ... kernel
  • 22.  ZT - ZUFS Thread per CPU, affinity on a single CPU (thread_fifo/rr)  Special ZUFS communication file per ZT (O_TMPFILE + IOCTL_ZUFS_INIT)  ZT-vma - Mmap 4M vma zero copy communication area per ZT  IOCTL_ZU_WAIT_OPT – threads sleeps in Kernel waiting for an operation  On App IO current CPU ZT is selected, app pages mapped into ZT-vma. Server thread released with an operation  After execution, ZT returns to kernel (IOCTL_ZU_WAIT_OPT), app is released, Server wait for new operation.  On exit (or server crash) file is closed, Kernel cleans all resources  Async operation is also supported. Server can return EAGAIN.  Server will later complete the operation ASYNC. App will be woken up.  Application mmap (DAX) is the opposite direction. ZUS exposes pages (opt_get_data_block) into the app VM © 2017 NetApp, Inc. All rights reserved.23 Architecture
  • 23. Perf. Optimizations - 1 MMAP_LOCAL_CPU © 2017 NetApp, Inc. All rights reserved24 • mm patch to allow single-core TLB invalidate (in the common case) 0 5 10 15 20 25 30 - 200,000 400,000 600,000 800,000 1,000,000 1,200,000 1,400,000 1,600,000 1,800,000 2,000,000 Latency[us] IOPS ZUFS w/wo mm patch ZUFS_unpatched_mm ZUFS_patched_mm
  • 24. Perf. Optimizations - 2 © 2017 NetApp, Inc. All rights reserved.25 • scheduler patch to allow efficient context switch on same core (Relay Object) Unimplemented No Perf. Results
  • 25. © 2017 NetApp, Inc. All rights reserved. --- NETAPP CONFIDENTIAL ---26 Questions