F-Stack - a full user-space network service with DMM

Slides:



Advertisements
Similar presentations
Windows XP Kernel Architecture Mike Karlsven James Farrer Jason Smith.
Advertisements

NetSlices: Scalable Multi-Core Packet Processing in User-Space Tudor Marian, Ki Suh Lee, Hakim Weatherspoon Cornell University Presented by Ki Suh Lee.
Multiprocessors and Multithreading – classroom slides.
Chapter 7 Protocol Software On A Conventional Processor.
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
Keith Wiles DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
04/14/2008CSCI 315 Operating Systems Design1 I/O Systems Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
RDMA ENABLED WEB SERVER Rajat Sharma. Objective  To implement a Web Server serving HTTP client requests through RDMA replacing the traditional TCP/IP.
Copyright © 2002 Wensong Zhang. Page 1 Free Software Symposium 2002 Linux Virtual Server: Linux Server Clusters for Scalable Network Services Wensong Zhang.
High Performance User-Level Sockets over Gigabit Ethernet Pavan Balaji Ohio State University Piyush Shivam Ohio State University.
Introduction to Threads CS240 Programming in C. Introduction to Threads A thread is a path execution By default, a C/C++ program has one thread called.
Kernel, processes and threads Windows and Linux. Windows Architecture Operating system design Modified microkernel Layered Components HAL Interacts with.
Fast Multi-Threading on Shared Memory Multi-Processors Joseph Cordina B.Sc. Computer Science and Physics Year IV.
Processes and Threads CS550 Operating Systems. Processes and Threads These exist only at execution time They have fast state changes -> in memory and.
Windows 2000 Course Summary Computing Department, Lancaster University, UK.
2006 Sonoma Workshop February 2006Page 1 Sockets Direct Protocol (SDP) for Windows - Motivation and Plans Gilad Shainer Mellanox Technologies Inc.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Thread Scheduling.
Linux Architecture Overview 1. Initialization Uboot – hardware init, loads kernel Kernel – remaining initialization, calls “init” Init – 1 st process,
The Mach System Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Presentation By: Agnimitra Roy.
Next Generation Operating Systems Zeljko Susnjar, Cisco CTG June 2015.
TCP Offload Through Connection Handoff Hyong-youb Kim and Scott Rixner Rice University April 20, 2006.
Intel Research & Development ETA: Experience with an IA processor as a Packet Processing Engine HP Labs Computer Systems Colloquium August 2003 Greg Regnier.
Challenges in Porting & Abstraction. Getting Locked-In Applications are developed with a particular platform in mind The software is locked to the current.
1 Structure of Processes Chapter 6 Process State and Transition Data Structure for Process Layout of System Memory THE DESIGN OF THE UNIX OPERATING SYSTEM.
CENG334 Introduction to Operating Systems 1 Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY URL:
Managing Processors Jeff Chase Duke University. The story so far: protected CPU mode user mode kernel mode kernel “top half” kernel “bottom half” (interrupt.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Inter-domain Socket Communications Supporting High Performance and Full Binary Compatibility on Xen March 5, 2008 Kangho Kim System Software Team Internet.
Architecture of a Proactive Security Tool Vivek Ramachandran.
Chapter 4: Threads 羅習五. Chapter 4: Threads Motivation and Overview Multithreading Models Threading Issues Examples – Pthreads – Windows XP Threads – Linux.
An open source user space fast path TCP/IP stack and more…
Computer System Structures
Introduction to threads
Threads Some of these slides were originally made by Dr. Roger deBry. They include text, figures, and information from this class’s textbook, Operating.
Arrakis: The Operating System is the Control Plane
Module 12: I/O Systems I/O hardware Application I/O Interface
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Chapter 4: Threads.
Current Generation Hypervisor Type 1 Type 2.
Chapter 1: A Tour of Computer Systems
CS 6560: Operating Systems Design
SCTP Handoff for Cluster Servers
Scheduler activations
CS399 New Beginnings Jonathan Walpole.
Linux 202 Training Module Program and Process.
Chapter 4: Threads 羅習五.
Threads, Events, and Scheduling
Chapter 4: Threads.
OSDI ‘14 Best Paper Award Adam Belay George Prekas Ana Klimovic
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
CS703 - Advanced Operating Systems
DPDK Accelerated Load Balancer
Mid Term review CSC345.
Time Gathering Systems Secure Data Collection for IBM System i Server
Integrating DPDK/SPDK with storage application
Threads, Events, and Scheduling
Linux Architecture Overview.
Jonathan Walpole Computer Science Portland State University
Prof. Leonardo Mostarda University of Camerino
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Threads, Events, and Scheduling
Why Threads Are A Bad Idea (for most purposes)
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Module 12: I/O Systems I/O hardwared Application I/O Interface
SocksDirect: Datacenter Sockets can be Fast and Compatible
Presentation transcript:

F-Stack - a full user-space network service with DMM Based on DPDK, FreeBSD TCP/IP stack Hailong Wang

Explosive growth of data services Challenges service traffic:CDN,live streaming(RTMP),etc. DDoS, CC Solution NIC: 25GbE40GbE100GbE CPU: 24Cores48Cores56Cores L2/L3: Kernel bapass(DPDK) L4/L7: ?

The problem - Kernel Thread0 Thread1 Thread2 Thread3 Thread4 Thread5 User space Kernel space CPU cores(NUMA) NIC queues

The solution - Kernel Bypass Kernel space Process0 Process1 Process2 Process3 User space Control plane Data plane

What does F-Stack do? APP SDK Posix-like API FreeBSD TCP/IP stack DPDK

The characteristics of F-Stack Full user-space No context switch Zero copy No hirqs and sirqs Shared-nothing architecture Linear scalability No schedule No lock No cache locality miss APP …… …… SDK …… …… Posix-like API …… …… FreeBSD TCP/IP stack …… …… DPDK …… ……

Why FreeBSD Why full TCP/IP stack? Why not Linux ? Advantageous functional, production ready stack. Stable. Network tools. Why not Linux ? Complicated logic. GPL.

TCP/IP stack on Linux read recv sock_recvmsg tcp_recvmsg tcp_recestablished tcp_v4_recv netif_recv_skb ip_recv netif_rx ip_local_deliver tcp_v4_do_recv send write sock_sendmsg tcp_sendmsg tcp_push tcp_write_xmit tcp_transmit_skb ip_queue_xmit ip_output ip_finish_output dev_queue_xmit

TCP/IP stack on FreeBSD read ether_demux ether_input ip_input tcp_input soreceive readv recvfrom recvmsg ether_output ip_output tcp_outpt sosend sendmsg writev write sendto

User space FreeBSD TCP/IP stack phymem uma_page_slab uma kmem_malloc malloc phymem uma_page_slab uma kmem_malloc malloc timecounter ticks hz timer timecounter ticks hz timer kernel,irq threading sched wakeup sleep kernel,irq threading sched wakeup sleep mtx rw rm sx cond remove & replace hijack replace remove mmap/malloc (rte_mempool/rte_malloc) rte_timer ticks timecounter polling empty macro memory clock schedule locks

Posix-like api and network tools F-Stack Lib ff_init(argc, argv) ff_socket ff_read ff_write …… ff_kqueue ff_kevent ff_epoll_ctl ff_epoll_wait ff_run(loop, arg); sysctl ifconfig route ipfw arp top etc..

Application Cases Load Balance Web Server WAF SCTP 4 layer: ipfw/nat 7 layer: nginx Web Server epoll-based http server: httpdns nginx: live streaming(rtmp). WAF nginx+lua/openresty SCTP

Limitations Multi-process architecture, not suitable for multi-thread. Should modify the application's source code. Can not be used for multiple apps Not suitable for heavy logic.

Integrate with DMM F-Stack with DMM Plug-in interface module init Multiple deploy type run-to-completion pipe-line F-Stack with DMM more easier to use more scenarios

F-Stack with DMM F-Stack freebsd-stack dpdk-if-interface DMM socket compatible layer app1 app2 app3 app..n DMM hardware adapter layer stack1 stack.n

https://github.com/f-stack Resources https://github.com/f-stack

Thanks!