~/talk

Lightweight Preemptible Functions

Talkat USENIX ATC '20 · 2020-07-15..07-17· [developer-experience]
linkedin:solboucher
links:none on file
links:none on file
links:none on file
slides:none on file

Introduces a synchronous function-call timeout that runs preemptible code on the same kernel thread, enabling pause/resume/cancel without processes or kernel threads; implements this as libinger and exposes a launch/resume API with microbenchmarks showing launch and resume cost about 5 µs each (kernel thread spawn ~30 µs, fork ~200 µs), cancel is slower but offloaded to a reaper; builds a preemptive userland thread library libturquoise and shows it limits head‑of‑line latency (99th‑percentile stays controlled while cooperative systems collapse).

AI-written summary · about

  1. 0:00Intro
  2. 2:02Problem: calling a function cedes control
  3. 2:36Two approaches to multitasking
  4. 3:16Problem: futures are cooperative
  5. 4:33Alternative: kernel threading
  6. 5:09Problem: SLAs and graceful degradation
  7. 5:48Observation: cancellation is hard
  8. 6:43Problem: object ownership and lifetime
  9. 8:28A new application primitive lightweight preemptible function: function invoked with a timeout
  10. 9:20The interface: launch() and resume
  11. 10:14The interface: cancel()
  12. 10:26Concurrency: explicit sharing counter = @
  13. 12:46Implementation: timer signal
  14. 13:26Implementation: cleanup
  15. 13:50Preemption mechanism
  16. 15:12libinger cancels runaway image decoding quickly
  17. 16:52Problem: non-reentrancy
  18. 18:31library copying
  19. 19:09Dynamic symbol binding
  20. 19:57Selective relinking
  21. 20:58uncopyable functions
  22. 21:30": blocking syscalls
  23. 22:05libgotcha microbenchmarks
  24. 23:50hyper latency benchmark: experimental setup
  25. 24:28hyper latency benchmarks: results
  26. 25:42Summary lightweight preemptible function: function invoked with a timeout • Synchronous preemption abstraction • Supports resuming and cancellation • Interoperable with legacy software • Exciting systems applications
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.