La setmana passada es va fusionar el gruix dels canvis de sched_ext per a Linux 7.2, amb feina continuada en el suport de sub-planificadors. Linus Torvalds no va posar emperò a les funcions d’aquest framework de planificació extensible que es recolza en programes BPF en espai d’usuari. El que no va pair va ser com estaven col·locats els fitxers de codi font.
Al pull request de la setmana passada s’hi van afegir uns quants fitxers C i de capçalera nous amb el prefix ext_ directament dins de kernel/sched, en lloc de crear un subdirectori propi. Torvalds va fusionar el codi, però va deixar un comentari que no deixa lloc a dubtes:
create mode 100644 kernel/sched/ext_arena.c create mode 100644 kernel/sched/ext_arena.h create mode 100644 kernel/sched/ext_cid.c create mode 100644 kernel/sched/ext_cid.h create mode 100644 kernel/sched/ext_types.h
Please don’t do this disgusting thing. There’s a reason we have subdirectories: it’s to group files together and separate them out. Using name prefixing instead of directories is disgusting and wrong. If you have this many random sched-ext files, it damn well should be cleaned up and not be this kind of mess. I’ve pulled this, but under protest. Proper hierarchical filesystems have been available since 1965.
Traduït i resumit: per a Torvalds, fer servir prefixos als noms en comptes de directoris és un error. Si hi ha tants fitxers de sched_ext solts, el lògic és agrupar-los en una carpeta. Va acceptar el merge “sota protesta” i va recordar, amb la seva sorna habitual, que els sistemes de fitxers jeràrquics existeixen des de 1965.
La reorganització ja hi és
El missatge va fer efecte de seguida. Avui s’ha enviat un nou pull request que reorganitza l’arbre de fonts de sched_ext per fer servir kernel/sched/ext/ en comptes de deixar un munt de fitxers ext_* escampats pel directori comú del planificador. Torvalds ja ha fusionat aquest codi de reestructuració.
El canvi és purament d’organització: mou fitxers com ara ext_arena.c, ext_arena.h, ext_cid.c, ext_cid.h o ext_types.h a la carpeta nova. No toca la funcionalitat de sched_ext ni el suport de sub-planificadors que arriba amb aquesta tanda. Per a qui compila el kernel des de codi font o segueix l’arbre de Torvalds, l’únic que canvia són les rutes dels fitxers.
A qui li importa això
Si desenvolupes planificadors personalitzats amb sched_ext, mantens pegats sobre l’arbre del kernel o simplement segueixes de prop el desenvolupament de Linux 7.2, et convé tenir present la nova ubicació sota kernel/sched/ext/. Per a l’usuari d’escriptori que només instal·la el kernel de la seva distribució, l’efecte és nul: és un canvi intern d’estructura de directoris.
L’episodi és un altre recordatori de com es cuiden les formes en el desenvolupament del kernel. La funcionalitat va passar el tall sense problema; el que no va passar va ser el desordre a l’arbre de fitxers. Si vols posar-te al dia amb el que porta aquesta branca, repassa les novetats de Linux 7.1, la versió des de la qual es va obrir la finestra de fusió de 7.2. Pots consultar el detall de versions a la fitxa de Linux Kernel.