devsummit:201309:networking

This is an old revision of the document!


We would like to cover the following topics. This is not an exhaustive list and if you feel there is something missing that you want to talk about, contact the session chair and your topic will be included here.

Please send talks, brainstorm topics, or other proposals to the session leaders, LawrenceStewart and GlebSmirnoff.

  • Protocols
    • TCP
      • Deferring reassembly to user thread's kernel context (Lawrence)
      • MPTCP (Lawrence)
      • Deferring mbuf drop on ACK (Scott)
      • UI for controlling TCP dynamics (Lawrence, Andre)
      • Reworking SACK + integrating with reassembly (Andre)
      • Pacing (Lawrence)
  • Infrastructure
    • Hostcache (Lawrence)
    • Interface dangling pointers
      • RX pointer in mbufs
        Problem: we don't refcount interface per mbuf which can lead to dangling pointers (particularly problematic in subsystems which hold mbufs for some time e.g. dummynet, netgraph)
      • IOCTLs, rtentries, etc.
    • Stack-driver interface (Andre)
      • RX/TX IFQ/Multiqueue
      • API/advertising hardware offload capabilities (kernel + userland)
    • Making ifnet opaque to driver
      • Juniper proposal?
  • Performance optimisation
    • Routing subsystem
      • FIB vs RIB
        Problem: Trie is too generic
      • rtentry locking Problem: Per-packet per-rtentry locking kills performance
    • Netgraph (Alexander, Gleb)
      • Topology locking
        Problem: Topology locking hurts performance and doesn't currently protect nodes from all possible config changes which can lead to panic
      • Hand rolled RW locking
        Problem: For nodes that do nothing e.g. ng_tee, atomic inc/dec is too heavy weight, so ideally need a better solution for all nodes
    • Fast path cache misses, amount of memory accessed per read/write (Adrian)
  • MBUFS
    • Ref counting (Gleb, Adrian)
      Problem: uint32_t's coming from single zone non contiguous in memory with the mbuf
      Possible solutions:
    • Batching
  • Multi-(process|thread) accept (Gleb) Problem:
    Possible solutions:
  • Light weight ref counter based on count(9) (Gleb) Problem:
  • Ownership Identify chunks of code without owners

(Add a list or attach slides detailing the achieved results here.)

  • devsummit/201309/networking.1380201359.txt.gz
  • Last modified: 2013/09/26 13:15
  • by LawrenceStewart