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
- Question:
- 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?
- WITNESS?
- Profiling
- 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
- Lock traces for common paths, stats
- Cache-line contention measurements
- packet narrative traces
- measurement scenarios:
- classic web
- web w/ lagg
- 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