Snabb 2023.04 “Caspar”
This release finally merges @lukego's timeline: a probabilistic high-frequency event log that is useful to understand and debug runtime latencies. It can be enabled via the environment variable SNABB_TIMELINE_ENABLE
. As usual this release also comes with various minor improvements and bug fixes.
What's Changed
- Snabbflow integration (timeline, group freelist and interlink sizes) by @eugeneia in #1497
- Timeline 2022 by @eugeneia in #1486
- core.group_freelist: fix a deadlock by @eugeneia in #1494
- lib.poptrie: fix bug where address bits where interpreted in reverse order by @eugeneia in #1495
- apps.rss: remove 59 (no-next-header) from list of IPv6 extension headers by @alexandergall in #1496
- lib.yang.list: fix bug in remove_obsolete_nodes by @eugeneia in #1498
- Collected changes for April 2023 release: Caspar by @eugeneia in #1499
- [sketch] Timeline redux by @lukego in #1098
Full Changelog: v2022.12...v2023.04
Contributors
Alexander Gall (1):
- 8e7be8e: apps.rss.metadata: remove 59 (no-next-header) from list of IPv6 extension headers
Luke Gorrie (10):
- 3e4c447: dasm_x86.lua: Add support for RDTSCP instruction
- 95872b1: core.timeline: New module for "timeline" logs
- 930f294: Makefile: Embed "*.events" timeline specs
- aa9980a: engine: Add engine.events, app.events, link.events
- 8530942: core.link: Add dropped bytes counter
- 9b252f0: engine: Instrument with timeline events
- 40ceef6: core.timeline: Switch to double-float on disk
- 563ae7a: engine: update timeline level probabilities
- ffb7379: engine: Randomize timeline log level with math
- 16a6bb2: engine: Remove timeline packet payload sampling
Max Rottenkolber (51):
- 1bb4108: core.app: remove remains from 16a6bb2 (timeline packet sampling)
- 0e52b24: core.timeline: make timeline log available to other core modules
- e834845: core.packet: record packet allocation events to timeline
- a6def7b: Revert "core.timeline: make timeline log available to other core modules"
- 8201d1d: lib.ptree.worker: reformulate to use engine.main with done func
- debd26c: engine.main: fix memory leak due to latency histogram creation
- edaad6c: core.app: set timeline log level at the very end of breathe loop
- 9c4c804: core.packet: reorder group_fl released/reclaimed/unlocked events
- 004f5bb: core.timeline: decouple log level from event rate
- 8e68109: core.app: initialize timeline log rate to 7 (no logging)
- 8f0c6bf: core.timeline: add switch to disable timeline logging
- 30cafdc: core.app: add timeline events for app network configuration
- e5faba0: Fix some wrong assumptions about the event rate
- 872eaab: app.events: reduce tick/ticked event rate
- 0252254: engine.events: fix breath_ticked description
- 8080451: core.app: log breath_ticked only when tick()=true
- cd43d69: engine.events: increase rate of commited_counters
- 8091531: Revert "app.events: reduce tick/ticked event rate"
- 3e0fee7: core.app: fix bug introduced in merge with master
- cb11a26: app.events: reduce tick/ticked event rate
- bfa3aa6: lib.ptree: fix bugs introduced by merge with master
- 8c34646: timeline: cleaup merge
- 840e1e5: timeline: cleanup
- db3c5cb: engine: add timeline_enabled toggle (on by default)
- 7b00bcf: Revert "engine: add timeline_enabled toggle (on by default)"
- 9896b4b: timeline: disable by default, add lib.scheduling toggle
- 21e2017: timeline: rework group freelist events
- b7a8af9: timeline: remove unused arguments to tick events
- 068b4d5: timeline: remove linkstats for push events
- f41f7a1: timeline: fixup rework group freelist events
- bcca06e: core.sync: add load primitive
- 45d3ac7: core.group_freelist: fix a deadlock
- b916131: group_freelist: revert panic
- f8c977c: group_freelist: add deadlock detection
- 2fbc94b: lib.poptrie: fix bug where address bits where interpreted in reverse order
- 67b3d9c: lib.poptrie: optimize x86 lookup
- a382b1d: core.timeline: fix selftest
- 00287bb: engine: allow timely timeline initialization
- a6fe6dc: snabb ipfix probe: add --timeline option to CLI
- 66f0eb3: lib.scheduling: add group_freelist_size setting
- f906776: lib.interlink: fix shm printing bug
- 50cad00: ipfix probe: make group freelist and interlink sizes configurable via schema
- 81a9e19: timeline: enable via environment variable
- f805e81: Revert "snabb ipfix probe: add --timeline option to CLI"
- 0916c24: Revert "engine: allow timely timeline initialization"
- 559c80d: core.sync: load64, cas64
- f47228b: core.group_freelist: use 64 bit sequence
- b6c130d: core.group_freelist: ensure finish is atomic
- e8eb4fd: Revert "group_freelist: add deadlock detection"
- f3905b3: core.group_freelist: cleanup
- 7472b83: lib.yang.list: fix bug in remove_obsolete_nodes