Qdisc layer. Fast enough for 10G wirespeed? Jesper Dangaard Brouer Hannes Frederic Sowa Daniel Borkmann Florian Westphal

Size: px
Start display at page:

Download "Qdisc layer. Fast enough for 10G wirespeed? Jesper Dangaard Brouer Hannes Frederic Sowa Daniel Borkmann Florian Westphal"

Transcription

1 Qdisc layer Fast enough for 10G wirespeed? Jesper Dangaard Brouer Hannes Frederic Sowa Daniel Borkmann Florian Westphal Network-Services-Team, Red Hat inc. 1/17 Netfilter Workshop, July 2014

2 Overview Analysing qdisc code path Estimating and measuring overhead Batching Results with bulk dequeue Lockless FIFO implementation Results and comparisons 2/17

3 Basic question? Basic problem/question: Is qdisc code path fast enough for 10G wirespeed? 10Gbit/s wirespeed smallest frame: Mpps -> Time Budget: 67.2 ns per packet 3/17

4 Locking: in qdisc code path Optimal "fast-path" where the qdisc is empty The following locking occurs: In dev_xmit_skb(): (1) spin_lock(root_lock) (detect qdisc empty, allow direct xmit) calling sch_direct_xmit() In sch_direct_xmit(): (2) spin_unlock(root_lock) In sch_direct_xmit(): (3) HARD_TX_LOCK(dev, txq, smp_processor_id()); In sch_direct_xmit(): (4) HARD_TX_UNLOCK(dev, txq); In sch_direct_xmit(): (5) spin_lock(root_lock); Return to dev_xmit_skb(): (6) spin_unlock(root_lock); LOCK cost on this arch: approx 8 ns 8 ns * 6 LOCK-ops = 48 ns pure lock overhead 4/17

5 Test: Remove qdisc from device Remove qdisc from device, like software/virtual devices qdisc path skipped, if (qdisc->enqueue == NULL) Run time hack (by Eric Dumazet) ifconfig $DEV txqueuelen 0 tc qdisc add dev $DEV root sfq tc qdisc del dev $DEV root Gotcha's Still takes the TXQ lock HARD_TX_{LOCK,UNLOCK} Thus, "only" avoiding 4 LOCK calls on fast-path Don't respect TXQ/device "full" state e.g. ignoring netif_xmit_frozen_or_stopped(txq) 5/17

6 Result: Remove qdisc from device Measurement done on CPU E5-2695(ES) with trafgen, packet config: udp_example01 Using qdisc NULL hack (Clean kernel rc6) pps = ns -- qdisc-path pps = ns -- qdisc NULL hack pps = ns -- improvement Theory: 4 locks saved = 32ns remaining 2 locks = 16ns Derived remaining cost of qdisc path = 12.5 ns Locking: Significant part of qdisc cost 6/17

7 Measured overhead vs. wirespeed Qdisc code path measured overhead: 60 ns Problematic for wirespeed 67.2 ns budget How can we reduce this overhead? Batching to amortize locking cost Lockless FIFO implementation 7/17

8 Difficult testing batching Must accumulate queue in qdisc Before batching of packets can happen Missing fast enough packet generator For single CPU overloading test Because default qdisc tied to HW TXQ queue Options External pktgen forwarding traffic Modify pktgen to send to qdisc layer Simply install single queue pfifo qdisc 8/17

9 Test setup Choose to simply use pfifo qdisc Mostly as quick solution Using trafgen, on multiple CPUs (option cpus) Remember use --qdisc-path option Trafgen packet config:udp_example01.trafgen fgen/udp_example01.trafgen Measurements done on CPU E5-2695(ES) 9/17

10 Results: pfifo baseline Baseline results, clean kernel rc6 Cpu 1: 1,570,083 pps baseline cpus /17

11 Implement: Bulk qdisc dequeue By bulk qdisc dequeue Amortize root lock, unlock+lock per N packets Actually helps enqueue'ers get root lock Reduce time dequeue blocks root lock for enqueue Still TXQ lock for every packet Due to SKB's have assigned a TXQ on enqueue 11/17

12 Results: Bulk qdisc dequeue Bulk dequeue results Cpu 1: 1,565,117 pps baseline bulk-dequeue cpus /17

13 Implement: Lockless FIFO qdisc Needs John Fastabend qdisc RCU work My hack just ignores stats Based on: Multi-Producer-Multi-Consumer ring queue Requiring LOCK'ed cmpxchg Bulk dequeue amortize cost of cmpxchg Enqueue cmpxchg on every packet Higher number of CPUs Hotspot/sync-point on cmpxchg retry loop 13/17

14 Results: Lockless FIFO qdisc Lockless FIFO with bulk dequeue Cpu 1: 1,726,467 pps baseline bulk-dequeue lockless cpus /17

15 Comparing default use-case: Single CPU Lockless compared to qdisc NULL hack pps = ns -- qdisc-path (clean kernel) pps = ns -- qdisc NULL hack pps = ns -- Lockless qdisc Difference against NULL qdisc: very close pps => ns Improvement against clean kernel: pps => ns Better than expected Likely due to ignoring stats 15/17

16 Lockless: Forcing through MPMC Want to measure clean overhead of MPMC queue Test: single CPU forced through MPMC By removing TCQ_F_CAN_BYPASS flag Expect added cost of two cmpxchg Results lockless qdisc w/o TCQ_F_CAN_BYPASS pps = ns -- with BYPASS pps = ns -- no BYPASS pps => ns -- Difference to bypass Were expecting to see 2x LOCK cost But only see approx 1x LOCK cost 16/17

17 The End Open discussion Where should we start? Need John Fastabend's qdisc RCU work Should we just bypass qdisc layer? We/Red Hat Will allocate resources/persons to project Open to collaborate 17/17

18 Extra Extra slides 18/17

19 Using TSQ TCP Small Queue (TSQ) Use queue build up in TSQ To send a bulk xmit To take advantage of HW TXQ tail ptr update Should we allow/use Qdisc bulk enqueue Detecting qdisc is empty allowing direct_xmit_bulk? 19/17

TX bulking and qdisc layer

TX bulking and qdisc layer Session: Linux packet processing performance improvements TX bulking and qdisc layer Jesper Dangaard Brouer (Red Hat) John Fastabend (Intel) John Ronciak (Intel) 1/16 Linux Plumbers Conference 16 th Oct

More information

Network stack challenges at increasing speeds

Network stack challenges at increasing speeds Network stack challenges at increasing speeds The 100Gbit/s challenge Jesper Dangaard Brouer Red Hat inc. Netfilter Workshop, June 2015 1/43 Overview Understand 100Gbit/s challenge and time budget Measurements:

More information

Network stack challenges at increasing speeds

Network stack challenges at increasing speeds Network stack challenges at increasing speeds The 100Gbit/s challenge Jesper Dangaard Brouer Principal kernel Engineer Red Hat inc. 1/34 Driving-IT, Nov 2015 Overview Understand 100Gbit/s challenge and

More information

Network stack challenges at increasing speeds

Network stack challenges at increasing speeds Network stack challenges at increasing speeds The 100Gbit/s challenge Jesper Dangaard Brouer Principal kernel Engineer Red Hat inc. DevConf, Feb 2016 1/35 Overview Understand 100Gbit/s challenge and time

More information

Network Performance BoF

Network Performance BoF Network Performance BoF 1 BoF organizer: Jesper Dangaard Brouer Principal Engineer, Red Hat Date: 10th to 12th February 2016 Venue: NetDev 1.1, Seville, Spain Presentors: Jesper Dangaard Brouer, Red Hat

More information

Who fears the spectres?

Who fears the spectres? Who fears the spectres? Performance impacts of spectre/meltdown counter-measures and possible improvements Paolo Abeni - Red Hat NetConf, Boston 2018 Outline Performance impact of PTI and retpoline on

More information

XDP now with REDIRECT

XDP now with REDIRECT XDP - express Data Path XDP now with REDIRECT Jesper Dangaard Brouer, Principal Engineer, Red Hat Inc. LLC - Lund Linux Conf Sweden, Lund, May 2018 Intro: What is XDP? Really, don't everybody know what

More information

The Path to DPDK Speeds for AF XDP

The Path to DPDK Speeds for AF XDP The Path to DPDK Speeds for AF XDP Magnus Karlsson, magnus.karlsson@intel.com Björn Töpel, bjorn.topel@intel.com Linux Plumbers Conference, Vancouver, 2018 Legal Disclaimer Intel technologies may require

More information

Performance of Wireless IEEE e-Based Devices with Multiple Hardware Queues

Performance of Wireless IEEE e-Based Devices with Multiple Hardware Queues Performance of Wireless IEEE 802.11e-Based Devices with Multiple Hardware Queues Gabriel Lazăr, Virgil Dobrotă, Member, IEEE, Tudor Blaga, Member, IEEE 1 Agenda I. Linux Network Subsystem II. Linux Traffic

More information

XDP: a new fast and programmable network layer

XDP: a new fast and programmable network layer XDP - express Data Path XDP: a new fast and programmable network layer Jesper Dangaard Brouer Principal Engineer, Red Hat Inc. Kernel Recipes Paris, France, Sep 2018 What will you learn? What will you

More information

XDP For the Rest of Us

XDP For the Rest of Us 이해력 XDP For the Rest of Us Jesper Dangaard Brouer - Principal Engineer, Red Hat Andy Gospodarek - Principal Engineer, Broadcom Netdev 2.2, November 8th, 2017 South Korea, Seoul Motivation for this talk

More information

rtnl mutex, the network stack big kernel lock

rtnl mutex, the network stack big kernel lock rtnl mutex, the network stack big kernel lock Red Hat Florian Westphal 4096R/AD5FF600 fw@strlen.de 80A9 20C5 B203 E069 F586 AE9F 7091 A8D9 AD5F F600 netdev 2.2, Seoul, November 2017 Agenda 1 Intro: What

More information

Xen Network I/O Performance Analysis and Opportunities for Improvement

Xen Network I/O Performance Analysis and Opportunities for Improvement Xen Network I/O Performance Analysis and Opportunities for Improvement J. Renato Santos G. (John) Janakiraman Yoshio Turner HP Labs Xen Summit April 17-18, 27 23 Hewlett-Packard Development Company, L.P.

More information

XDP: The Future of Networks. David S. Miller, Red Hat Inc., Seoul 2017

XDP: The Future of Networks. David S. Miller, Red Hat Inc., Seoul 2017 XDP: The Future of Networks David S. Miller, Red Hat Inc., Seoul 2017 Overview History of ebpf and XDP Why is it important. Fake News about ebpf and XDP Ongoing improvements and future developments Workflow

More information

Multimedia Communication. Project 6: Intelligent DiffServ

Multimedia Communication. Project 6: Intelligent DiffServ Multimedia Communication Project 6: Intelligent DiffServ Preliminary Design and interface definition (2003-07-08) Steffen Moser - 1 / 9 - Necessary tasks of a DiffServ aware router: Classifying Marking

More information

Suricata Performance with a S like Security

Suricata Performance with a S like Security Suricata Performance with a S like Security É. Leblond Stamus Networks July. 03, 2018 É. Leblond (Stamus Networks) Suricata Performance with a S like Security July. 03, 2018 1 / 31 1 Introduction Features

More information

#ebpf You Cannot Stop This

#ebpf You Cannot Stop This #ebpf You Cannot Stop This David S. Miller, Red Hat Inc. davem_dokebi Van, The Man Ultimately, the true father of container networking and security Invented BPF in 1992 with Steven McCanne at LBL Recognized

More information

The State of the Art in Bufferbloat Testing and Reduction on Linux

The State of the Art in Bufferbloat Testing and Reduction on Linux The State of the Art in Bufferbloat Testing and Reduction on Linux Toke Høiland-Jørgensen Roskilde University IETF 86, 12th March 2013 1 / 31 Outline Introduction Recent changes in the Linux kernel Testing

More information

Netfilter: Making large iptables rulesets scale. OpenSourceDays 2008 d.4/

Netfilter: Making large iptables rulesets scale. OpenSourceDays 2008 d.4/ Netfilter: Making large iptables rulesets scale OpenSourceDays 2008 d.4/10-2008 by Jesper Dangaard Brouer Master of Computer Science ComX Networks A/S ComX Networks A/S Who am I Name: Jesper

More information

A Userspace Packet Switch for Virtual Machines

A Userspace Packet Switch for Virtual Machines SHRINKING THE HYPERVISOR ONE SUBSYSTEM AT A TIME A Userspace Packet Switch for Virtual Machines Julian Stecklina OS Group, TU Dresden jsteckli@os.inf.tu-dresden.de VEE 2014, Salt Lake City 1 Motivation

More information

ENDING THE ANOMALY ACHIEVING LOW LATENCY AND AIRTIME FAIRNESS IN WIFI

ENDING THE ANOMALY ACHIEVING LOW LATENCY AND AIRTIME FAIRNESS IN WIFI ENDING THE ANOMALY ACHIEVING LOW LATENCY AND AIRTIME FAIRNESS IN WIFI Toke Høiland-Jørgensen (Karlstad University), Michał Kazior (Tieto Poland), Dave Täht (Teklibre), Per Hurtig and Anna Brunstrom (Karlstad

More information

Measuring Application's network behaviour

Measuring Application's network behaviour EuroNGI PhD measurement workshop - 1 Measuring Application's network behaviour EuroNGI PhD measurement workshop University of Linz,, Austria May, 12th 2006 Sven Hessler http://dps.uibk.ac.at/~sven Institute

More information

netfilters connection tracking subsystem

netfilters connection tracking subsystem netfilters connection tracking subsystem Florian Westphal 4096R/AD5FF600 fw@strlen.de 80A9 20C5 B203 E069 F586 AE9F 7091 A8D9 AD5F F600 Red Hat netdev 2.1, Montreal, April 2017 connection tracking flow

More information

XDP: 1.5 years in production. Evolution and lessons learned. Nikita V. Shirokov

XDP: 1.5 years in production. Evolution and lessons learned. Nikita V. Shirokov XDP: 1.5 years in production. Evolution and lessons learned. Nikita V. Shirokov Facebook Traffic team Goals of this talk: Show how bpf infrastructure (maps/helpers) could be used for building networking

More information

A linear-list Data Structure where - addition of elements to and - removal of elements from are restricted to the first element of the list.

A linear-list Data Structure where - addition of elements to and - removal of elements from are restricted to the first element of the list. A linear-list Data Structure where - addition of elements to and - removal of elements from are restricted to the first element of the list. the first element of the list a new element to (the Top of)

More information

Maximum Performance. How to get it and how to avoid pitfalls. Christoph Lameter, PhD

Maximum Performance. How to get it and how to avoid pitfalls. Christoph Lameter, PhD Maximum Performance How to get it and how to avoid pitfalls Christoph Lameter, PhD cl@linux.com Performance Just push a button? Systems are optimized by default for good general performance in all areas.

More information

MoonGen. A Scriptable High-Speed Packet Generator. Paul Emmerich. January 31st, 2016 FOSDEM Chair for Network Architectures and Services

MoonGen. A Scriptable High-Speed Packet Generator. Paul Emmerich. January 31st, 2016 FOSDEM Chair for Network Architectures and Services MoonGen A Scriptable High-Speed Packet Generator Paul Emmerich January 31st, 216 FOSDEM 216 Chair for Network Architectures and Services Department of Informatics Paul Emmerich MoonGen: A Scriptable High-Speed

More information

QBone Scavenger Service Implementation for Linux

QBone Scavenger Service Implementation for Linux QBone Scavenger Service Implementation for Linux Mathieu Goutelle Pascale Primet Overview of the QBSS model The QBSS model has been proposed by the Internet2 QoS Working Group. It is part of the Non-Elevated

More information

CS510 Concurrent Systems. Jonathan Walpole

CS510 Concurrent Systems. Jonathan Walpole CS510 Concurrent Systems Jonathan Walpole Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms utline Background Non-Blocking Queue Algorithm Two Lock Concurrent Queue Algorithm

More information

Kernel Korner. Analysis of the HTB Queuing Discipline. Yaron Benita. Abstract

Kernel Korner. Analysis of the HTB Queuing Discipline. Yaron Benita. Abstract 1 of 9 6/18/2006 7:41 PM Kernel Korner Analysis of the HTB Queuing Discipline Yaron Benita Abstract Can Linux do Quality of Service in a way that both offers high throughput and does not exceed the defined

More information

TD(07)037. The 10th COST 290 MC Meeting. Technische Universität Wien Wien, Austria October 1 2, 2007

TD(07)037. The 10th COST 290 MC Meeting. Technische Universität Wien Wien, Austria October 1 2, 2007 TD(07)037 The 10th COST 290 MC Meeting Technische Universität Wien Wien, Austria October 1 2, 2007 Performance of Wireless IEEE 802.11e-Based Devices with Multiple Hardware Queues Gabriel Lazar, Virgil

More information

rx hardening & udp gso willem de bruijn

rx hardening & udp gso willem de bruijn rx hardening & udp gso willem de bruijn Network rx stack hardening PoD [redacted (3x)] Local Priv CVE-2017-1000112: ufo overwrite skb_shared_info CVE-2017-1000111: packet_reserve use-after-free user namespaces

More information

TCP/misc works. Eric Google

TCP/misc works. Eric Google TCP/misc works Eric Dumazet @ Google 1) TCP zero copy receive 2) SO_SNDBUF model in linux TCP (aka better TCP_NOTSENT_LOWAT) 3) ACK compression 4) PSH flag set on every TSO packet Design for TCP RX ZeroCopy

More information

Dropping Packets in Ubuntu Linux using tc and iptables

Dropping Packets in Ubuntu Linux using tc and iptables Dropping Packets in Ubuntu Linux using tc and... 1 Dropping Packets in Ubuntu Linux using tc and iptables By Steven Gordon on Tue, 18/01/2011-8:13pm There are two simple ways to randomly drop packets on

More information

Kathie Nichols CoDel. present by Van Jacobson to the IETF-84 Transport Area Open Meeting 30 July 2012 Vancouver, Canada

Kathie Nichols CoDel. present by Van Jacobson to the IETF-84 Transport Area Open Meeting 30 July 2012 Vancouver, Canada Kathie Nichols CoDel present by Van Jacobson to the IETF-84 Transport Area Open Meeting 30 July 2012 Vancouver, Canada 2 3 Sender Receiver 4 Sender Receiver 5 Sender Receiver Queue forms at a bottleneck

More information

CS24 Week 4 Lecture 2

CS24 Week 4 Lecture 2 CS24 Week 4 Lecture 2 Kyle Dewey Overview Linked Lists Stacks Queues Linked Lists Linked Lists Idea: have each chunk (called a node) keep track of both a list element and another chunk Need to keep track

More information

This talk is not about XDP: From Resource Limits to SKB Lists. David S. Miller, Vancouver, 2018

This talk is not about XDP: From Resource Limits to SKB Lists. David S. Miller, Vancouver, 2018 This talk is not about XDP: From Resource Limits to SKB Lists David S. Miller, Vancouver, 2018 Two Big Issues 1) Clean and Maintainable Code 2) Isolation Clean And Maintainable Code The story of ahh, we

More information

Tom Hart, University of Toronto Paul E. McKenney, IBM Beaverton Angela Demke Brown, University of Toronto

Tom Hart, University of Toronto Paul E. McKenney, IBM Beaverton Angela Demke Brown, University of Toronto Making Lockless Synchronization Fast: Performance Implications of Memory Reclamation Tom Hart, University of Toronto Paul E. McKenney, IBM Beaverton Angela Demke Brown, University of Toronto Outline Motivation

More information

Information Science 2

Information Science 2 Information Science 2 - Basic Data Structures- Week 02 College of Information Science and Engineering Ritsumeikan University Today s class outline l Basic data structures: Definitions and implementation

More information

Demystifying Network Cards

Demystifying Network Cards Demystifying Network Cards Paul Emmerich December 27, 2017 Chair of Network Architectures and Services About me PhD student at Researching performance of software packet processing systems Mostly working

More information

A Quest for Predictable Latency Adventures in Java Concurrency. Martin Thompson

A Quest for Predictable Latency Adventures in Java Concurrency. Martin Thompson A Quest for Predictable Latency Adventures in Java Concurrency Martin Thompson - @mjpt777 If a system does not respond in a timely manner then it is effectively unavailable 1. It s all about the Blocking

More information

CS6202 - PROGRAMMING & DATA STRUCTURES I Unit IV Part - A 1. Define Stack. A stack is an ordered list in which all insertions and deletions are made at one end, called the top. It is an abstract data type

More information

Software Routers: NetMap

Software Routers: NetMap Software Routers: NetMap Hakim Weatherspoon Assistant Professor, Dept of Computer Science CS 5413: High Performance Systems and Networking October 8, 2014 Slides from the NetMap: A Novel Framework for

More information

Accelerating VM networking through XDP. Jason Wang Red Hat

Accelerating VM networking through XDP. Jason Wang Red Hat Accelerating VM networking through XDP Jason Wang Red Hat Agenda Kernel VS userspace Introduction to XDP XDP for VM Use cases Benchmark and TODO Q&A Kernel Networking datapath TAP A driver to transmit

More information

A Look at Intel s Dataplane Development Kit

A Look at Intel s Dataplane Development Kit A Look at Intel s Dataplane Development Kit Dominik Scholz Chair for Network Architectures and Services Department for Computer Science Technische Universität München June 13, 2014 Dominik Scholz: A Look

More information

System level traffic shaping in disk servers with heterogeneous protocols

System level traffic shaping in disk servers with heterogeneous protocols Journal of Physics: Conference Series OPEN ACCESS System level traffic shaping in disk servers with heterogeneous protocols To cite this article: Eric Cano and Daniele Francesco Kruse 14 J. Phys.: Conf.

More information

Suricata Extreme Performance Tuning With Incredible Courage

Suricata Extreme Performance Tuning With Incredible Courage Suricata Extreme Performance Tuning With Incredible Courage By Michal Purzynski (@MichalPurzynski ) Threat Management, Mozilla Peter Manev (@pevma) Suricata Core Team Lead QA and training instructor Stamus

More information

A practical introduction to XDP

A practical introduction to XDP A practical introduction to XDP Jesper Dangaard Brouer (Red Hat) Andy Gospodarek (Broadcom) Linux Plumbers Conference (LPC) Vancouver, Nov 2018 1 What will you learn? Introduction to XDP and relationship

More information

Netchannel 2: Optimizing Network Performance

Netchannel 2: Optimizing Network Performance Netchannel 2: Optimizing Network Performance J. Renato Santos +, G. (John) Janakiraman + Yoshio Turner +, Ian Pratt * + HP Labs - * XenSource/Citrix Xen Summit Nov 14-16, 2007 2003 Hewlett-Packard Development

More information

Circular Queue can be created in three ways they are: Using single linked list Using double linked list Using arrays

Circular Queue can be created in three ways they are: Using single linked list Using double linked list Using arrays Circular Queue: Implementation and Applications In linear queue, when we delete any element, only front increment by one but position is not used later. So, when we perform more add and delete operations,

More information

Adventures In Real-Time Performance Tuning, Part 2

Adventures In Real-Time Performance Tuning, Part 2 Adventures In Real-Time Performance Tuning, Part 2 The real-time for Linux patchset does not guarantee adequate real-time behavior for all target platforms. When using real-time Linux on a new platform

More information

Network optimizations for PV guests

Network optimizations for PV guests Network optimizations for PV guests J. Renato Santos G. (John) Janakiraman Yoshio Turner HP Labs Summit September 7-8, 26 23 Hewlett-Packard Development Company, L.P. The information contained herein is

More information

Network Debugging Toolkit: Netsniff-NG

Network Debugging Toolkit: Netsniff-NG Network Debugging Toolkit: Netsniff-NG Daniel Borkmann Swiss Federal Institute of Technology Zurich (ETH Zurich) Computer Engineering and Networks Laboratory Communication

More information

VoIP over wireless networks: a packet scheduling approach to provide QoS using Linux

VoIP over wireless networks: a packet scheduling approach to provide QoS using Linux VoIP over 82.11 wireless networks: a packet scheduling approach to provide QoS using Linux Terrence van Valkenhoef and Mishar Mahboob December 13, 25 Abstract In this work, we propose a layer three scheduler

More information

How to Win Coding Competitions: Secrets of Champions. Week 2: Computational complexity. Linear data structures Lecture 5: Stack. Queue.

How to Win Coding Competitions: Secrets of Champions. Week 2: Computational complexity. Linear data structures Lecture 5: Stack. Queue. How to Win Coding Competitions: Secrets of Champions Week 2: Computational complexity. Linear data structures Lecture 5: Stack. Queue. Deque Pavel Krotkov Saint Petersburg 2016 General overview Stack,

More information

1 P age DS & OOPS / UNIT II

1 P age DS & OOPS / UNIT II UNIT II Stacks: Definition operations - applications of stack. Queues: Definition - operations Priority queues - De que Applications of queue. Linked List: Singly Linked List, Doubly Linked List, Circular

More information

Packet Sockets, BPF and Netsniff-NG

Packet Sockets, BPF and Netsniff-NG Packet Sockets, BPF and Netsniff-NG (Brief intro into finding the needle in the network haystack.) Daniel Borkmann Open Source Days, Copenhagen, March 9, 2013 D. Borkmann (Red Hat)

More information

Data Structures. Outline. Introduction Linked Lists Stacks Queues Trees Deitel & Associates, Inc. All rights reserved.

Data Structures. Outline. Introduction Linked Lists Stacks Queues Trees Deitel & Associates, Inc. All rights reserved. Data Structures Outline Introduction Linked Lists Stacks Queues Trees Introduction dynamic data structures - grow and shrink during execution Linked lists - insertions and removals made anywhere Stacks

More information

Parallelism and Data Synchronization

Parallelism and Data Synchronization Project 5 Parallelism and Data Synchronization Out: In class on Tuesday, 10 Nov 2009 Due: 10am on Friday, 20 Nov 2009 In this project, you will be focusing on the theoretical side of parallelism and data

More information

Cache-Aware Lock-Free Queues for Multiple Producers/Consumers and Weak Memory Consistency

Cache-Aware Lock-Free Queues for Multiple Producers/Consumers and Weak Memory Consistency Cache-Aware Lock-Free Queues for Multiple Producers/Consumers and Weak Memory Consistency Anders Gidenstam Håkan Sundell Philippas Tsigas School of business and informatics University of Borås Distributed

More information

Evolution of the netmap architecture

Evolution of the netmap architecture L < > T H local Evolution of the netmap architecture Evolution of the netmap architecture -- Page 1/21 Evolution of the netmap architecture Luigi Rizzo, Università di Pisa http://info.iet.unipi.it/~luigi/vale/

More information

Open-NFP Summer Webinar Series: Session 4: P4, EBPF And Linux TC Offload

Open-NFP Summer Webinar Series: Session 4: P4, EBPF And Linux TC Offload Open-NFP Summer Webinar Series: Session 4: P4, EBPF And Linux TC Offload Dinan Gunawardena & Jakub Kicinski - Netronome August 24, 2016 1 Open-NFP www.open-nfp.org Support and grow reusable research in

More information

Linux Traffic Control

Linux Traffic Control Linux Traffic Control Author: Ivan Delchev Course: Networks and Distributed Systems Seminar Instructor: Prof. Juergen Schoenwaelder International University Bremen, Spring 2006 Processing of Network Data

More information

CSC 1052 Algorithms & Data Structures II: Linked Queues

CSC 1052 Algorithms & Data Structures II: Linked Queues CSC 1052 Algorithms & Data Structures II: Linked Queues Professor Henry Carter Spring 2018 Recap A queue simulates a waiting line, where objects are removed in the same order they are added The primary

More information

Research on the Implementation of MPI on Multicore Architectures

Research on the Implementation of MPI on Multicore Architectures Research on the Implementation of MPI on Multicore Architectures Pengqi Cheng Department of Computer Science & Technology, Tshinghua University, Beijing, China chengpq@gmail.com Yan Gu Department of Computer

More information

Linux Plumbers Conference TCP-NV Congestion Avoidance for Data Centers

Linux Plumbers Conference TCP-NV Congestion Avoidance for Data Centers Linux Plumbers Conference 2010 TCP-NV Congestion Avoidance for Data Centers Lawrence Brakmo Google TCP Congestion Control Algorithm for utilizing available bandwidth without too many losses No attempt

More information

Traffic Engineering 2015/2016. Fernando M. Silva. Instituto Superior Técnico. QoS, Scheduling & priority queues.

Traffic Engineering 2015/2016. Fernando M. Silva. Instituto Superior Técnico. QoS, Scheduling & priority queues. Traffic Engineering 2015/2016 QoS, Scheduling & priority queues fernando.silva@tecnico.ulisboa.pt Instituto Superior Técnico Trafffic Engineering 2015/16 1 Outline Traffic optimization & QoS Scheduling

More information

Open Source Traffic Analyzer

Open Source Traffic Analyzer Open Source Traffic Analyzer Daniel Turull June 2010 Outline 1 Introduction 2 Background study 3 Design 4 Implementation 5 Evaluation 6 Conclusions 7 Demo Outline 1 Introduction 2 Background study 3 Design

More information

Introduction to Data Structures. Introduction to Data Structures. Introduction to Data Structures. Data Structures

Introduction to Data Structures. Introduction to Data Structures. Introduction to Data Structures. Data Structures Philip Bille Data Structures Data structure. Method for organizing data for efficient access, searching, manipulation, etc. Goal. Fast. Compact Terminology. Abstract vs. concrete data structure. Dynamic

More information

Raw Packet Capture in the Cloud: PF_RING and Network Namespaces. Alfredo

Raw Packet Capture in the Cloud: PF_RING and Network Namespaces. Alfredo Raw Packet Capture in the Cloud: PF_RING and Network Namespaces Alfredo Cardigliano cardigliano@ntop.org @acardigliano About ntop ntop develops high-performance network traffic monitoring technologies

More information

Fast packet processing in linux with af_xdp

Fast packet processing in linux with af_xdp Fast packet processing in linux with af_xdp Magnus Karlsson and Björn Töpel, Intel Legal Disclaimer Intel technologies may require enabled hardware, specific software, or services activation. Check with

More information

NGN Progress Report. Table of Contents

NGN Progress Report. Table of Contents NGN Progress Report Title: Simulator Scalability Testing Prepared by: Richard Nelson Date: 08 February, 2006 Table of Contents Introduction...2 Simulators...2 Test Method...2 Simulation Model...2 CPU Utilisation...2

More information

Networking in a Vertically Scaled World

Networking in a Vertically Scaled World Networking in a Vertically Scaled World David S. Miller Red Hat Inc. LinuxTAG, Berlin, 2008 OUTLINE NETWORK PRINCIPLES MICROPROCESSOR HISTORY IMPLICATIONS FOR NETWORKING LINUX KERNEL HORIZONTAL NETWORK

More information

What is an L3 Master Device?

What is an L3 Master Device? What is an L3 Master Device? David Ahern Cumulus Networks Mountain View, CA, USA dsa@cumulusnetworks.com Abstract The L3 Master Device (l3mdev) concept was introduced to the Linux networking stack in v4.4.

More information

Keeping Order:! Stacks, Queues, & Deques. Travis W. Peters Dartmouth College - CS 10

Keeping Order:! Stacks, Queues, & Deques. Travis W. Peters Dartmouth College - CS 10 Keeping Order:! Stacks, Queues, & Deques 1 Stacks 2 Stacks A stack is a last in, first out (LIFO) data structure Primary Operations: push() add item to top pop() return the top item and remove it peek()

More information

Queues. A queue is a special type of structure that can be used to maintain data in an organized way.

Queues. A queue is a special type of structure that can be used to maintain data in an organized way. A queue is a special type of structure that can be used to maintain data in an organized way. This data structure is commonly implemented in one of two ways: as an array or as a linked list. In either

More information

QUIC. Internet-Scale Deployment on Linux. Ian Swett Google. TSVArea, IETF 102, Montreal

QUIC. Internet-Scale Deployment on Linux. Ian Swett Google. TSVArea, IETF 102, Montreal QUIC Internet-Scale Deployment on Linux TSVArea, IETF 102, Montreal Ian Swett Google 1 A QUIC History - SIGCOMM 2017 Protocol for HTTPS transport, deployed at Google starting 2014 Between Google services

More information

Combining ktls and BPF for Introspection and Policy Enforcement

Combining ktls and BPF for Introspection and Policy Enforcement Combining ktls and BPF for Introspection and Policy Enforcement Daniel Borkmann, John Fastabend Cilium.io Linux Plumbers 2018, Vancouver, Nov 14, 2018 Daniel Borkmann, John Fastabend ktls and BPF Nov 14,

More information

An efficient Unbounded Lock-Free Queue for Multi-Core Systems

An efficient Unbounded Lock-Free Queue for Multi-Core Systems An efficient Unbounded Lock-Free Queue for Multi-Core Systems Authors: Marco Aldinucci 1, Marco Danelutto 2, Peter Kilpatrick 3, Massimiliano Meneghin 4 and Massimo Torquati 2 1 Computer Science Dept.

More information

Memory management, part 2: outline. Operating Systems, 2017, Danny Hendler and Amnon Meisels

Memory management, part 2: outline. Operating Systems, 2017, Danny Hendler and Amnon Meisels Memory management, part 2: outline 1 Page Replacement Algorithms Page fault forces choice o which page must be removed to make room for incoming page? Modified page must first be saved o unmodified just

More information

I/O Devices. Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau)

I/O Devices. Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau) I/O Devices Nima Honarmand (Based on slides by Prof. Andrea Arpaci-Dusseau) Hardware Support for I/O CPU RAM Network Card Graphics Card Memory Bus General I/O Bus (e.g., PCI) Canonical Device OS reads/writes

More information

Flow Control Packet Marking Scheme: to identify the sources of Distributed Denial of Service Attacks

Flow Control Packet Marking Scheme: to identify the sources of Distributed Denial of Service Attacks Flow Control Packet Marking Scheme: to identify the sources of Distributed Denial of Service Attacks A.Chitkala, K.S. Vijaya Lakshmi VRSE College,India. ABSTRACT-Flow Control Packet Marking Scheme is a

More information

Synchronization. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Synchronization. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University Synchronization Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Types of Synchronization Mutual Exclusion Locks Event Synchronization Global or group-based

More information

Chair for Network Architectures and Services Prof. Carle Department of Computer Science Technische Universität München.

Chair for Network Architectures and Services Prof. Carle Department of Computer Science Technische Universität München. Chair for Network Architectures and Services Prof. Carle Department of Computer Science Technische Universität München Network Analysis 2b) Deterministic Modelling beyond Formal Logic A simple network

More information

1. Background. 2. Demand Paging

1. Background. 2. Demand Paging COSC4740-01 Operating Systems Design, Fall 2001, Byunggu Yu Chapter 10 Virtual Memory 1. Background PROBLEM: The entire process must be loaded into the memory to execute limits the size of a process (it

More information

Bringing the Power of ebpf to Open vswitch

Bringing the Power of ebpf to Open vswitch Bringing the Power of ebpf to Open vswitch William Tu 1 Joe Stringer 2 Yifeng Sun 1 Yi-Hung Wei 1 u9012063@gmail.com joe@cilium.io pkusunyifeng@gmail.com yihung.wei@gmail.com 1 VMware Inc. 2 Cilium.io

More information

Synchronization. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Synchronization. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University Synchronization Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu SSE3054: Multicore Systems, Spring 2017, Jinkyu Jeong (jinkyu@skku.edu) Types of Synchronization

More information

Abstract vs concrete data structures HEAPS AND PRIORITY QUEUES. Abstract vs concrete data structures. Concrete Data Types. Concrete data structures

Abstract vs concrete data structures HEAPS AND PRIORITY QUEUES. Abstract vs concrete data structures. Concrete Data Types. Concrete data structures 10/1/17 Abstract vs concrete data structures 2 Abstract data structures are interfaces they specify only interface (method names and specs) not implementation (method bodies, fields, ) HEAPS AND PRIORITY

More information

Operating Systems. 17. Sockets. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

Operating Systems. 17. Sockets. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski Operating Systems 17. Sockets Paul Krzyzanowski Rutgers University Spring 2015 1 Sockets Dominant API for transport layer connectivity Created at UC Berkeley for 4.2BSD Unix (1983) Design goals Communication

More information

Network device drivers in Linux

Network device drivers in Linux Network device drivers in Linux Aapo Kalliola Aalto University School of Science Otakaari 1 Espoo, Finland aapo.kalliola@aalto.fi ABSTRACT In this paper we analyze the interfaces, functionality and implementation

More information

Memory management, part 2: outline

Memory management, part 2: outline Memory management, part 2: outline Page replacement algorithms Modeling PR algorithms o Working-set model and algorithms Virtual memory implementation issues 1 Page Replacement Algorithms Page fault forces

More information

Combining ktls and BPF for Introspection and Policy Enforcement

Combining ktls and BPF for Introspection and Policy Enforcement Combining ktls and BPF for Introspection and Policy Enforcement ABSTRACT Daniel Borkmann Cilium.io daniel@cilium.io Kernel TLS is a mechanism introduced in Linux kernel 4.13 to allow the datapath of a

More information

CSE502: Computer Architecture CSE 502: Computer Architecture

CSE502: Computer Architecture CSE 502: Computer Architecture CSE 502: Computer Architecture Instruction Commit The End of the Road (um Pipe) Commit is typically the last stage of the pipeline Anything an insn. does at this point is irrevocable Only actions following

More information

Flexplane: An Experimenta0on Pla3orm for Resource Management in Datacenters. Amy Ousterhout, Jonathan Perry, Hari Balakrishnan, Petr Lapukhov

Flexplane: An Experimenta0on Pla3orm for Resource Management in Datacenters. Amy Ousterhout, Jonathan Perry, Hari Balakrishnan, Petr Lapukhov Flexplane: An Experimenta0on Pla3orm for Resource Management in Datacenters Amy Ousterhout, Jonathan Perry, Hari Balakrishnan, Petr Lapukhov Datacenter Networks Applica0ons have diverse requirements Dozens

More information

Queues 4/11/18. Many of these slides based on ones by Cynthia Lee

Queues 4/11/18. Many of these slides based on ones by Cynthia Lee Queues 4/11/18 Many of these slides based on ones by Cynthia Lee Administrivia HW 4 due tomorrow night (list implementations) Reading: For Friday: Beginning of Chapter 7 (pp. 198-211) For Monday: Rest

More information

Priority Queues. Binary Heaps

Priority Queues. Binary Heaps Priority Queues An internet router receives data packets, and forwards them in the direction of their destination. When the line is busy, packets need to be queued. Some data packets have higher priority

More information

jelly-near jelly-far

jelly-near jelly-far sudo./run Two interfaces created: os0, os1 Two networks created: (add to /etc/networks) peanut where os0 will connect 192.168.0.0 grape where os1 will connect 192.168.1.0 Two IP addresses in peanut: (add

More information

Learning with Purpose

Learning with Purpose Network Measurement for 100Gbps Links Using Multicore Processors Xiaoban Wu, Dr. Peilong Li, Dr. Yongyi Ran, Prof. Yan Luo Department of Electrical and Computer Engineering University of Massachusetts

More information

Queuing Mechanisms. Overview. Objectives

Queuing Mechanisms. Overview. Objectives Queuing Mechanisms Overview Objectives This module describes the queuing mechanisms that can be used on output interfaces. It includes the following topics: Queuing Overview FIFO Queuing Priority Queuing

More information

Much Faster Networking

Much Faster Networking Much Faster Networking David Riddoch driddoch@solarflare.com Copyright 2016 Solarflare Communications, Inc. All rights reserved. What is kernel bypass? The standard receive path The standard receive path

More information