Multiqueue Networking David S. Miller Red Hat Inc.

Slides:



Advertisements
Similar presentations
Device Layer and Device Drivers
Advertisements

Virtual Machine Queue Architecture Review Ali Dabagh Architect Windows Core Networking Don Stanwyck Sr. Program Manager NDIS Virtualization.
© 2009 Cisco Systems, Inc. All rights reserved. SWITCH v1.0—4-1 Implementing Inter-VLAN Routing Deploying Multilayer Switching with Cisco Express Forwarding.
An Overview of Software-Defined Network Presenter: Xitao Wen.
KeyStone Training Multicore Navigator Overview. Overview Agenda What is Navigator? – Definition – Architecture – Queue Manager Sub-System (QMSS) – Packet.
Keith Wiles DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
UCB Switches Jean Walrand U.C. Berkeley
EE 122: Router Design Kevin Lai September 25, 2002.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 2: Managing Hardware Devices.
An Overview of Software-Defined Network
Microsoft Virtual Academy Module 4 Creating and Configuring Virtual Machine Networks.
OpenFlow Switch Limitations. Background: Current Applications Traffic Engineering application (performance) – Fine grained rules and short time scales.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Implementing Efficient RSS Capable Hardware and Drivers for Windows 7
Toward Software-Defined Middlebox Networking Aaron Gember, Prathmesh Prabhu, Zainab Ghadiyali, Aditya Akella University of Wisconsin-Madison 1.
Sven Ubik, Petr Žejdl CESNET TNC2008, Brugges, 19 May 2008 Passive monitoring of 10 Gb/s lines with PC hardware.
Support for Smart NICs Ian Pratt. Outline Xen I/O Overview –Why network I/O is harder than block Smart NIC taxonomy –How Xen can exploit them Enhancing.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 2: Managing Hardware Devices.
© 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Achieving 10 Gb/s Using Xen Para-virtualized.
How Hardware and Software Work Together
MIDeA :A Multi-Parallel Instrusion Detection Architecture Author: Giorgos Vasiliadis, Michalis Polychronakis,Sotiris Ioannidis Publisher: CCS’11, October.
Virtualization: Not Just For Servers Hollis Blanchard PowerPC kernel hacker.
Ethernet Circuit. Ethernet Circuit Concepts Circuit switching features –End to end quality of service –End to end Layer 2 security –Granular bandwidth.
Performance Characterization and Architecture Exploration of PicoRadio Data Link Layer Mei Xu and Rahul Shah EE249 Project Fall 2001 Mentor: Roberto Passerone.
KeyStone Training Multicore Navigator: Packet DMA (PKTDMA)
Othman Othman M.M., Koji Okamura Kyushu University Proceedings of the 32 nd Asia-Pacific Advanced Network Meeting India, New Delhi, 2001/8/22.
High Performance Network Virtualization with SR-IOV By Yaozu Dong et al. Published in HPCA 2010.
Virtual Machine Queue Driver Development Sambhrama Mundkur Sr. Software Design Engineer Core Networking
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
LINUX SCHEDULING Evolution in the 2.6 Kernel Kevin Lambert Maulik Mistry Cesar Davila Jeremy Taylor.
Supporting Multimedia Communication over a Gigabit Ethernet Network VARUN PIUS RODRIGUES.
NetCP - NWAL API Flow. NetCP (HW,SW) Overview NWAL Feature Overview Data path offload Control configuration –Blocking / Non Blocking support –L2: MAC.
SOFTWARE DEFINED NETWORKING/OPENFLOW: A PATH TO PROGRAMMABLE NETWORKS April 23, 2012 © Brocade Communications Systems, Inc.
Instructions to build HIBI_PE_DMA testing system (SOPC+NIOS II Eclipse) Lasse Lehtonen Last modification:
By: Yaron Levy Supervisors: Dr. Shlomo Greenberg Mr. Hagai David.
Virtual Local Area Networks In Security By Mark Reed.
Network layer (addendum) Slides adapted from material by Nick McKeown and Kevin Lai.
Considerations for Benchmarking Virtual Networks Samuel Kommu, Jacob Rapp, Ben Basler,
Multiqueue & Linux Networking Robert Olsson UU/KTH.
Open-source routing at 10Gb/s Olof Hagsand (KTH) Robert Olsson (Uppsala U) Bengt Görden (KTH) SNCNW May 2009 Project grants: Internetstiftelsen (IIS) Equipment:
1 © 1999, Cisco Systems, Inc. 1293_07F9_c1 LocalDirector Version3.1.
P4: Programming Protocol-Independent Packet Processors
PC based software router
Kernel/Hardware for bifrost
Network Address Translation (NAT)
ETHANE: TAKING CONTROL OF THE ENTERPRISE
Network Address Translation
Network Load Balancing
Chapter 4 Data Link Layer Switching
Yotam Harchol The Hebrew University of Jerusalem
Network Address Translation (NAT)
Reference Router on NetFPGA 1G
Towards 10Gb/s open-source routing
Input/Output 1 1.
Open Source 10g Talk at KTH/Kista
Report from Netconf 2009 Jesper Dangaard Brouer
Multi-PCIe socket network device
Slave cores Etherbone Accessible device Etherbone Accessible device E
Shuffle Exchange Point-to-point, Bus, Ring, Star, Mesh
The Stanford Clean Slate Program
Radisys 7010 NPU Routing for Shared Metarouter Cards
Xen Network I/O Performance Analysis and Opportunities for Improvement
Open vSwitch HW offload over DPDK
Implementing an OpenFlow Switch on the NetFPGA platform
EE 122: Lecture 7 Ion Stoica September 18, 2001.
Yotam Harchol The Hebrew University of Jerusalem
Reference Router on NetFPGA 1G
Introduction to Packet Scheduling
Network Address Translation (NAT)
Introduction to Packet Scheduling
Presentation transcript:

Multiqueue Networking David S. Miller Red Hat Inc.

Main Points ● Horizonal scaling ● Implications of high cpu arity ● Multiqueue basics ● Sun Neptune as a specific example ● Classification for queue selection ● Load balancing on transmit ● IRQ retargetting ● Effect on scheduling ● Lock splitting

Horizontal Scaling ● High numbers of everything ● CPUs ● Devices ● Pointless if underutilized

Multiqueue ● DMA channels ● Each operates independantly ● RSS (Receive Side Scaling) in Microsoft NDIS ● Every card will have this ● Virtualization ● Port to queue mapping – Simple, hashing – Complex, full classifiers ● Technology will be ubiquitous

Sun Neptune ● Multi-port and multi-queue ● PCI-E and on-chip Niagara-2 variants ● 24 transmit queues and 16 receive groups ● Logical device groups and interrupts ● Full HW classifier for queue selection ● Driver in progress

Neptune Classification ● DMA channel groups ● Classification --> group + offset within group ● MAC address selects default group ● Hashing can modify offset ● 256 entry TCAM for more explicit rules – Drop – Select group – Select offset – Select group and offset ● Channels can be used arbitrarily with ports

NIU Queues ● Arbitrary mappings ● Grouping concept

Transmit Load Balancing ● Completely in software ● Mapping from TX queue to port ● Header hashing ● Hashing on CPU number ● Hashing on VLAN ● Round robin ● Neptune does DRR over TX channels

IRQ Retargetting ● Unique IRQ per logical device is possible ● Moving IRQs is stupid ● Card features naturally load balance ● Example: – IPSEC on RX channel 0 and 1 – Web traffic hashed to channels 3 to 7 ● CFS scheduler more aggressive ● Tasks migrate to where flow traffic arrives

Lock Splitting ● Receive side mostly solved with napi_struct ● Transmit needs more work – SKB queue needs to be selected early – So packet scheduler knows what to lock – Currently multiqueue paths still need singular lock ● DMA channel resources are extremely flexible ● Independant queues mapped to virtualization guests ● Alternate MACs use different default channel ● TCAM can be used for more elaborate setups

Plans ● Publish Neptune driver ● Flesh out and merge napi_struct into ● Work with Intel developers on TX splitting ● Lots of Performance Analysis ● Considering Netfilter usage of Neptune classification features