~152 more replies (not shown)

i've decided to set the scheduler strategy to CONFIG_PREEMPT_VOLUNTARY over the linux-zen default of CONFIG_PREEMPT because this laptop has obnoxious specs and they describe CONFIG_PREEMPT as being like for embedded systems (and laptops) whereas CONFIG_PREEMPT_VOLUNTARY is singly characterized as for desktops and i have this thing plugged in 99% of the time

kinda funny about why the status quo is like this. google benefits from the clout saying "yeah yeah yeah we LTO the KERMEL we are FUTURW" regardless of the performance bc as you recall google does not care about computer performance. whereas presumably if gcc lto was not actually useful it wouldn't be worth anyone's time to plumb it into the kernel makefiles

the ceph network filesystem seems vaguely interesting but very corporate and the way they spread their config dependencies (the config dependencies part is at least pretty well done) very deeply into separate subtrees makes it unlikely someone would take the time to remove it all unless they get upset like me and tear it all out

the one part about the dependencies that is not at all well engineered is not giving you a way to disable/enable all dependencies as necessary for the one you want to work. i also think gitignoring .config is a strange decision because it is ridiculously important for users to track their config changes and git is a tool for doing so

omg this shade from CONFIG_FTL

You may find that the algorithms used in this code are patented
unless you live in the Free World where software patents aren't
legal - in the USA you are only permitted to use this on PCMCIA
hardware, although under the terms of the GPL you're obviously
permitted to copy, modify and distribute the code as you wish. Just
not use it.

This option enables verbose reporting for NVMe errors. The
error translation table will grow the kernel image size by
about 4 KB.

marveling at (1) a static table being verbose enough for 4kb (2) how this option very clearly gives a number for the tradeoff. some other options don't give clear indications of magnitude, although some like the scheduler probably can't

there's a paragraph at the bottom of Kconfig-language.rst about SAT solvers which uhhhhhhhb that's pretty cool kernel.org/doc/html/latest/kbu cc @harold @tgamblin i think this is a case where SAT/SMT is more appropriate than ASP since it's easier to enumerate all values

Although SAT solvers [4] haven’t yet been used by Kconfig directly, as noted in the previous subsection, work has been done however to express in boolean abstraction the inferred semantics of Kconfig to translate Kconfig logic into boolean formulas and run a SAT solver on it [5]. Another known related project is CADOS [6] (former VAMOS [7]) and the tools, mainly undertaker [8], which has been introduced first with [9]. The basic concept of undertaker is to extract variability models from Kconfig and put them together with a propositional formula extracted from CPP and build-rules into a SAT solver in order to find dead code, dead files, and dead symbols. If using a SAT solver is desirable on Kconfig one approach would be to evaluate repurposing such efforts somehow on Kconfig. There is enough interest from mentors of existing projects to not only help advise how to integrate this work upstream but also help maintain it long term. Interested developers should visit:

going to spend a few minutes reading more about kconfig and seeing how hard it would be to make a script that kills all deps for me. the problem is that it's easier to do that operating upon the config file itself, but making it useful would be inserting that into the menuconfig/etc [TG]UIs. maybe that's not hard if i see how they're made?

lmao and then whether you want to turn on the (NEW!) PGO feature

# cosmicexplorer@terrestrial-gamma-ray-flash: ~/tools/linux 9:23:45 
; make LLVM=1 rustavailable
Rust is available!
# cosmicexplorer@terrestrial-gamma-ray-flash: ~/tools/linux 9:24:04
; make LLVM=1 rust-analyzer
SYNC include/config/auto.conf
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/confdata.o
HOSTCC scripts/kconfig/expr.o
HOSTCC scripts/kconfig/lexer.lex.o
HOSTCC scripts/kconfig/menu.o
HOSTCC scripts/kconfig/parser.tab.o
HOSTCC scripts/kconfig/preprocess.o
HOSTCC scripts/kconfig/symbol.o
HOSTCC scripts/kconfig/util.o
HOSTLD scripts/kconfig/conf

Restart config...


* General architecture-dependent options
*
Kprobes (KPROBES) [Y/n/?] y
Optimize very unlikely/likely branches (JUMP_LABEL) [Y/?] y
Static key selftest (STATIC_KEYS_SELFTEST) [N/y/?] n
Static call selftest (STATIC_CALL_SELFTEST) [N/y/?] n
Enable seccomp to safely execute untrusted bytecode (SECCOMP) [Y/n/?] y
Show seccomp filter cache status in /proc/pid/seccomp_cache (SECCOMP_CACHE_DEBUG) [N/y/?] n
Stack Protector buffer overflow detection (STACKPROTECTOR) [Y/n/?] y
Strong Stack Protector (STACKPROTECTOR_STRONG) [Y/n/?] y
Link Time Optimization (LTO)
> 1. None (LTO_NONE)
2. Clang Full LTO (EXPERIMENTAL) (LTO_CLANG_FULL) (NEW)
3. Clang ThinLTO (EXPERIMENTAL) (LTO_CLANG_THIN) (NEW)
choice[1-3?]: 1
Enable Clang's AutoFDO build (EXPERIMENTAL) (AUTOFDO_CLANG) [N/y/?] (NEW)

and the phony thing is pretty arcane but there is code you van copy directly from already in the top level makefile. but i'm mostly just bewildered that so much effort would be spent to have such an obviously broken result. possibly a last-minute fix done without realizing it would remove the phony declarations. i'm sure this is in the LKML archives

i am NOT using this feature but holy shit look at the syntax they have for doing something with semantics that i have to read three times to get https://www.gnu.org/software/make/manual/html_node/Immediate-Assignment.html

var = one$$two
OUT :::= $(var)
var = three$$four

everything you love about = along with everything you love about :=. cc @leo if they were for real they'd make ::::=