~/talk

Deep dive into the Go scheduler, or Why would I steal goroutines?

TalkinRussianat HighLoad++ 2023 · 2023-11-27..11-28· [go, concurrency]
links:none on file
slides:none on file

A technical deep-dive into Go’s scheduler explaining why and how goroutine stealing (work stealing) works inside the Go runtime. Covers Go runtime internals and scheduler algorithms, showing problems that steal/transfer goroutines between processors (P) to balance load and improve throughput.

AI-written summary · about

  1. 0:00Introduction
  2. 1:34Stealing routines
  3. 3:20Why steal routines
  4. 6:10Go scheduler types
  5. 7:13GMP model
  6. 11:54Goroutine creation
  7. 15:30Memory reuse in goroutines
  8. 20:30Global vs local queues
  9. 25:30Finding goroutines
  10. 27:17Stealing from other P
  11. 30:26Current goroutine via assembly
  12. 31:51Parking/unparking goroutines
  13. 33:39Implementing stealing
  14. 35:05Summary
  15. 36:32Practical use and risks
  16. 37:58Q&A: GC concerns
  17. 39:37Q&A: Stealing efficiency
  18. 41:04Q&A: Thread stealing logic
  19. 43:38Q&A: Channel sync
  20. 44:43Q&A: Production use cases
  21. 47:14Q&A: CPU control
~/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.