Live data from Hacker News

Zircon Fair Scheduler

fuchsia.googlesource.com

61–70 of 79 posts

Re: Zircon Fair Scheduler

#61

Earlier quoted context omitted.

A simple hierarchy: when there is deadline work to do that work takes precedence, fair work gets the rest of the time. This is effective because deadline work has bounded execution time, whereas fair work is elastic and can adjust to use the available bandwidth.

Where is io scheduling in this? It's my perception that on current workstations, for example, that and "ionice -c3" in front of any build I do is far more useful then simply nicing it.

IO scheduling is a separate problem, though it shares the same fundamental properties. The same goes for network packet scheduling. All of these are ongoing efforts. Stay tuned! :)

Re: Zircon Fair Scheduler

#62
post #53

Earlier quoted context omitted.

And phone CPUs can be more complex than most desktops, afaik big.LITTLE is fairly common (multi core, with different performance / power tradeoffs between the cores). https://lwn.net/Articles/501501/ has some pointers.

I was just saying the low end chips have only "little" cores, no "big" cores, but they are still multi-core. AFAIK nobody makes single core Cortex A chips. Single core Cortex M chips are made, but those are really puny.

Hilariously, it is common to see some SoCs, like the i.MX8, have Cortex-A and Cortex-M cores. You can do fun stuff like run different operating systems on them too. They can be used for real-time applications, safety-critical functions, etc..

And by "fun" I mean not-fun, because you've got multiple build processes and releases to manage.

Re: Zircon Fair Scheduler

#63
post #2

This post has sky-rocketed to the top! I'm genuinely curious: can someone explain what's cool/interesting/important about this (maybe EL5)? Thanks!

Well, Google intends for this new OS to replace Android. They'll need to convince the public that this new OS is somehow better than Android, which everyone has come to know and love. It seems that they believe the best way to do that is a grassroots approach beginning with tech discussion hubs like HN and Reddit. Of course, they could have just meme'd hard about the fact that they're moving away from evil Oracle tec…

It is sort of replacing Android, but not really. But it sort of is.

The kernel is designed to have a stable binary interface for drivers. This has been a problem with Linux-based Android devices (all of them so far), because the OEMs (or more properly the chipset vendors like Qualcomm) will only support a particular chipset for a short amount of time (maybe a couple years, it depends).

After that, it becomes hard to bring new kernels to the platform, so we all end up with phones stuck at whatever major release was out at the time, with low prospects of upgrades.

If you can make a stable binary API, and furthermore keep to the micro-kernel model, then most of the OS can be easily upgraded, because you don't need (and aren't going to get) new versions of the device drivers for the chipset.

Also, there's an effort towards better low-latency real-time support. This is critical for AR/VR applications with tight rendering deadlines.

Re: Zircon Fair Scheduler

#64

Earlier quoted context omitted.

Well, Google intends for this new OS to replace Android. They'll need to convince the public that this new OS is somehow better than Android, which everyone has come to know and love. It seems that they believe the best way to do that is a grassroots approach beginning with tech discussion hubs like HN and Reddit. Of course, they could have just meme'd hard about the fact that they're moving away from evil Oracle tec…

> Well, Google intends for this new OS to replace Android. Can you point me to anything that demonstrates that intention?

https://www.tomsguide.com/us/google-fuchsia-os-replace-andro...

Re: Zircon Fair Scheduler

#65

Earlier quoted context omitted.

Where is io scheduling in this? It's my perception that on current workstations, for example, that and "ionice -c3" in front of any build I do is far more useful then simply nicing it.

IO scheduling is a separate problem, though it shares the same fundamental properties. The same goes for network packet scheduling. All of these are ongoing efforts. Stay tuned! :)

Well I look forward to seeing this develop.

Two of my primary areas of interest, audio engineering and VR both REALLY show how poorly modern operating systems do with user interactivity when it counts.

Re: Zircon Fair Scheduler

#66
post #62

Earlier quoted context omitted.

I was just saying the low end chips have only "little" cores, no "big" cores, but they are still multi-core. AFAIK nobody makes single core Cortex A chips. Single core Cortex M chips are made, but those are really puny.

Hilariously, it is common to see some SoCs, like the i.MX8, have Cortex-A and Cortex-M cores. You can do fun stuff like run different operating systems on them too. They can be used for real-time applications, safety-critical functions, etc.. And by "fun" I mean not-fun, because you've got multiple build processes and releases to manage.

But I think that's not used as a multiprocessor, with threads getting scheduling on either (or both) depending on power policy. The embedded cores are, I think, used as separate systems running separate OS that happen to have access to the same DRAM, like a peripheral that can do DMA.

Thinking of running that as a single multiprocessing system I'm reminded of the bug caused by Samsung doing big.LITTLE with cores that have the same instruction set but differently sized cache lines: https://news.ycombinator.com/item?id=12481700

Re: Zircon Fair Scheduler

#67
post #55

Earlier quoted context omitted.

What does the super scheduler that coordinates the two schedulers approximately look like?

RT tasks get prioritized over normal ones but only up to a configurable fraction of CPU time slices. If you need even more guarantees than that another option is to pin tasks to a set of CPU cores to isolate workloads from each other. The kernel can also be told to not use certain cores for interrupt handling or kernel-internal tasks. So with some effort it's possible to almost entirely dedicate a core to a single th…

In Zircon interrupt handlers can happen from user space. So you would have to make sure the process was not scheduled on a core you want no interrupt handlers scheduled.

Re: Zircon Fair Scheduler

#68
post #53

Earlier quoted context omitted.

"cpu" is "core". Almost all phone CPUs are multi-core. The low end of phone (and Raspberry Pi 2 V1.2 and newer) CPUs is quad core ARM Cortex A53, which is a small slow in-order design, similar to the original Intel Pentium from 1995. Older low end phones used the 32bit quad core ARM Cortex-A7. single core ARM11 phones are extinct. They don't mean multi-socket systems, and I don't see mention of NUMA, which is the int…

And phone CPUs can be more complex than most desktops, afaik big.LITTLE is fairly common (multi core, with different performance / power tradeoffs between the cores). https://lwn.net/Articles/501501/ has some pointers.

big.LITTLE is fascinating, and I'm somewhat curious to see if Apple tries to do something along those lines as it supposedly pushes towards ARM chips in their machines.

Google have added some interesting stuff to Android to help it learn over time if tasks should be allocated to the bigger cores or the lower powered smaller ones, based on all sorts of metrics, and I believe this stuff is making its way upstream. There's certainly some really interesting potential around that.

Re: Zircon Fair Scheduler

#69
post #68
post #53

Earlier quoted context omitted.

And phone CPUs can be more complex than most desktops, afaik big.LITTLE is fairly common (multi core, with different performance / power tradeoffs between the cores). https://lwn.net/Articles/501501/ has some pointers.

big.LITTLE is fascinating, and I'm somewhat curious to see if Apple tries to do something along those lines as it supposedly pushes towards ARM chips in their machines. Google have added some interesting stuff to Android to help it learn over time if tasks should be allocated to the bigger cores or the lower powered smaller ones, based on all sorts of metrics, and I believe this stuff is making its way upstream. Ther…

Apple chips are big.LITTLE too, at least since the 2016 A10 in the iPhone7.

https://en.wikichip.org/wiki/apple/ax/a12

https://en.wikichip.org/wiki/apple/ax/a10

https://www.anandtech.com/show/13392/the-iphone-xs-xs-max-re...

Re: Zircon Fair Scheduler

#70

There are many references to multiple cpu systems throughout the document. Maybe I missed something, but I didn't know Fuschia was aimed at systems like that. I am no expert, but aren't the vast majority of multiple cpu systems servers or high-rnd workstations? If google can supply their own server os, Linux could lose a lot of support and funding

Anecdata, but my tiny ARM server at home has eight cores on one SOC and costs $80. I believe my phone also has eight cores.

$80 sounds nice! Which one is it?
Post reply on HN