Portál AbcLinuxu, 10. května 2025 16:58
Čas jdoucí pozpátku, stav podpory capabilities, softwarová emulace instrukcí procesoru a pokračování odstraňování BKL.
Do konference přišlo celkem 701 emailů, nejvíce psali Roy Sigurd Karlsbakk, Pavel Machek a khromy.
Salvatore D'Angelo si povšiml, že zavolání gettimeofday() dvakrát za sebou pod 2.4.18 ukazuje čas jdoucí pozpátku. Neboli druhý výsledek nebyl nezbytně větší než první. A tak zaslal demonstrační kód a dodal, že se mu to děje v asi 10% případů. Matti Aarnio to také zkusil a potvrdil problém, leč pouze v jednom z 216 milionů pokusů. Salvatore tedy spustil tes ještě jednou a snížil pravděpodobnost jevu na 0.01%. Karim Yaghmour napsal, že tento problém byl již diskutován dříve a že se děje na x86 a PPC.
Chris Friesen na svém G4 desktopu potvrdil problém s 2.2.17, ale nikoliv s 2.4.18. Gabriel Paubert dodal, že vzhledem ke kompletnímu přepisu relevantního kódu v řadě 2.4, tato chyba není překvapivá. Důvodem přepsání byla snaha o větší robustnost v případě ztracených tiků: všechny PPC zvládnou (HZ-1) ztracených přerušení, než se všechno pokazí (velice užitečné, když framebuffer blokuje přerušení na příliš dlouhou dobu během přepínání obrazovky). Další méně viditelnou opravou je případ, kdy je stroj napojen na NTP server. Pokud byl počítač pod velkým zatížením [load], časová frekvence se různila. Pokud tedy dokáže aktivovat [trigger] problém pod 2.4.17, velice jej to zajímá.
Michael Kerrisk se zeptal, jak pokračují capabilities souborového systému v řadě 2.4. Věděl o částečné podpoře od řady 2.2 a zajímalo ho, zda se nějak pokročilo. Dax Kelson odpověděl, že VFS v řadě 2.5 podporuje rozšířené atributy (od 2.5.3). Plán byl ukládat do nich capabilities. Takže když už existuje infrastruktura, někdo musí:
Ale Jesse Pollard zaslal odkaz a řekl, že kromě posledního bodu je již vše hotovo v rámci projektu Linux Security Modul. Chris Wright upřesnil, že projekt LSM podporuje capabilities přesně tak, jak jsou v jádře a používání rozšířených atributů tedy chybí. Patche jsou vítány.
Willy Tarreau oznámil softwarovou emulaci některých instrukcí, ač ví, že spousta lidí ji nebudou mít rádi. Zaslal ji pro ty, které by mohla zajímat. Tento software dokáže emulovat instrukce BSWAP, CMPXCHG, XADD procesoru 486 na procesoru 386 a CMOV z Pentia Pro na jiných procesorech. Účelem není nahradit správnou kompilaci, ale často se nám stalo, že jsme na poškozeném systému nabootovali z diskety a při spouštění některých příkazů tyto havarovaly s 'Illegal instruction' kvůli špatně nastavenému překladači. Jednou měl gcc, které automaticky kompilovalo pro i686 a pak měl velké potíže se zkompilovaným e2fsck na svém notebooku s AMD K6!
Denis Vlasenko zaznamenal oblasti kritické na výkon a zaslal patch na jejich urychlení. Willy si je prohlédl a napsal, že programoval spíše na správnost než na rychlost kódu a pokud by rychlost byla skutečným problémem, přepsal by většinu kódu do assembleru. Podle Denise je rychlost důležitá, jinak si náhodní uživatelé budou o Linuxu myslet, že je pomalý. Pak diskutovali nad způsobem, jak to urychlit nebo aspoň varovat uživatele, že má očekávat zpomalení. Nakonec se diskuse vytratila sama od sebe.
Paul Menage poslal patch, který odstraňuje BKL (Big Kernel Lock) z volání super_operations ->statfs() a přesouvá jej do souborových systémů, pokud jej potřebují. Všechny modifikované souborové systému se dají kompilovat mimo vypnutý [disabled] umsdos, pouze ext2 a shmfs byly testovány. Matthew Wilcox navrhnul, že mnohem více používání BKL by se dalo odstranit a Paul odpověděl: Jistě že ano, ale raději neriskuji poškození [breakage], protože neznám pravidla pro zamykání u jednotlivých souborových systémů. Toto přenechal jejich autorům. Později nicméně zaslal rozšířenou verzi patche, který odstraňuje BKL z dalších oblastí. Různí lidé pak zasílali své návrhy, kde všude by BKL není potřeba.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.