GopherCon 2018: Kavya Joshi - The Scheduler Saga
Вставка
- Опубліковано 31 тра 2024
- he Go scheduler is the behind-the-scenes magical machine that powers Go programs. It efficiently runs goroutines, and also coordinates network IO and memory management.
Kavya’s talk will explore the inner workings of the scheduler machinery. She will delve into the M:N multiplexing of goroutines on system threads, and the mechanisms to schedule, unschedule, and rebalance goroutines. Kavya will also touch upon how the scheduler supports the netpoller and the memory management systems for goroutine stack resizing and heap garbage collection. Finally, she will evaluate the effectiveness and performance of the scheduler. - Наука та технологія
This really is a great talk. I spent most of the 90s working with task schedulers, and have recently been playing with Go. I'd never seen any explanation of how Go does scheduling, but this talk makes things crystal clear, and maps nicely onto my experience. Kavya clearly knows her stuff, and tries to keep things interesting by changing intonation and using a little stagecraft, rather than letting viewers drift off to sleep. Nice work!
I've been stuck looking to improve an M:N scheduler for my OS/language... found this video and it answers a TON of design and performance questions I had. (Work stealing run queues were the keyword I was looking for) Excellent talk, thanks a bunch!
Absolutely amazing presentation. So organized... Thanks kavya for such a great content
can't upvote this enough!
Great talk and explanation, I would definitely watch this again to get a better grasp, thanks Kavya for this awesome talk.
great presenter. i love her older go channels talk.
Not sure about you guys, But I'm a beginner and had to rewatch this presentation few times to understand it to the depth. Honestly the content is awesome.
Awesome presentation. Thank you!
Amazing presentation! I was linked to this from Gophers Slack. I'm grateful for the guy who did that!
Excellent content and presentation, thank you.
this is so awesome and easy to understand. Thank you for sharing!
Awesome. Very good explained.
Thank you a ton. Awesome presentation.
Wow! Clean Presentation and Nicely explained. Thanks Kavya
Great presentation!
Great presentation
Great talk! Very informative
Thanks, Kavya!
Awesome talk
nice presentation!personally i love her voice
just the best
Awesome!!!!
thanks kavya
very useful!
that is great!!!
Stylic Presentation.
25:25 nice summary, better watch this few times more
thanks
nice talk
What about performing work stealing first from cores located on the same die so as to minimize cache misses…
9:10 Welcome to Ruby.
On 24:22, what if the T1 wake up? there will be 3 threads, which beyond the limitation of CPU cores?
It will not "wake up". It notifies the monitor thread when it's runnable(waiting in the parking). And when the go routine running thread count is less than core number (this can happen if Tmain or T2 has a syscall), the monitor thread will take it from parking and allocate it it's run queue.
@@dune499 T1 will not wake up? so how about the g1 inside it? how will it continue the goroutine execution?
@@riankrishandi once the syscall unblocks, T1 will get parked
@@philipedekobi297 @tamjidahmed9872
But lets say if the g1 inside T1 is not yet finished, where would it be placed. T1 does not have any associated runqueue.
slices at speakerdeck.com/kavya719/the-scheduler-saga
cool -- solves (go) world hunger! :D
Nice talk but i still don't know how can you have 200k go routines, with this structure.
If there are 10 cores, You can have 1000s go routines on each local distributed queue.
@@tarunpahuja3443 yea..I know. This comment is more than 4 years old.
Okay boss
@@user-ov5nd1fb7s
nothing further
Damn, she is trying so hard to sound mean!
why you waste people's time by introducing non-idea? No one care about stupid idea and just want to know good idea.
As if you have good idea all the time.
thanks kavya