SlideShare a Scribd company logo
1 of 36
Download to read offline
generic
resource
manager
András KovÁcs (Andras.kovacs@ericsson.com)
LászlÓ Vadkerti (laszlo.vadkerti@Ericsson.com)
A manager we would like :)
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 2
Last year…
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 3
by merriam-webster:
› something that a country has and can use to increase its wealth
› a supply of something (such as money) that someone has and can use
when it is needed
› a place or thing that provides something useful
by wikipedia (computing):
› A resource, or system resource, is any physical or virtual
component of limited availability within a computer system. [...]
Every internal system component is a resource. […].
What is a resource?
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 4
› CPU
› Memory (hugepage, cache, ivshm, memzone)
› Virtual address
› Packet pool
› Network/Virtual Device (port/queue)
› Lcore
› Instance
› HW accelerator
› And there are lots of other resources coming… (threads,
protocol stacks, etc)
typical dpdk
resources
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 5
› Better control over resources
› Hide “real” environment from applications
› Support migration
› Keep track of resources/usage (High Availability)
› Prioritize resources
› Access control
› Avoid code duplication
Why?
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 6
› Resource pools (resources with similar attributes) e.g.
Servers -> Compute nodes -> Virtual Machines -> CPU/memory/interface/lcore/pktpool
Resource pools
MEM
CPU
I/F
CPU CPU CPU CPU CPU
CPU CPU CPU CPU CPU
CPU CPU CPU CPU CPU
CPU CPU CPU CPU CPU
CPU CPU CPU CPU CPU
CPU
CPU
CPU
CPU
CPU
CPU CPU CPU CPU CPU CPU
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 7
MEM
CPU
MEM
CPU
MEM
CPU
I/F
› Resource pools (resources with similar attributes) e.g.
Servers -> Compute nodes -> Virtual Machines -> CPU/memory/interface/lcore/pktpool
Resource pools
CPU CPU
CPU CPU
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 8
MEM
CPU
MEM
CPU
MEM
CPU
I/F
› Resource pools (resources with similar attributes) e.g.
Servers -> Compute nodes -> Virtual Machines -> CPU/memory/interface/lcore/pktpool
Resource pools
CPU
CPU
attribute 1
attribute 2
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 9
› cpualias foreground {
› cpumask = "2"
› }
› pktpool pktpool_fg {
› cpualias = foreground
› num_pkts = 8K
› num_cached_pkts = 64
› }
Config EXAMPLE
PKT
POOL
CPU
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 10
› cpualias foreground {
› cpumask = "2,12"
› }
› pktpool pktpool_fg {
› cpualias = foreground
› num_pkts = 8K
› num_cached_pkts = 64
› }
Config EXAMPLE
PKT
POOL
CPU CPU
S1S0
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 11
› cpualias foreground {
› cpumask = "2,12"
› }
› pktpool pktpool_fg {
› cpualias = foreground
› num_pkts = 8K
› num_cached_pkts = 64
type = numa
› }
Config EXAMPLE
S1S0
PKT
POOL
PKT
POOL
CPU CPU
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 12
› cpualias foreground {
› cpumask = "2,4,12,14"
› }
› pktpool pktpool_fg {
› cpualias = foreground
› num_pkts = 8K
› num_cached_pkts = 64
type = numa
› }
Config EXAMPLE
S1S0
PKT
POOL
PKT
POOL
CPU CPU
CPUCPU
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 13
› cpualias foreground {
› cpumask = "2,4,12,14"
› }
› pktpool pktpool_fg {
› cpualias = foreground
› num_pkts = 8K
› num_cached_pkts = 64
type = exclusive
› }
Config EXAMPLE
PKT
POOL
S1S0
PKT
POOL
PKT
POOL
PKT
POOL
CPU CPU
CPUCPU
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 14
› resource allocation (static or on-demand)
› chain of pools in case of dynamic allocation (example)
RESOURCE allocation
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 16
› e.g. a native workstation with 4 sockets, memory,
interfaces.
› resmgr starts, autodetects (CPUs, HT siblings, cache sizes,
etc) every resources we can use.
› resmgr: daemon/binary/library
› reading configuration and creating a free resource
database (our choice is xattr)
› supporting popup cpu, memory, interface, etc
› linking/referencing resources (cpu table, HT table, NUMA,
L3 cache (CAT/cache QoS), etc)
RESMGR at work
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 17
› Is the relation between virtual ports, virtual queues and
named packet pools. Somewhat similar to pipeline model
configuration.
packet domain
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 18
› Allocating resources
› Per-application configuration
› Application instances see only assigned resources (like a
VM)
DPDK DOMAIN
(APPlication DOMAIN)
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 19
existing Memory
management example
process1
process2
1G
1G
1G
1G
1G
1G
1G
1G
DPDK memory
DPDK
socket
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 20
› Simple memory management API
› Transparent NUMA awareness for applications
– Even in a non-NUMA aware guest VM environment
› Flexible, configuration, re-configuration
› Provide a more granular way of placing objects in memory
– e.g. to control the number of TLB cache entry usage
› Memory partitioning
– Physically contiguous memory, hugepages etc.
– Partitioning across application instances
– Shared memory support
memory management
goals
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 21
› Named and indexed memory partition (shared memory)
with defined properties such as
– Location, e.g. NUMA node(s)
– Size of partition, e.g. 4GB/1G, 512MB/2M hugepages
– Physical contiguity
– Type (future improvement), e.g.
› Hugepage memory (only possible type today)
› Mmap-ped file
› Inter-vm shared memory
› Distributed memory
› etc.
what is a memdomain?
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 22
› Is a pool of shared memory resources (memdomains)
› Is a named group of memory partitions with different
location attributes
› Three main types
– DEFAULT
› No location preference, only a single memdomain in the pool
– NUMA
› One memdomain per involved NUMA node
– EXCLUSIVE
› One memdomain per application instance
what is a memdomain
pool?
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 23
MEMDOMAIN
Configuration
› Can be compared to partitioning a hard drive where
– Available hugepage memory is the hard drive,
e.g. one drive per NUMA node
– Memdomains can be compared to disk partitions
– Memzones can be compared to files
› Should be a system engineering task to find the best model
working for the specific application model
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 24
MEMDOMAIN Simple
Application API
› Initialize library (oai_memcfg_libinit)
– Register a unique name to the process (High Availability, debug)
– Initializes DPDK memory, grabs hugepages etc.
› Attach to named memory partition (oai_memcfg_attach)
– Using pre-configured memdomain pool name
– Automatic memdomain selection from pool (per instance, NUMA)
– Maps memdomain (memzones) into virtual address space
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 25
MEMDOMAIN
ConfiguratioN EXAMPLE
CPUALIAS
cpualias all {
cpumask = "0-31" # all available CPU
}
CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU
CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 26
MEMDOMAIN
ConfiguratioN EXAMPLE
CPUALIAS
cpualias all {
cpumask = "0-31" # all available CPU
}
cpualias foreground {
cpumask = "2-31:2" # even cpus excluding cpu0
}
CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU
CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 27
MEMDOMAIN
CONFIGURATION EXAMPLE
DEFAULT TYPE
# -------------------------------
# Shared memory accessed by
# all instances
# -------------------------------
memdomain App_Shared_Memory {
type = default
cpualias = "all"
alloc_memzone = true
size {
huge_2M = 512M
huge_1G = 0
}
}
Instance1
S1S0
MEM
DOMAIN
Instance2
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 28
memdomain API ATTACH
EXAMPLE
DEFAULT TYPE
Instance1:
- oai_memcfg_libinit(“AppProcess1”);
- addr1 = oai_memcfg_attach(“App_Shared_Memory”,
OAI_MEMCFG_MD_INDEX_AUTO,
&len,
OAI_MEMCFG_MZ_FLAGS_NONE);
Instance2:
- oai_memcfg_libinit(“AppProcess2”);
- addr2 = oai_memcfg_attach(“App_Shared_Memory”,
OAI_MEMCFG_MD_INDEX_AUTO,
&len,
OAI_MEMCFG_MZ_FLAGS_NONE);
› Explanation:
– addr1 in process1 will point to the same memory as addr2 in process2
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 29
MEMDOMAIN
CONFIGURATION EXAMPLE
NUMA TYPE
# ----------------------------------------
# Per NUMA node shared memory.
# App instances tied to the same NUMA
# are sharing the same memory partition.
# ----------------------------------------
memdomain App_NUMA_Shared {
type = numa
cpualias = "all"
alloc_memzone = true
size {
is_per_numa = true
huge_2M = 0
huge_1G = 1G
}
}
Instance1
S1S0
MEM
DOMAIN
MEM
DOMAIN
Instance2
Instance3
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 30
memdomain API ATTACH
EXAMPLE
NUMA TYPE
Instance1:
- oai_memcfg_libinit(“AppProcess1”);
- pin to vcpu on numa node0 (lcore_assign, pktpthread_setaffinity_np)
- addr1 = oai_memcfg_attach(“App_NUMA_Shared”,
OAI_MEMCFG_MD_INDEX_AUTO,
&len,
OAI_MEMCFG_MZ_FLAGS_NONE);
Instance2:
- oai_memcfg_libinit(“AppProcess2”);
- pin to vcpu on numa node1 (lcore_assign, pktpthread_setaffinity_np)
- addr2 = oai_memcfg_attach(“App_NUMA_Shared”,
OAI_MEMCFG_MD_INDEX_AUTO,
&len,
OAI_MEMCFG_MZ_FLAGS_NONE);
Instance3:
- oai_memcfg_libinit(“AppProcess3”);
- pin to vcpu on numa node1 (lcore_assign, pktpthread_setaffinity_np)
- addr3 = oai_memcfg_attach(“App_NUMA_Shared”,
OAI_MEMCFG_MD_INDEX_AUTO,
&len,
OAI_MEMCFG_MZ_FLAGS_NONE);
› Explanation:
– addr1 in instance1 will point to the partition allocated in NUMA node0 while
addr2 in instance2 and addr3 in instance3 will point to the same partition allocated in NUMA
node1
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 31
memdomain
CONFIGURATION EXAMPLE
EXCLUSIVE TYPE
# -----------------------------------
# Per App instance private memory.
# Every instance has its own memory
# partition.
# -----------------------------------
memdomain App_Thread_Local {
type = excl
cpualias = "foreground"
alloc_memzone = true
size {
is_per_cpu = true
huge_2M = 0
huge_1G = 1G
}
}
Instance1
S1S0
MEM
DOMAIN
MEM
DOMAIN
MEM
DOMAIN
Instance2
instance3
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 32
memdomain API ATTACH
EXAMPLE
EXCLUSIVE TYPE
Instance1:
- oai_memcfg_libinit(“AppProcess1”);
- pin to vcpu2 on numa node0 (lcore_assign, pktpthread_setaffinity_np)
- addr1 = oai_memcfg_attach(“App_Thread_Local”,
OAI_MEMCFG_MD_INDEX_AUTO,
&len,
OAI_MEMCFG_MZ_FLAGS_NONE);
Instance2:
- oai_memcfg_libinit(“AppProcess2”);
- pin to vcpu16 on numa node1 (lcore_assign, pktpthread_setaffinity_np)
- addr2 = oai_memcfg_attach(“App_Thread_Local”,
OAI_MEMCFG_MD_INDEX_AUTO,
&len,
OAI_MEMCFG_MZ_FLAGS_NONE);
Instance3:
- oai_memcfg_libinit(“AppProcess3”);
- pin to vcpu18 on numa node1 (lcore_assign, pktpthread_setaffinity_np)
- addr3 = oai_memcfg_attach(“App_Thread_Local”,
OAI_MEMCFG_MD_INDEX_AUTO,
&len,
OAI_MEMCFG_MZ_FLAGS_NONE);
› Explanation:
– Addr1, addr2 and addr3 will point to different memory addresses
– addr1 allocated on NUMA node0 while addr2 and addr3 allocated on NUMA node1
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 33
Advanced MEMCFG API
› Create memdomain pools in a transaction
– Creating a pool of memory partitions
(partitions are auto aligned based on user's location or requested
layout)
– Creating multiple memdomain pools in a transaction allows better
placement (e.g. prioritizing physically contiguous memory)
› Attach to memdomain (memory partition)
– Attach by memdomain name and index, returning md handle
(index could be auto if instance location is known e.g. by lcoreid)
– Could also MMAP whole partition into virtual address space
› Get number of memory partitions in a memdomain pool
– Allows attaching to all partitions by index within a pool
e.g. for per NUMA table replication
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 34
Advanced MEMCFG API
› Reserve named memzones by memdomain handle
– Memzone name must only be unique within the memdomain,
same name can be used in another memdomain
e.g. it allows attaching to replicas using the same name
– supports fragments if physical contiguity is not requested
(virtually cont)
› Lookup memzone by memdomain handle
– Looks up memzone within a memdomain returning mz handle
› Attach to memzone by memzone handle
– Attaches to a memzone, e.g. mapping into requested/reserved
virtual address space as readonly/readwrite
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 35
Memdomain example
process1
process2
1G
1G
1G
1G
1G
1G
1G
1G
DPDK memory
memory
partition
1
memory
partition
2
Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 36
› Support non-DPDK applications
› Memory types for rte_malloc
› DPDK certification (for VM or hardware)
› GUI or config file for dpdk startup
parameters (RESMGR config alternative)
› Visual resource allocator (GParted style)
› DPDK OS / DPDK distro
› standby instances
› NEW emulated QEMU device
Future ideas
Generic Resource Manager - László Vadkerti, András Kovács

More Related Content

What's hot

DPDK Summit 2015 - Sprint - Arun Rajagopal
DPDK Summit 2015 - Sprint - Arun RajagopalDPDK Summit 2015 - Sprint - Arun Rajagopal
DPDK Summit 2015 - Sprint - Arun RajagopalJim St. Leger
 
LF_DPDK17_Implementation and Testing of Soft Patch Panel
LF_DPDK17_Implementation and Testing of Soft Patch PanelLF_DPDK17_Implementation and Testing of Soft Patch Panel
LF_DPDK17_Implementation and Testing of Soft Patch PanelLF_DPDK
 
Inside Microsoft's FPGA-Based Configurable Cloud
Inside Microsoft's FPGA-Based Configurable CloudInside Microsoft's FPGA-Based Configurable Cloud
Inside Microsoft's FPGA-Based Configurable Cloudinside-BigData.com
 
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.ioFast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.ioOPNFV
 
ODSA Use Case - SmartNIC
ODSA Use Case - SmartNICODSA Use Case - SmartNIC
ODSA Use Case - SmartNICODSA Workgroup
 
Dpdk Validation - Liu, Yong
Dpdk Validation - Liu, YongDpdk Validation - Liu, Yong
Dpdk Validation - Liu, Yongharryvanhaaren
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Michelle Holley
 
TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016 TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016 Benoit Hudzia
 
LF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IOLF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IOLF_DPDK
 
Netsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvNetsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvIntel
 
DPDK Summit 2015 - Aspera - Charles Shiflett
DPDK Summit 2015 - Aspera - Charles ShiflettDPDK Summit 2015 - Aspera - Charles Shiflett
DPDK Summit 2015 - Aspera - Charles ShiflettJim St. Leger
 
Advanced Traffic Engineering (TE++)
Advanced Traffic Engineering (TE++)Advanced Traffic Engineering (TE++)
Advanced Traffic Engineering (TE++)Pravin Bhandarkar
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric OverviewMichelle Holley
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Grayharryvanhaaren
 
The Need for Complex Analytics from Forwarding Pipelines
The Need for Complex Analytics from Forwarding Pipelines The Need for Complex Analytics from Forwarding Pipelines
The Need for Complex Analytics from Forwarding Pipelines Netronome
 
Performance challenges in software networking
Performance challenges in software networkingPerformance challenges in software networking
Performance challenges in software networkingStephen Hemminger
 
DPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii TkachukDPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii TkachukIntel
 
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...LF_DPDK
 

What's hot (20)

FD.io - The Universal Dataplane
FD.io - The Universal DataplaneFD.io - The Universal Dataplane
FD.io - The Universal Dataplane
 
DPDK Summit 2015 - Sprint - Arun Rajagopal
DPDK Summit 2015 - Sprint - Arun RajagopalDPDK Summit 2015 - Sprint - Arun Rajagopal
DPDK Summit 2015 - Sprint - Arun Rajagopal
 
LF_DPDK17_Implementation and Testing of Soft Patch Panel
LF_DPDK17_Implementation and Testing of Soft Patch PanelLF_DPDK17_Implementation and Testing of Soft Patch Panel
LF_DPDK17_Implementation and Testing of Soft Patch Panel
 
Inside Microsoft's FPGA-Based Configurable Cloud
Inside Microsoft's FPGA-Based Configurable CloudInside Microsoft's FPGA-Based Configurable Cloud
Inside Microsoft's FPGA-Based Configurable Cloud
 
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.ioFast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.io
 
ODSA Use Case - SmartNIC
ODSA Use Case - SmartNICODSA Use Case - SmartNIC
ODSA Use Case - SmartNIC
 
Dpdk Validation - Liu, Yong
Dpdk Validation - Liu, YongDpdk Validation - Liu, Yong
Dpdk Validation - Liu, Yong
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
 
TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016 TLDK - FD.io Sept 2016
TLDK - FD.io Sept 2016
 
LF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IOLF_DPDK17_mediated devices: better userland IO
LF_DPDK17_mediated devices: better userland IO
 
Netsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfvNetsft2017 day in_life_of_nfv
Netsft2017 day in_life_of_nfv
 
DPDK Summit 2015 - Aspera - Charles Shiflett
DPDK Summit 2015 - Aspera - Charles ShiflettDPDK Summit 2015 - Aspera - Charles Shiflett
DPDK Summit 2015 - Aspera - Charles Shiflett
 
Advanced Traffic Engineering (TE++)
Advanced Traffic Engineering (TE++)Advanced Traffic Engineering (TE++)
Advanced Traffic Engineering (TE++)
 
Building a Router
Building a RouterBuilding a Router
Building a Router
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
 
The Need for Complex Analytics from Forwarding Pipelines
The Need for Complex Analytics from Forwarding Pipelines The Need for Complex Analytics from Forwarding Pipelines
The Need for Complex Analytics from Forwarding Pipelines
 
Performance challenges in software networking
Performance challenges in software networkingPerformance challenges in software networking
Performance challenges in software networking
 
DPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii TkachukDPDK IPSec performance benchmark ~ Georgii Tkachuk
DPDK IPSec performance benchmark ~ Georgii Tkachuk
 
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
LF_DPDK17_Accelerating NFV with VMware's Enhanced Network Stack (ENS) and Int...
 

Similar to Generic Resource Manager - László Vadkerti, András Kovács

Emc vspex customer_presentation_private_cloud_virtualized_share_point
Emc vspex customer_presentation_private_cloud_virtualized_share_pointEmc vspex customer_presentation_private_cloud_virtualized_share_point
Emc vspex customer_presentation_private_cloud_virtualized_share_pointxKinAnx
 
Elastify Cloud-Native Spark Application with Persistent Memory
Elastify Cloud-Native Spark Application with Persistent MemoryElastify Cloud-Native Spark Application with Persistent Memory
Elastify Cloud-Native Spark Application with Persistent MemoryDatabricks
 
Volatile Uses for Persistent Memory
Volatile Uses for Persistent MemoryVolatile Uses for Persistent Memory
Volatile Uses for Persistent MemoryIntel® Software
 
Srm suite technical presentation nrm - tim piqueur
Srm suite technical presentation   nrm - tim piqueurSrm suite technical presentation   nrm - tim piqueur
Srm suite technical presentation nrm - tim piqueurEMC Nederland
 
Emc data domain technical deep dive workshop
Emc data domain  technical deep dive workshopEmc data domain  technical deep dive workshop
Emc data domain technical deep dive workshopsolarisyougood
 
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...Andrejs Prokopjevs
 
NetBackup Appliance Family presentation
NetBackup Appliance Family presentationNetBackup Appliance Family presentation
NetBackup Appliance Family presentationSymantec
 
MIG 5th Data Centre Summit 2016 PTS Presentation v1
MIG 5th Data Centre Summit 2016 PTS Presentation v1MIG 5th Data Centre Summit 2016 PTS Presentation v1
MIG 5th Data Centre Summit 2016 PTS Presentation v1blewington
 
TECHNICAL BRIEF▶ Backup Exec 15 Blueprint for Large Installations
TECHNICAL BRIEF▶ Backup Exec 15 Blueprint for Large InstallationsTECHNICAL BRIEF▶ Backup Exec 15 Blueprint for Large Installations
TECHNICAL BRIEF▶ Backup Exec 15 Blueprint for Large InstallationsSymantec
 
BMC: Bare Metal Container @Open Source Summit Japan 2017
BMC: Bare Metal Container @Open Source Summit Japan 2017BMC: Bare Metal Container @Open Source Summit Japan 2017
BMC: Bare Metal Container @Open Source Summit Japan 2017Kuniyasu Suzaki
 
Emc sql server 2012 overview
Emc sql server 2012 overviewEmc sql server 2012 overview
Emc sql server 2012 overviewsolarisyougood
 
Transforming Mission Critical Applications
Transforming Mission Critical ApplicationsTransforming Mission Critical Applications
Transforming Mission Critical ApplicationsCenk Ersoy
 
Pro sphere customer technical
Pro sphere customer technicalPro sphere customer technical
Pro sphere customer technicalsolarisyougood
 
EMC Vmax3 tech-deck deep dive
EMC Vmax3 tech-deck deep diveEMC Vmax3 tech-deck deep dive
EMC Vmax3 tech-deck deep divesolarisyougood
 
Memory-Driven Near-Data Acceleration and its application to DOME/SKA
 Memory-Driven Near-Data Acceleration and its application to DOME/SKA Memory-Driven Near-Data Acceleration and its application to DOME/SKA
Memory-Driven Near-Data Acceleration and its application to DOME/SKAinside-BigData.com
 
Accelerating SDN/NFV with transparent offloading architecture
Accelerating SDN/NFV with transparent offloading architectureAccelerating SDN/NFV with transparent offloading architecture
Accelerating SDN/NFV with transparent offloading architectureOpen Networking Summits
 
NGD Systems and Microsoft Keynote Presentation at IPDPS MPP in Vacouver
NGD Systems and Microsoft Keynote Presentation at IPDPS MPP in VacouverNGD Systems and Microsoft Keynote Presentation at IPDPS MPP in Vacouver
NGD Systems and Microsoft Keynote Presentation at IPDPS MPP in VacouverScott Shadley, MBA,PMC-III
 
Diablo Memory Channel Flash Podcast
Diablo Memory Channel Flash PodcastDiablo Memory Channel Flash Podcast
Diablo Memory Channel Flash Podcastinside-BigData.com
 
CtrlS: Cloud Solutions for Retail & eCommerce
CtrlS: Cloud Solutions for Retail & eCommerceCtrlS: Cloud Solutions for Retail & eCommerce
CtrlS: Cloud Solutions for Retail & eCommerceeTailing India
 
”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016Kuniyasu Suzaki
 

Similar to Generic Resource Manager - László Vadkerti, András Kovács (20)

Emc vspex customer_presentation_private_cloud_virtualized_share_point
Emc vspex customer_presentation_private_cloud_virtualized_share_pointEmc vspex customer_presentation_private_cloud_virtualized_share_point
Emc vspex customer_presentation_private_cloud_virtualized_share_point
 
Elastify Cloud-Native Spark Application with Persistent Memory
Elastify Cloud-Native Spark Application with Persistent MemoryElastify Cloud-Native Spark Application with Persistent Memory
Elastify Cloud-Native Spark Application with Persistent Memory
 
Volatile Uses for Persistent Memory
Volatile Uses for Persistent MemoryVolatile Uses for Persistent Memory
Volatile Uses for Persistent Memory
 
Srm suite technical presentation nrm - tim piqueur
Srm suite technical presentation   nrm - tim piqueurSrm suite technical presentation   nrm - tim piqueur
Srm suite technical presentation nrm - tim piqueur
 
Emc data domain technical deep dive workshop
Emc data domain  technical deep dive workshopEmc data domain  technical deep dive workshop
Emc data domain technical deep dive workshop
 
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...
Optimize DR and Cloning with Logical Hostnames in Oracle E-Business Suite (OA...
 
NetBackup Appliance Family presentation
NetBackup Appliance Family presentationNetBackup Appliance Family presentation
NetBackup Appliance Family presentation
 
MIG 5th Data Centre Summit 2016 PTS Presentation v1
MIG 5th Data Centre Summit 2016 PTS Presentation v1MIG 5th Data Centre Summit 2016 PTS Presentation v1
MIG 5th Data Centre Summit 2016 PTS Presentation v1
 
TECHNICAL BRIEF▶ Backup Exec 15 Blueprint for Large Installations
TECHNICAL BRIEF▶ Backup Exec 15 Blueprint for Large InstallationsTECHNICAL BRIEF▶ Backup Exec 15 Blueprint for Large Installations
TECHNICAL BRIEF▶ Backup Exec 15 Blueprint for Large Installations
 
BMC: Bare Metal Container @Open Source Summit Japan 2017
BMC: Bare Metal Container @Open Source Summit Japan 2017BMC: Bare Metal Container @Open Source Summit Japan 2017
BMC: Bare Metal Container @Open Source Summit Japan 2017
 
Emc sql server 2012 overview
Emc sql server 2012 overviewEmc sql server 2012 overview
Emc sql server 2012 overview
 
Transforming Mission Critical Applications
Transforming Mission Critical ApplicationsTransforming Mission Critical Applications
Transforming Mission Critical Applications
 
Pro sphere customer technical
Pro sphere customer technicalPro sphere customer technical
Pro sphere customer technical
 
EMC Vmax3 tech-deck deep dive
EMC Vmax3 tech-deck deep diveEMC Vmax3 tech-deck deep dive
EMC Vmax3 tech-deck deep dive
 
Memory-Driven Near-Data Acceleration and its application to DOME/SKA
 Memory-Driven Near-Data Acceleration and its application to DOME/SKA Memory-Driven Near-Data Acceleration and its application to DOME/SKA
Memory-Driven Near-Data Acceleration and its application to DOME/SKA
 
Accelerating SDN/NFV with transparent offloading architecture
Accelerating SDN/NFV with transparent offloading architectureAccelerating SDN/NFV with transparent offloading architecture
Accelerating SDN/NFV with transparent offloading architecture
 
NGD Systems and Microsoft Keynote Presentation at IPDPS MPP in Vacouver
NGD Systems and Microsoft Keynote Presentation at IPDPS MPP in VacouverNGD Systems and Microsoft Keynote Presentation at IPDPS MPP in Vacouver
NGD Systems and Microsoft Keynote Presentation at IPDPS MPP in Vacouver
 
Diablo Memory Channel Flash Podcast
Diablo Memory Channel Flash PodcastDiablo Memory Channel Flash Podcast
Diablo Memory Channel Flash Podcast
 
CtrlS: Cloud Solutions for Retail & eCommerce
CtrlS: Cloud Solutions for Retail & eCommerceCtrlS: Cloud Solutions for Retail & eCommerce
CtrlS: Cloud Solutions for Retail & eCommerce
 
”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016
 

Recently uploaded

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
 
"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
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
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
 
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
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
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
 
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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Recently uploaded (20)

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
 
"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 ...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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, ...
 
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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
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)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 

Generic Resource Manager - László Vadkerti, András Kovács

  • 1. generic resource manager András KovÁcs (Andras.kovacs@ericsson.com) LászlÓ Vadkerti (laszlo.vadkerti@Ericsson.com) A manager we would like :)
  • 2. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 2 Last year…
  • 3. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 3 by merriam-webster: › something that a country has and can use to increase its wealth › a supply of something (such as money) that someone has and can use when it is needed › a place or thing that provides something useful by wikipedia (computing): › A resource, or system resource, is any physical or virtual component of limited availability within a computer system. [...] Every internal system component is a resource. […]. What is a resource?
  • 4. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 4 › CPU › Memory (hugepage, cache, ivshm, memzone) › Virtual address › Packet pool › Network/Virtual Device (port/queue) › Lcore › Instance › HW accelerator › And there are lots of other resources coming… (threads, protocol stacks, etc) typical dpdk resources
  • 5. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 5 › Better control over resources › Hide “real” environment from applications › Support migration › Keep track of resources/usage (High Availability) › Prioritize resources › Access control › Avoid code duplication Why?
  • 6. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 6 › Resource pools (resources with similar attributes) e.g. Servers -> Compute nodes -> Virtual Machines -> CPU/memory/interface/lcore/pktpool Resource pools MEM CPU I/F CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU
  • 7. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 7 MEM CPU MEM CPU MEM CPU I/F › Resource pools (resources with similar attributes) e.g. Servers -> Compute nodes -> Virtual Machines -> CPU/memory/interface/lcore/pktpool Resource pools CPU CPU CPU CPU
  • 8. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 8 MEM CPU MEM CPU MEM CPU I/F › Resource pools (resources with similar attributes) e.g. Servers -> Compute nodes -> Virtual Machines -> CPU/memory/interface/lcore/pktpool Resource pools CPU CPU attribute 1 attribute 2
  • 9. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 9 › cpualias foreground { › cpumask = "2" › } › pktpool pktpool_fg { › cpualias = foreground › num_pkts = 8K › num_cached_pkts = 64 › } Config EXAMPLE PKT POOL CPU
  • 10. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 10 › cpualias foreground { › cpumask = "2,12" › } › pktpool pktpool_fg { › cpualias = foreground › num_pkts = 8K › num_cached_pkts = 64 › } Config EXAMPLE PKT POOL CPU CPU S1S0
  • 11. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 11 › cpualias foreground { › cpumask = "2,12" › } › pktpool pktpool_fg { › cpualias = foreground › num_pkts = 8K › num_cached_pkts = 64 type = numa › } Config EXAMPLE S1S0 PKT POOL PKT POOL CPU CPU
  • 12. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 12 › cpualias foreground { › cpumask = "2,4,12,14" › } › pktpool pktpool_fg { › cpualias = foreground › num_pkts = 8K › num_cached_pkts = 64 type = numa › } Config EXAMPLE S1S0 PKT POOL PKT POOL CPU CPU CPUCPU
  • 13. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 13 › cpualias foreground { › cpumask = "2,4,12,14" › } › pktpool pktpool_fg { › cpualias = foreground › num_pkts = 8K › num_cached_pkts = 64 type = exclusive › } Config EXAMPLE PKT POOL S1S0 PKT POOL PKT POOL PKT POOL CPU CPU CPUCPU
  • 14. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 14 › resource allocation (static or on-demand) › chain of pools in case of dynamic allocation (example) RESOURCE allocation
  • 15. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 16 › e.g. a native workstation with 4 sockets, memory, interfaces. › resmgr starts, autodetects (CPUs, HT siblings, cache sizes, etc) every resources we can use. › resmgr: daemon/binary/library › reading configuration and creating a free resource database (our choice is xattr) › supporting popup cpu, memory, interface, etc › linking/referencing resources (cpu table, HT table, NUMA, L3 cache (CAT/cache QoS), etc) RESMGR at work
  • 16. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 17 › Is the relation between virtual ports, virtual queues and named packet pools. Somewhat similar to pipeline model configuration. packet domain
  • 17. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 18 › Allocating resources › Per-application configuration › Application instances see only assigned resources (like a VM) DPDK DOMAIN (APPlication DOMAIN)
  • 18. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 19 existing Memory management example process1 process2 1G 1G 1G 1G 1G 1G 1G 1G DPDK memory DPDK socket
  • 19. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 20 › Simple memory management API › Transparent NUMA awareness for applications – Even in a non-NUMA aware guest VM environment › Flexible, configuration, re-configuration › Provide a more granular way of placing objects in memory – e.g. to control the number of TLB cache entry usage › Memory partitioning – Physically contiguous memory, hugepages etc. – Partitioning across application instances – Shared memory support memory management goals
  • 20. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 21 › Named and indexed memory partition (shared memory) with defined properties such as – Location, e.g. NUMA node(s) – Size of partition, e.g. 4GB/1G, 512MB/2M hugepages – Physical contiguity – Type (future improvement), e.g. › Hugepage memory (only possible type today) › Mmap-ped file › Inter-vm shared memory › Distributed memory › etc. what is a memdomain?
  • 21. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 22 › Is a pool of shared memory resources (memdomains) › Is a named group of memory partitions with different location attributes › Three main types – DEFAULT › No location preference, only a single memdomain in the pool – NUMA › One memdomain per involved NUMA node – EXCLUSIVE › One memdomain per application instance what is a memdomain pool?
  • 22. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 23 MEMDOMAIN Configuration › Can be compared to partitioning a hard drive where – Available hugepage memory is the hard drive, e.g. one drive per NUMA node – Memdomains can be compared to disk partitions – Memzones can be compared to files › Should be a system engineering task to find the best model working for the specific application model
  • 23. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 24 MEMDOMAIN Simple Application API › Initialize library (oai_memcfg_libinit) – Register a unique name to the process (High Availability, debug) – Initializes DPDK memory, grabs hugepages etc. › Attach to named memory partition (oai_memcfg_attach) – Using pre-configured memdomain pool name – Automatic memdomain selection from pool (per instance, NUMA) – Maps memdomain (memzones) into virtual address space
  • 24. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 25 MEMDOMAIN ConfiguratioN EXAMPLE CPUALIAS cpualias all { cpumask = "0-31" # all available CPU } CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU
  • 25. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 26 MEMDOMAIN ConfiguratioN EXAMPLE CPUALIAS cpualias all { cpumask = "0-31" # all available CPU } cpualias foreground { cpumask = "2-31:2" # even cpus excluding cpu0 } CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU
  • 26. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 27 MEMDOMAIN CONFIGURATION EXAMPLE DEFAULT TYPE # ------------------------------- # Shared memory accessed by # all instances # ------------------------------- memdomain App_Shared_Memory { type = default cpualias = "all" alloc_memzone = true size { huge_2M = 512M huge_1G = 0 } } Instance1 S1S0 MEM DOMAIN Instance2
  • 27. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 28 memdomain API ATTACH EXAMPLE DEFAULT TYPE Instance1: - oai_memcfg_libinit(“AppProcess1”); - addr1 = oai_memcfg_attach(“App_Shared_Memory”, OAI_MEMCFG_MD_INDEX_AUTO, &len, OAI_MEMCFG_MZ_FLAGS_NONE); Instance2: - oai_memcfg_libinit(“AppProcess2”); - addr2 = oai_memcfg_attach(“App_Shared_Memory”, OAI_MEMCFG_MD_INDEX_AUTO, &len, OAI_MEMCFG_MZ_FLAGS_NONE); › Explanation: – addr1 in process1 will point to the same memory as addr2 in process2
  • 28. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 29 MEMDOMAIN CONFIGURATION EXAMPLE NUMA TYPE # ---------------------------------------- # Per NUMA node shared memory. # App instances tied to the same NUMA # are sharing the same memory partition. # ---------------------------------------- memdomain App_NUMA_Shared { type = numa cpualias = "all" alloc_memzone = true size { is_per_numa = true huge_2M = 0 huge_1G = 1G } } Instance1 S1S0 MEM DOMAIN MEM DOMAIN Instance2 Instance3
  • 29. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 30 memdomain API ATTACH EXAMPLE NUMA TYPE Instance1: - oai_memcfg_libinit(“AppProcess1”); - pin to vcpu on numa node0 (lcore_assign, pktpthread_setaffinity_np) - addr1 = oai_memcfg_attach(“App_NUMA_Shared”, OAI_MEMCFG_MD_INDEX_AUTO, &len, OAI_MEMCFG_MZ_FLAGS_NONE); Instance2: - oai_memcfg_libinit(“AppProcess2”); - pin to vcpu on numa node1 (lcore_assign, pktpthread_setaffinity_np) - addr2 = oai_memcfg_attach(“App_NUMA_Shared”, OAI_MEMCFG_MD_INDEX_AUTO, &len, OAI_MEMCFG_MZ_FLAGS_NONE); Instance3: - oai_memcfg_libinit(“AppProcess3”); - pin to vcpu on numa node1 (lcore_assign, pktpthread_setaffinity_np) - addr3 = oai_memcfg_attach(“App_NUMA_Shared”, OAI_MEMCFG_MD_INDEX_AUTO, &len, OAI_MEMCFG_MZ_FLAGS_NONE); › Explanation: – addr1 in instance1 will point to the partition allocated in NUMA node0 while addr2 in instance2 and addr3 in instance3 will point to the same partition allocated in NUMA node1
  • 30. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 31 memdomain CONFIGURATION EXAMPLE EXCLUSIVE TYPE # ----------------------------------- # Per App instance private memory. # Every instance has its own memory # partition. # ----------------------------------- memdomain App_Thread_Local { type = excl cpualias = "foreground" alloc_memzone = true size { is_per_cpu = true huge_2M = 0 huge_1G = 1G } } Instance1 S1S0 MEM DOMAIN MEM DOMAIN MEM DOMAIN Instance2 instance3
  • 31. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 32 memdomain API ATTACH EXAMPLE EXCLUSIVE TYPE Instance1: - oai_memcfg_libinit(“AppProcess1”); - pin to vcpu2 on numa node0 (lcore_assign, pktpthread_setaffinity_np) - addr1 = oai_memcfg_attach(“App_Thread_Local”, OAI_MEMCFG_MD_INDEX_AUTO, &len, OAI_MEMCFG_MZ_FLAGS_NONE); Instance2: - oai_memcfg_libinit(“AppProcess2”); - pin to vcpu16 on numa node1 (lcore_assign, pktpthread_setaffinity_np) - addr2 = oai_memcfg_attach(“App_Thread_Local”, OAI_MEMCFG_MD_INDEX_AUTO, &len, OAI_MEMCFG_MZ_FLAGS_NONE); Instance3: - oai_memcfg_libinit(“AppProcess3”); - pin to vcpu18 on numa node1 (lcore_assign, pktpthread_setaffinity_np) - addr3 = oai_memcfg_attach(“App_Thread_Local”, OAI_MEMCFG_MD_INDEX_AUTO, &len, OAI_MEMCFG_MZ_FLAGS_NONE); › Explanation: – Addr1, addr2 and addr3 will point to different memory addresses – addr1 allocated on NUMA node0 while addr2 and addr3 allocated on NUMA node1
  • 32. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 33 Advanced MEMCFG API › Create memdomain pools in a transaction – Creating a pool of memory partitions (partitions are auto aligned based on user's location or requested layout) – Creating multiple memdomain pools in a transaction allows better placement (e.g. prioritizing physically contiguous memory) › Attach to memdomain (memory partition) – Attach by memdomain name and index, returning md handle (index could be auto if instance location is known e.g. by lcoreid) – Could also MMAP whole partition into virtual address space › Get number of memory partitions in a memdomain pool – Allows attaching to all partitions by index within a pool e.g. for per NUMA table replication
  • 33. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 34 Advanced MEMCFG API › Reserve named memzones by memdomain handle – Memzone name must only be unique within the memdomain, same name can be used in another memdomain e.g. it allows attaching to replicas using the same name – supports fragments if physical contiguity is not requested (virtually cont) › Lookup memzone by memdomain handle – Looks up memzone within a memdomain returning mz handle › Attach to memzone by memzone handle – Attaches to a memzone, e.g. mapping into requested/reserved virtual address space as readonly/readwrite
  • 34. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 35 Memdomain example process1 process2 1G 1G 1G 1G 1G 1G 1G 1G DPDK memory memory partition 1 memory partition 2
  • 35. Generic resource manager for DPDK | Public | © Ericsson AB 2015 | 2015-09-29 | Page 36 › Support non-DPDK applications › Memory types for rte_malloc › DPDK certification (for VM or hardware) › GUI or config file for dpdk startup parameters (RESMGR config alternative) › Visual resource allocator (GParted style) › DPDK OS / DPDK distro › standby instances › NEW emulated QEMU device Future ideas