GerBra Ich nenne das "Breitschwert".
Ich werde das die Tage in einen extra features Branch ins Repo stellen zum "Ausprobieren". Dazu dann aber mehr wenn es soweit ist.
Gesagt, getan <g>
So langsam werde ich warm mit dem ganzen ge-pushe, ge-merge, ge-stashe, ge-switche ...
Die V4-feature im neuen features branch hat nun diese Neuerung:
Die Suche nach Firmwaredateien erfolgt nach wie vor sequentiell, wird aber nun früher beendet wenn ein passendes Firmware-Paket gefunden wird. Wenn allerdings kein passendes Paket gefunden würde, dann dauert diese sequentielle Suche gegebenenfalls sehr lang. Dafür gibt es nun den Schalter -s/--sword. Damit ist eine multithreaded Suche einschaltbar. Das Umschalten sequentiell/parallel erfolgt automatisch bei bestimmten Kriterien.
Das Feature beruht auf dem Tool parallel. Dieses muß logischerweise installiert sein.
pacman -Si parallel
pacman -Syu parallel
Wenn ihr das Repo neu pullt, erhaltet ihr automatisch auch den neuen Branch features. Um diese Version des Skripts zu nutzen//edit: anzusehen wechselt ihr in diesen Branch:
$ git switch features
$ ./detect-firmware.sh --version
sollte die V4-feature anzeigen. Zurück zum Hauptzweig main gelangt ihr wieder mit: git switch main
Im features Branch zeigt detect-firmware.sh --help nun eine neue Option -s/--sword an. Diese Option - wenn gesetzt - veranlaßt das Skript bei bestimmten Kriterien von sequentieller Abarbeitung zu einer parallelen umzuschalten.
Bei einem "normalen" Durchlauf werdet ihr - sofern ihr nicht ausgerechnet "Problem"-Module aktiv habt - keinen Unterschied merken. Die Abfragen nach "euren" geladenen Module ist mit V4 zu gering das sich das Feature einschalten würde.
Austesten/messen läßt sich das trotzdem recht gut. Wir fügen zum Testen einfach ein paar "Problem-Module" hinzu. Dafür ändert ihr bitte die Zeile 90:
#loaded_modules+=('radeon' 'solos_pci')
nach
loaded_modules+=('solos_pci' 'b43')
loaded_modules+=('si2157' 'solos_pci' 'b43')
schaltet also zwei frei Module zusätzlich hinzu für den Lauf. Alle haben keine passende Firmware in den Repos, werden also BAD sein, und müssen für alle referenzierten Firmware-Files ein pacman -Fqx ausgeführen. Was zwischen sequentiell und parallel - je nach Anzahl euerer CPU-Kerne - einen Riesenunterschied macht.
Am besten in einem anderen Terminal z.B.:
htop --filter=pacman
mitlaufen lassen.
Nochmal der Hinweis: Das führt ggf. zu einer sehr hohen Load/Temperatur/Lüfterdrehzahl auf eurem Rechner.
Gestartet wird das dann mit:
./detect-firmware.sh --sword
Sobald es z.B zum b43 Modul kommt werdet ihr folgendes bemerken:
- Die ersten 3-4 Abfragen passieren noch "langsam", Spinner bewegt sich kaum
- Dann aber wird parallelisiert, der Spinner bewegt sich auch schneller.
Ihr könnt ja gerne mal die Zeit zwischen den beiden Verfahren testen, also einmal mit --sword, dann ohne.
Bei mir am PC(6/12 cores):
mit --sword: 1m15
ohne --sword: 2m20
Nach "Abschluß" solltet ihr ggf. wieder in den main Branch switchen, da sonst u.U. keine Neuerungen an der richtigen V4 mitbekommt.