Live data from Hacker News

FreeBSD Scheduling on Hybrid CPUs

wiki.freebsd.org

1–10 of 35 posts

Re: FreeBSD Scheduling on Hybrid CPUs

#3
post #2

> Apart from some models of Alder Lake, it is now impossible to buy an Intel chip that does not have at least P (Performance) and E (Efficiency) cores. Really? I just bought one: https://www.intel.com/content/www/us/en/products/sku/236786/...

How about change that to "Anything with more than 6 cores". Anything with 4 cores only has one speed of core. At 6 cores it more of a mixed bag, some have all the same cores, some have a split of performance and efficient cores. Anything over an i5 will have E cores.

Re: FreeBSD Scheduling on Hybrid CPUs

#4
post #3
post #2

> Apart from some models of Alder Lake, it is now impossible to buy an Intel chip that does not have at least P (Performance) and E (Efficiency) cores. Really? I just bought one: https://www.intel.com/content/www/us/en/products/sku/236786/...

How about change that to "Anything with more than 6 cores". Anything with 4 cores only has one speed of core. At 6 cores it more of a mixed bag, some have all the same cores, some have a split of performance and efficient cores. Anything over an i5 will have E cores.

Hmm, I think Granite Rapids is all P-Cores and goes up to 86 cores (172 threads):

https://en.wikipedia.org/wiki/Granite_Rapids

Re: FreeBSD Scheduling on Hybrid CPUs

#5
post #4
post #3

Earlier quoted context omitted.

How about change that to "Anything with more than 6 cores". Anything with 4 cores only has one speed of core. At 6 cores it more of a mixed bag, some have all the same cores, some have a split of performance and efficient cores. Anything over an i5 will have E cores.

Hmm, I think Granite Rapids is all P-Cores and goes up to 86 cores (172 threads): https://en.wikipedia.org/wiki/Granite_Rapids

Yep, there are still server CPUs with only P-cores.

They are a bit expensive but I wouldn't expect them to drop these skews in the long term for HPC & compute bound workloads. My guess is that diamond rapids will also have some P-skews and maybe AP skews.

Re: FreeBSD Scheduling on Hybrid CPUs

#6
post #2

> Apart from some models of Alder Lake, it is now impossible to buy an Intel chip that does not have at least P (Performance) and E (Efficiency) cores. Really? I just bought one: https://www.intel.com/content/www/us/en/products/sku/236786/...

There are also Xeons, but it limits an OS to use in data centers.

Re: FreeBSD Scheduling on Hybrid CPUs

#7
The high-level pitch of P cores and E cores seems so elegant, but when it actually comes to scheduling, it gets messy fast. Even in a laptop running off a battery, you can't simply switch to E cores because some short-lived work might be latency-sensitive. You also can't assume long-running work should be on an E core because maybe you're anxious to get that video encoded. Even for lots of small work, different core can have different performance characteristics, and a P core might be more efficient for certain workloads.

Re: FreeBSD Scheduling on Hybrid CPUs

#8
post #7

The high-level pitch of P cores and E cores seems so elegant, but when it actually comes to scheduling, it gets messy fast. Even in a laptop running off a battery, you can't simply switch to E cores because some short-lived work might be latency-sensitive. You also can't assume long-running work should be on an E core because maybe you're anxious to get that video encoded. Even for lots of small work, different core…

As a user with a laptop, the last thing I want is the OS to decide for me. I want to tell it myself "this is sensitive, put all your energy into it because I'm five minutes away from pushing that important work and I have seven minutes of battery left" or "this won't work at all if run at less than 2 GHz" vs "I must drag what I'm doing along for as long as I can, save every bit of battery possible. The computer can't know about these cases.

Re: FreeBSD Scheduling on Hybrid CPUs

#9
post #7

The high-level pitch of P cores and E cores seems so elegant, but when it actually comes to scheduling, it gets messy fast. Even in a laptop running off a battery, you can't simply switch to E cores because some short-lived work might be latency-sensitive. You also can't assume long-running work should be on an E core because maybe you're anxious to get that video encoded. Even for lots of small work, different core…

As a user with a laptop, the last thing I want is the OS to decide for me. I want to tell it myself "this is sensitive, put all your energy into it because I'm five minutes away from pushing that important work and I have seven minutes of battery left" or "this won't work at all if run at less than 2 GHz" vs "I must drag what I'm doing along for as long as I can, save every bit of battery possible. The computer can't…

FWIW, Apple leaves it up to the app developer to specify a quality-of-service for a particular execution context:

https://developer.apple.com/library/archive/documentation/Pe...

Re: FreeBSD Scheduling on Hybrid CPUs

#10
post #7

The high-level pitch of P cores and E cores seems so elegant, but when it actually comes to scheduling, it gets messy fast. Even in a laptop running off a battery, you can't simply switch to E cores because some short-lived work might be latency-sensitive. You also can't assume long-running work should be on an E core because maybe you're anxious to get that video encoded. Even for lots of small work, different core…

Funny enough, Unix already has user-settable priorities, aka "nice level". ACPI gives us an idea how plentiful the power is.

So, when powered by AC power, schedule everything on P cores when possible, schedule processes that eat a lot of CPU on P cores, same for any process with a negative nice value.

When powered by a battery, schedule anything with non-negative nice value on E cores, keep one P core up for real-time tasks, and for nice-below-zero tasks.

These are two extremes, but I suppose that the idea is understandable.

Post reply on HN