finally, a page that describes what it is like to have ADHD. might as well scroll through it, youre gonna get @#$% all outta that bwahahaha
anyway, lets get serious a bit. LOTS OF QUESTIONS. and rambling. you love it.
in the manual,
https://nixos.org/manual/nixos/unstable/options#opt-nix.daemonCPUSchedPolicy
there is nothing new about them! it’s the same information that’s in the nixpkgs search engine:
which usually shouldnt be the case. there should be more explainy things in the manual, RIGHT??? it shouldnt be just a copy paste, is that right?
btw, the “declared in” links are dead, lol (in the manual)
i can go deeper into each and every other sentence that is poorly and not-very-understandably phrased but… i dont know how to say this, but i do know that all of this, nixOS, is always developing and there were (are) problems with documentation, which is COOL (get it? cos flakes… ok ill stop), but… i thought buiilding and declaring were always here since day one? like, you know what i mean? one can use nixOS without even really getting into learning nix language, and if there’s a person, okay, who likes the whole philosophy of nixOS, installed nixOS on a crappy laptop… and it lags! so, theyre gonna search for “nixos build freezes”, and theyre gonna eventually find that they should change the way nixOS allocates CPU cores to the building process. and they find that… there is a massive skill issue (in the usual sense), right? would you, as an utter newbie, just imagine, go through all of this:
https://www.man7.org/linux/man-pages/man7/sched.7.html
https://www.man7.org/linux/man-pages/man2/ioprio_set.2.html
https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html
(and the manuals), just to fix a system freeze that is caused by default settings of nixOS? ONCE AGAIN, i dont have these issues, im just kinda speaking out for others. …i just, i dont understand all of that. both the pages and the fact that they couldnt just rephrase it a bit simpler, like:
nix.daemonCPUSchedPolicy = "idle";
nix.daemonIOSchedClass = "idle";
worsens building speed, improves system performance
nix.daemonCPUSchedPolicy = "other";
(default)
nix.daemonIOSchedClass = "best-effort";
(default)
nix.daemonIOSchedPriority = 0;
(doesnt work with “idle”)
improves building speed, worsens system performance
at least I THINK this is what they do!
in the ioprio_set(2)
, they say this:
The highest real-time priority level is 0; the lowest is 7.
but nix.daemonIOSchedPriority
explains it like this:
best-effort supports values in the range 0 (high) to 7 (low).
guys, perhaps im too silly, too stupid for serious topics like this, but… this is very difficult for someone with autism, i think ive said that before already. i dont like THAT. the way it was explained. OKAY OKAY, yes, sure, i can help, i can fix that… but i would rather start over with like a SIMPLE english (and dutch) manual, completely devoid of technifficult words, you know! but thats just me, maybe.
ANYWAY, what about these:
nix.settings.cores
nix.settings.max-jobs
well, once again, according to this page:
https://nix.dev/manual/nix/2.24/advanced-topics/cores-vs-jobs
and the manual (sorry, i am not aware of any other proper source of information… the https://wiki.nixos.org
, which is NOT to be confused with https://nixos.wiki/
, though i still confuse them A LOT, i think, are not very reliable… as the person above me wrote )
https://nixos.org/manual/nixos/unstable/options#opt-nix.settings.cores
https://nixos.org/manual/nixos/unstable/options#opt-nix.settings.max-jobs
(btw holy shit those pages are so laggy, why?)
…i think those options are just a matter of preference, is it not?
by default, nix.settings.cores
is 0
, which is to use all available LOGICAL (not threads) cores, but… then it says this:
Some builds may become non-deterministic with this option; use with care!
what does THAT mean? … you mean, if the value is odd? if a laptop has 7 cores, that’d make it non-deterministic by design, by manufacture? THERE IS 0 EXPLANATION. i love sentences like these, actually, just kinda ominously out there, yknow, but no one cares about them, i think. has anyone had this problem with non-determinism in a declarative system? okay, maybe someone have, oh well, anyway…
Packages will only be affected if enableParallelBuilding is set for them.
no idea what this is. do they mean that this option will work ONLY IF the package, that is NOT in the binary cache, will use the specified amount of cores, which has enableParallelBuilding
inside of it? uhm, why would it not have that? im just curious, please do tell!
but what’s nix.settings.max-jobs
?
This option defines the maximum number of jobs that Nix will try to build in parallel. The default is auto, which means it will use all available logical cores. It is recommend to set it to the total number of logical cores in your system (e.g., 16 for two CPUs with 4 cores each and hyper-threading).
wait, didnt we just read that already? no, no, no wait. is that right? this is about THE parallel (simultaneous) build tasks, correct? so, why are they talking about logical cores? didnt we literally JUST set that in nix.settings.cores
, no?
anyway, lets completely ignore those warnings and before things get any more confusing, quickly write down what you have in mind thusly:
for a system that has 4 CORES
, 8 THREADS
, a typical Steam Deck should have:
nix.settings.cores = 4;
nix.settings.max-jobs = 1;
(buildPhase
?)
but, according to this person,
cores
and max-jobs
multiply together? so, i will eventually get 4
parallel processes? im too lazy to make another post to ask just one question, so, WHAT IS A PARALLEL PROCESS???
is it the buildPhase
thing, the ACTUAL building process, or is it the downloading from binary cache, unpacking, whatever else is happening when you rebuild, all of the above?
i just gotta ask this, guys. i WANNA KNOW. gotta feel stupid now to be knowledgeable later.
by the way, the link to that post, where the person explains that they multiply, the OP clearly has an 8 core CPU, and 16 threads. it’s just a typical AMD thing, you know? the name of the CPU gives it away. so im not sure what is going on anymore… are we talking threads or logical cores, guys…
im just gonna hit “reply” and hope for the best
EDIT: i feel like i have to clarify: i love nixOS. im never distrohopping again. its intuitive, its declarative, its THE BEST. but once you wanna know something - THATS IT. muhahaha, you shall never know the secrets! and like, ive seen many people use “ai” to explain some options to them. well, that “ai” is taking information from someplace that already exists, yknow… so it’s also wrong and outdated bwahahaha. anyway, yeah, i wish i knew about nixOS earlier, cos its just soooo cool. but it got me thinking: was it worse? back then? the documentation? …