SlideShare a Scribd company logo
LEADING
COLLABORATION
IN THE ARM
ECOSYSTEM
Mediated devices for ethernet
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Device IO vs Device Driver
UIO/VFIO -> userland device driver
VFIO_MDEV -> userlande device IO
● Introduced in kernel 4.10.
● Currently supported by Intel i915/QEMU to support virtual GPUs.
● Offers iommu isolation using VFIO-API.
Many use cases
● WrapDrive from Huawei for accelerators (crypto…)
● net_mdev further specialized WrapDrive for net_devices
○ To be used by DPDK, ODP, VPP, Netmap, specialized stacks (TSN)
● block_mdev for SPDK…?
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Design goals & roles
Design goals
● Userland shall not be able to highjack kernel
○ Same attack surface as VFIO
● Bus agnostic (PCI, DPAA2, platform…)
● Userland packet framework agnostic
○ VPP packet to index
Userland
● packet memory (buffers or areas) and HW descriptors
● Leverages netlink and other control channels
Kernel driver
● control of device initialization, reset, rings…
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
net-mdev overall architecture
net-mdev
ulib
DPDK/ODP/VPP/...
Userspace
Kernel
Doorbell MMIO(PCI BAR)
Rx Descriptor Ring
Tx Descriptor RingDevice
Driver
netlink…
vfio-mdev
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Reality check
Code impact
● Realtek kernel driver: 10KLOCs
● PoC sending/receiving packets from userland
○ r8169/e1000e userspace-“driver”(descriptor handling/mmio): ~100 lines
○ r8169/e1000e full ODP integration: ~ 500 lines
○ Userland ODP framework: 620 lines
○ Kernel framework(r8169/e1000e): 227 and 239 lines respectively
○ r8169 driver changes: less than 80 lines
○ e100e driver changes: less than 50 lines
Mediated device framework to be completed
Subtle security issues solved
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
IOMMU/SMMU and VFIO refresher (memory)
IOMMU groups: internal
IOMMU domains: API
“Domains”: DMAR or process or VM or...
can contain multiple IOMMU groups
VFIO container
IOMMU paging
granularity
MMU
IOMMU (Intel)
SMMU (ARM)
kmalloc: FFFFFF80021000000
Physical: 20000000000
IOVA: FC00000
userland : 1000000000
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Solving problems
Finalize vfio-mdev for IOMMU
● Currently deals only with remapping and device emulation
● Single IOVA for all groups to allow packet forwarding
● Streaming DMA handling
Subpage PCI mapping for “door bell” and other stuff
● Problem appears with N ports = 1 PCI device and only p<N captured ports
○ Cannot allow PCI mapping: IOCTL or CPU innovation required
Dealing with rings setup
● Complex activity, page aligned boundaries (MMU & IOMMU)
● Need to be domain IOVA, not group IOVA
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Plan
Complete understanding of problem space
● More complete framework (statistics - TUN/TAP value?)
● Have DPDK PMD, ODP driver, VPP driver
Who wants to collaborate?
Summarize in RFC for upstream and get guidance
Linaro Board Confidential
CORE
level
CLUB
level
GROUP
level
96BOARDS
COMMUNITY

More Related Content

What's hot (20)

PDF
LF_DPDK_Mellanox bifurcated driver model
LF_DPDK
 
PPTX
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Netronome
 
PDF
Hotplug and Virtio - Tetsuya Mukawa
harryvanhaaren
 
PDF
LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...
LF_DPDK
 
PDF
FD.io - The Universal Dataplane
Open Networking Summit
 
PDF
Generic Resource Manager - László Vadkerti, András Kovács
harryvanhaaren
 
PDF
OCP U.S. Summit 2017 Presentation
Netronome
 
PDF
The Power of SmartNICs
Netronome
 
PDF
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK
 
PDF
Performance challenges in software networking
Stephen Hemminger
 
PDF
Linux Native, HTTP Aware Network Security
Thomas Graf
 
PDF
DPDK Summit 2015 - HP - Al Sanders
Jim St. Leger
 
PPTX
Netsft2017 day in_life_of_nfv
Intel
 
PPTX
6WIND - SPEED MATTERS: The Challenge 2014 Contest Winners
6WIND
 
PDF
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Michelle Holley
 
PDF
DPDK Summit 2015 - RIFT.io - Tim Mortsolf
Jim St. Leger
 
PDF
Accelerate Service Function Chaining Vertical Solution with DPDK
OPNFV
 
PDF
Hyperscan - Mohammad Abdul Awal
harryvanhaaren
 
PDF
DPACC Acceleration Progress and Demonstration
OPNFV
 
PDF
ODSA Use Case - SmartNIC
ODSA Workgroup
 
LF_DPDK_Mellanox bifurcated driver model
LF_DPDK
 
Disaggregation a Primer: Optimizing design for Edge Cloud & Bare Metal applic...
Netronome
 
Hotplug and Virtio - Tetsuya Mukawa
harryvanhaaren
 
LF_DPDK17_rte_raw_device: implementing programmable accelerators using generi...
LF_DPDK
 
FD.io - The Universal Dataplane
Open Networking Summit
 
Generic Resource Manager - László Vadkerti, András Kovács
harryvanhaaren
 
OCP U.S. Summit 2017 Presentation
Netronome
 
The Power of SmartNICs
Netronome
 
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK
 
Performance challenges in software networking
Stephen Hemminger
 
Linux Native, HTTP Aware Network Security
Thomas Graf
 
DPDK Summit 2015 - HP - Al Sanders
Jim St. Leger
 
Netsft2017 day in_life_of_nfv
Intel
 
6WIND - SPEED MATTERS: The Challenge 2014 Contest Winners
6WIND
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Michelle Holley
 
DPDK Summit 2015 - RIFT.io - Tim Mortsolf
Jim St. Leger
 
Accelerate Service Function Chaining Vertical Solution with DPDK
OPNFV
 
Hyperscan - Mohammad Abdul Awal
harryvanhaaren
 
DPACC Acceleration Progress and Demonstration
OPNFV
 
ODSA Use Case - SmartNIC
ODSA Workgroup
 

Similar to LF_DPDK17_mediated devices: better userland IO (20)

PDF
HKG18-110 - net_mdev: Fast path user space I/O
Linaro
 
ODP
Enduro/X Middleware
Madars Vitolins
 
PDF
RISC-V 30908 patra
RISC-V International
 
PDF
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
The Linux Foundation
 
PDF
SBC6020 SAM9G20 based Single Board Computer
yclinda666
 
PDF
KVM-22-Supporting TEE on x86 client platforms with pKVM_2.pdf
d0re3nschw4rtz1277
 
PDF
XS Boston 2008 Self IO Emulation
The Linux Foundation
 
PDF
Introduction to FPGA, VHDL
Amr Rashed
 
PDF
Introduction to Advanced embedded systems course
anishgoel
 
PPT
UNIT-III ES.ppt
DustinGraham19
 
PPTX
Chapter_2_ESD_Typical Embedded System.pptx
ShanthiM13
 
PPT
Visão geral do hardware do servidor System z e Linux on z - Concurso Mainframe
Anderson Bassani
 
PPTX
Intro to micro controller (Atmega16)
Ramadan Ramadan
 
PDF
openPOWERLINK over Xenomai
Alexandre LAHAYE
 
PDF
SystemReady IR and MediaTek Genio-1200-EVK - Tech part - COSCUP 20240804
Macpaul Lin
 
PDF
Programable logic controller.pdf
sravan66
 
PDF
Introduction to FreeRTOS
ICS
 
PDF
HKG18-116 - RAS Solutions for Arm64 Servers
Linaro
 
PDF
ARM Processor Tutorial
Embeddedcraft Craft
 
PDF
The_New_IBM_z15_A-technical_review_of_the_Processor_Design_New_Features_IO_Ca...
bsduser071
 
HKG18-110 - net_mdev: Fast path user space I/O
Linaro
 
Enduro/X Middleware
Madars Vitolins
 
RISC-V 30908 patra
RISC-V International
 
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
The Linux Foundation
 
SBC6020 SAM9G20 based Single Board Computer
yclinda666
 
KVM-22-Supporting TEE on x86 client platforms with pKVM_2.pdf
d0re3nschw4rtz1277
 
XS Boston 2008 Self IO Emulation
The Linux Foundation
 
Introduction to FPGA, VHDL
Amr Rashed
 
Introduction to Advanced embedded systems course
anishgoel
 
UNIT-III ES.ppt
DustinGraham19
 
Chapter_2_ESD_Typical Embedded System.pptx
ShanthiM13
 
Visão geral do hardware do servidor System z e Linux on z - Concurso Mainframe
Anderson Bassani
 
Intro to micro controller (Atmega16)
Ramadan Ramadan
 
openPOWERLINK over Xenomai
Alexandre LAHAYE
 
SystemReady IR and MediaTek Genio-1200-EVK - Tech part - COSCUP 20240804
Macpaul Lin
 
Programable logic controller.pdf
sravan66
 
Introduction to FreeRTOS
ICS
 
HKG18-116 - RAS Solutions for Arm64 Servers
Linaro
 
ARM Processor Tutorial
Embeddedcraft Craft
 
The_New_IBM_z15_A-technical_review_of_the_Processor_Design_New_Features_IO_Ca...
bsduser071
 
Ad

More from LF_DPDK (20)

PDF
LF_DPDK17_Integrating and using DPDK with Open vSwitch
LF_DPDK
 
PDF
LF_DPDK17_ OpenVswitch hardware offload over DPDK
LF_DPDK
 
PDF
LF_DPDK17_DPDK support for new hardware offloads
LF_DPDK
 
PDF
LF_DPDK17_DPDK's best kept secret – Micro-benchmark performance tests
LF_DPDK
 
PDF
LF_DPDK17_Lagopus Router
LF_DPDK
 
PDF
LF_DPDK17_DPDK Membership Library
LF_DPDK
 
PDF
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
LF_DPDK
 
PDF
LF_DPDK17_testpmd: swissknife for NFV
LF_DPDK
 
PDF
LF_DPDK17_Make DPDK's software traffic manager a deployable solution for vBNG
LF_DPDK
 
PDF
LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...
LF_DPDK
 
PDF
LF_DPDK17_DPDK on Microsoft Azure
LF_DPDK
 
PDF
LF_DPDK17_VPP Host Stack
LF_DPDK
 
PDF
LF_DPDK17_Accelerating Packet Processing with FPGA NICs
LF_DPDK
 
PDF
LF_DPDK17_rte_security: enhancing IPSEC offload
LF_DPDK
 
PDF
LF_DPDK17_Enabling hardware acceleration in DPDK data plane applications
LF_DPDK
 
PDF
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK
 
PDF
LF_DPDK17_Flexible and Extensible support for new protocol processing with DP...
LF_DPDK
 
PDF
LF_DPDK17_Technical Roadmap
LF_DPDK
 
PDF
LF_DPDK17_Enhanced Memory Management
LF_DPDK
 
PDF
LF_DPDK17_SafetyOrange - a tiny server class multi-purpose box with DPDK
LF_DPDK
 
LF_DPDK17_Integrating and using DPDK with Open vSwitch
LF_DPDK
 
LF_DPDK17_ OpenVswitch hardware offload over DPDK
LF_DPDK
 
LF_DPDK17_DPDK support for new hardware offloads
LF_DPDK
 
LF_DPDK17_DPDK's best kept secret – Micro-benchmark performance tests
LF_DPDK
 
LF_DPDK17_Lagopus Router
LF_DPDK
 
LF_DPDK17_DPDK Membership Library
LF_DPDK
 
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
LF_DPDK
 
LF_DPDK17_testpmd: swissknife for NFV
LF_DPDK
 
LF_DPDK17_Make DPDK's software traffic manager a deployable solution for vBNG
LF_DPDK
 
LF_DPDK17_OpenNetVM: A high-performance NFV platforms to meet future communic...
LF_DPDK
 
LF_DPDK17_DPDK on Microsoft Azure
LF_DPDK
 
LF_DPDK17_VPP Host Stack
LF_DPDK
 
LF_DPDK17_Accelerating Packet Processing with FPGA NICs
LF_DPDK
 
LF_DPDK17_rte_security: enhancing IPSEC offload
LF_DPDK
 
LF_DPDK17_Enabling hardware acceleration in DPDK data plane applications
LF_DPDK
 
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK
 
LF_DPDK17_Flexible and Extensible support for new protocol processing with DP...
LF_DPDK
 
LF_DPDK17_Technical Roadmap
LF_DPDK
 
LF_DPDK17_Enhanced Memory Management
LF_DPDK
 
LF_DPDK17_SafetyOrange - a tiny server class multi-purpose box with DPDK
LF_DPDK
 
Ad

Recently uploaded (20)

PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PPTX
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Per Axbom: The spectacular lies of maps
Nexer Digital
 
PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Per Axbom: The spectacular lies of maps
Nexer Digital
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 

LF_DPDK17_mediated devices: better userland IO

  • 2. LEADING COLLABORATION IN THE ARM ECOSYSTEM Device IO vs Device Driver UIO/VFIO -> userland device driver VFIO_MDEV -> userlande device IO ● Introduced in kernel 4.10. ● Currently supported by Intel i915/QEMU to support virtual GPUs. ● Offers iommu isolation using VFIO-API. Many use cases ● WrapDrive from Huawei for accelerators (crypto…) ● net_mdev further specialized WrapDrive for net_devices ○ To be used by DPDK, ODP, VPP, Netmap, specialized stacks (TSN) ● block_mdev for SPDK…?
  • 3. LEADING COLLABORATION IN THE ARM ECOSYSTEM Design goals & roles Design goals ● Userland shall not be able to highjack kernel ○ Same attack surface as VFIO ● Bus agnostic (PCI, DPAA2, platform…) ● Userland packet framework agnostic ○ VPP packet to index Userland ● packet memory (buffers or areas) and HW descriptors ● Leverages netlink and other control channels Kernel driver ● control of device initialization, reset, rings…
  • 4. LEADING COLLABORATION IN THE ARM ECOSYSTEM net-mdev overall architecture net-mdev ulib DPDK/ODP/VPP/... Userspace Kernel Doorbell MMIO(PCI BAR) Rx Descriptor Ring Tx Descriptor RingDevice Driver netlink… vfio-mdev
  • 5. LEADING COLLABORATION IN THE ARM ECOSYSTEM Reality check Code impact ● Realtek kernel driver: 10KLOCs ● PoC sending/receiving packets from userland ○ r8169/e1000e userspace-“driver”(descriptor handling/mmio): ~100 lines ○ r8169/e1000e full ODP integration: ~ 500 lines ○ Userland ODP framework: 620 lines ○ Kernel framework(r8169/e1000e): 227 and 239 lines respectively ○ r8169 driver changes: less than 80 lines ○ e100e driver changes: less than 50 lines Mediated device framework to be completed Subtle security issues solved
  • 6. LEADING COLLABORATION IN THE ARM ECOSYSTEM IOMMU/SMMU and VFIO refresher (memory) IOMMU groups: internal IOMMU domains: API “Domains”: DMAR or process or VM or... can contain multiple IOMMU groups VFIO container IOMMU paging granularity MMU IOMMU (Intel) SMMU (ARM) kmalloc: FFFFFF80021000000 Physical: 20000000000 IOVA: FC00000 userland : 1000000000
  • 7. LEADING COLLABORATION IN THE ARM ECOSYSTEM Solving problems Finalize vfio-mdev for IOMMU ● Currently deals only with remapping and device emulation ● Single IOVA for all groups to allow packet forwarding ● Streaming DMA handling Subpage PCI mapping for “door bell” and other stuff ● Problem appears with N ports = 1 PCI device and only p<N captured ports ○ Cannot allow PCI mapping: IOCTL or CPU innovation required Dealing with rings setup ● Complex activity, page aligned boundaries (MMU & IOMMU) ● Need to be domain IOVA, not group IOVA
  • 8. LEADING COLLABORATION IN THE ARM ECOSYSTEM Plan Complete understanding of problem space ● More complete framework (statistics - TUN/TAP value?) ● Have DPDK PMD, ODP driver, VPP driver Who wants to collaborate? Summarize in RFC for upstream and get guidance