This is an old revision of the document!
Networking session
Topics we are interested
- mbuf allocation improvements - variable size mbufs (*)
- TCP - work deferral Van Jacobson bet channels (*)
- Connection Groups with RSS [ ]
- Batching vs. Latency (eg. LRO, TSO) (discuss)
- Profiling
- NUMA - DMA
- “config lock”: rmlocks - RCU - giant lock [ ]
- upsides:
- many fewer lock ops
- less line contention
- cache locality
- downsides:
- update latency - loss of granularity
- pinning - priority inversions
- Questions:
- what goes under rmlocks?
- what uses RW/etc.?
- What is suitable per write rate for config lock?
- What is read time distribution
- What is priority propagation cost?
- Profile paths followed under read + write
- WITNESS?
- Profiling
- Entry points to possibly acquire global rmlock?
- netisr
- socket entry
- protocol callouts/ioctls
- device-driver ithread - BPF
- device-driver task queues
- device-driver ioctls
- firewall / dummynet / altq
- link-layer (e.g 802.11)
- interface cloning/destory
- netgraph (eg. ng_tty)
- sysctls
- VIMAGE/SYSINITS
- route caches, flowcache, … [ ]
- vertical lock coalescing [ ] (discuss)
- affinity-APIs - user space
- netmap changes
Legend: - (*) Robert can tell us about - [ ] make decisions - (discuss) well, discuss
Measurements (we want to see)
- Config lock-related
- ioctls/etc.
- measure read/write lock ratio
- global ifnet
- ifnet address locks + ifaddr
- lltable + llentry
- firewall lists
- firewall rules
- host cache - IPv6
- |? routing table + rtentries
- || inpcbinfo
- UDP
- TCP
- syncache
- nd6 prefix list, etc.
- || connection groups
- ethernet bridge config
- SNMP-monitored things
- netisr
- BPF
- Lock traces for common paths, stats
- Cache-line contention measurements
- packet narrative traces
- measurement scenarios:
- classic web
- web w/ lagg
- varnish
- mySQL
- tunnel services / VPN / L2TP
- (full) BGP actively changed (peak 25/s ?)
- NFS scenarios
- different LAN sites
- dynamic firewall rules
- ethernet bridge
- DNS-like (heavy UDP)
Research TODO
- HTM / STM (TM == transactional memory) features