| 28 Jul 2025 |
jade_ | anyway i have run into an old stupid bug where you can't nix store delete a self referencing store path | 01:34:08 |
jade_ | i hit that one basically every time i am trying to do benchmarking of nix builds or similarly wanting to clean build a certain path | 01:34:57 |
jade_ | https://eclecticlight.co/2022/01/13/scheduling-of-processes-on-m1-series-chips-first-draft/ related info to prev discussion | 01:37:34 |
emily | I think I probably already linked to https://blog.xoria.org/macos-tips-threading/ but it has a useful brief overview re: scheduling/QoS | 01:40:17 |
emily | though not as detailed of course | 01:40:29 |
hexa | loving the priority QoS has | 01:40:40 |
hexa | * loving the priority QoS has in this flow | 01:40:42 |
hexa | wondering how the Linux schedulers deal with P/E core scheduling | 01:41:09 |
emily | pretty badly I think | 01:41:26 |
emily | Linux definitely does not have comparable to the Darwin systemwide QoS handling | 01:41:51 |
jade_ | android likely invented one, but it sounds very plausible that it never made its way into desktops | 01:42:38 |
emily | there is https://docs.kernel.org/scheduler/sched-energy.html | 01:42:40 |
emily | but Darwin fundamentally has more information (since everything in the OS is setting QoS information that passes through IPC and they have a global QoS-aware work scheduling mechanism and etc.) | 01:43:56 |
emily | the fun part of efficiency/perf cores is when the two support different ISAs | 01:44:50 |
emily | iirc Intel have chips where you can use AVX512 on the P cores but not the E ones or something | 01:45:11 |
emily | and if the scheduler messes it up you just die | 01:45:17 |
jade_ | intel did this on my machine where only p cores have the perf counters required to run rr | 01:45:22 |
hexa |
EAS in its current form is SMT unaware and is not able to leverage multithreaded hardware to save energy.
| 01:45:23 |
jade_ | i have a stupid script to workaround it | 01:45:27 |
emily | as in it schedules on the threads of a core separately yeah | 01:45:52 |
emily | which is not good | 01:45:54 |
hexa |
EAS on SMT is not supported.
| 01:46:05 |
hexa | yeah | 01:46:10 |
jade_ | lix> Full log written to /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250727-2d01098.drv-0/b/source/build/meson-logs/testlog.txt
lix> installCheckPhase completed in 1 minutes 54 seconds
/nix/store/43cz7wimzcxpk4fc88mwvmiqh9fd5m0i-lix-2.94.0-dev-pre20250727-2d01098-dev
/nix/store/lyrj23vsy491kscr7322y9y8wizry6jl-lix-2.94.0-dev-pre20250727-2d01098-doc
/nix/store/19jn0drzqy8a7lg6z20fpw8zd2c0fxax-lix-2.94.0-dev-pre20250727-2d01098
nb 0.09s user 0.05s system 0% cpu 4:59.22 total
lix> Full log written to /nix/var/nix/builds/nix-build-lix-2.94.0-dev-pre20250727-2d01098.drv-0/b/source/build/meson-logs/testlog.txt
lix> installCheckPhase completed in 59 seconds
/nix/store/43cz7wimzcxpk4fc88mwvmiqh9fd5m0i-lix-2.94.0-dev-pre20250727-2d01098-dev
/nix/store/lyrj23vsy491kscr7322y9y8wizry6jl-lix-2.94.0-dev-pre20250727-2d01098-doc
/nix/store/19jn0drzqy8a7lg6z20fpw8zd2c0fxax-lix-2.94.0-dev-pre20250727-2d01098
nb 0.07s user 0.04s system 0% cpu 3:39.75 total
christ
| 01:46:11 |
jade_ | that's insane | 01:46:16 |
emily | though idk if anyone really made SMT scheduling very good | 01:46:24 |
jade_ | second one is nix-daemon --daemon running in my terminal, first one is nix-daemon via launchd | 01:46:32 |
emily | Apple didn't bother with SMT at all | 01:46:38 |
jade_ | so the second one is QoS Default | 01:46:38 |
hexa | and the launchd one has background priority? | 01:47:05 |