Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
eXpress Data Path
Getting Linux to 20Mpps
Brenden Blanco
Getting Started with XDP
Pick the minimum viable feature set
Packet read/write, drop/pass/forward, bpf table access
Pick a...
Benchmark Setup
Receiver
Xeon E5-1630 @3.
70GHz
Mellanox MT27520
ConnectX-3 Pro
Sender
Xeon E5645 @2.
40GHz
Mellanox MT275...
Benchmark Setup
Receiver
Xeon E5-1630 @3.
70GHz
Mellanox MT27520
ConnectX-3 Pro
Sender
Xeon E5645 @2.
40GHz
Mellanox MT275...
XDP Benchmarks (single core)
Generated using pktgen - (scripts in $kernelsrc/samples/pktgen)
ip routing drop: ~3.6 Mpps
tc...
Specific Challenges in mlx4
Need to find where to run BPF program - Before SKB Allocation
Multiple packets per page
good f...
XDP Upstream Status
Initial API done!
Support for mlx4 driver (Mellanox Connect{3, 3-Pro})
Prototypes for mlx5, ixgbe, e10...
Trying XDP For Yourself
https://github.com/iovisor/xdp-vagrant
vagrant up
vagrant ssh
sudo /usr/share/bcc/examples/network...
Upcoming SlideShare
Loading in …5
×

eXpress Data Path [Linux Meetup Santa Clara | July 2016]

6,341 views

Published on

Getting Linux to 20Mpps

Published in: Software
  • Be the first to comment

eXpress Data Path [Linux Meetup Santa Clara | July 2016]

  1. 1. eXpress Data Path Getting Linux to 20Mpps Brenden Blanco
  2. 2. Getting Started with XDP Pick the minimum viable feature set Packet read/write, drop/pass/forward, bpf table access Pick a candidate driver mlx4 40G (because I had it on hand) Hack it together
  3. 3. Benchmark Setup Receiver Xeon E5-1630 @3. 70GHz Mellanox MT27520 ConnectX-3 Pro Sender Xeon E5645 @2. 40GHz Mellanox MT27520 ConnectX-3 Pro 40G
  4. 4. Benchmark Setup Receiver Xeon E5-1630 @3. 70GHz Mellanox MT27520 ConnectX-3 Pro Sender Xeon E5645 @2. 40GHz Mellanox MT27520 ConnectX-3 Pro 40G
  5. 5. XDP Benchmarks (single core) Generated using pktgen - (scripts in $kernelsrc/samples/pktgen) ip routing drop: ~3.6 Mpps tc clsact drop using bpf: ~4.2 Mpps xdp drop using bpf: 20 Mpps (<10 % cpu util) xdp forward with rewrite: 10 Mpps
  6. 6. Specific Challenges in mlx4 Need to find where to run BPF program - Before SKB Allocation Multiple packets per page good for memory density, bad for fast-reuse of pages Pages are dma-mapped as read-only XDP_TX feature needs lockless access to hardware tx ring Fast enough packet rate stresses linux page allocator
  7. 7. XDP Upstream Status Initial API done! Support for mlx4 driver (Mellanox Connect{3, 3-Pro}) Prototypes for mlx5, ixgbe, e1000 for testing Ready in Linux 4.8 1200 LOC Available now in http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git
  8. 8. Trying XDP For Yourself https://github.com/iovisor/xdp-vagrant vagrant up vagrant ssh sudo /usr/share/bcc/examples/networking/xdp/xdp_drop_count.py eth1

×