Portál AbcLinuxu, 18. července 2025 16:53

Jaderné noviny 319

6. 9. 2005 | Robert Krátký
Články - Jaderné noviny 319  

Dodržování pravidel SysFS. Swap soubory vs. swap oddíly. Nový ovladač Apple USB touchpadu pro nové PowerBooky. BootUtils 0.0.5.

Dodržování pravidel SysFS, 8 e-mailů

28. črv - 8. črc

Christoph Hellwig poznamenal:

drivers/message/i2o/config-osm.c má funkci sysfs_create_fops_file, která vytváří sysfs soubor s dodanými file_operations. To se neshoduje s designem sysfs, který požaduje pouze jednoduché atributy - ASCII nebo, ve výjimečných případech, binární.

Kromě toho, pokud bude tento kód začleněn, měl by být přesunut do sysfs. A měl by přestat používat lookup_hash přímo (místo toho by měl používat lookup_one_len), protože bude brzy odstraněna.

Markus Lidel odpověděl:

Zaprvé, ty atributy poskytované jmenovanými funkcemi slouží pro přístup k firmwaru... Řadič má malé omezení - zvládne pouze 64 bloků, ale sysfs má jen 4k.

Takže jsou dvě možnosti:

  1. Při zápisu: načíst 64k blok, sloučit ho se 4k blokem a zapsat zpět; při čtení: načíst 64k blok a vrátit pouze ten vyžadovaný 4k blok.
  2. Rozšířit sysfs atribut, aby umožňoval 64k bloky.

První možnost není dle mého názoru moc dobré řešení, protože 64k blok by musel být zapsán 16krát.

Samozřejmě, přijde-li někdo na lepší řešení, rád si o tom poslechnu.

Greg KH řekl: Použij rozhraní sysfs pro binární soubory. Bylo napsáno přesně pro tento účel :). Markus to zkusil, ale napsal: Nezjistil jsem, jak zvýšit velikost bloku na více než 4k. Mohl bys mi prosím říct, jak to nastavit, nebo kde bych si o tom mohl přečíst? Greg odpověděl:

Tvému kódu by mělo být jedno, jaká je velikost bloku dat, který dostáváš, protože z uživatelského prostoru by mohly přicházet třeba po 1 bajtu. Vytvoř vlastní buffer a pak data na zařízení zapiš, až to bude potřeba.

Ale jestli to děláš kvůli firmwaru, pak prosím použij rozhraní jádra pro firmwary, protože to udělá všechno bufferování za tebe.

Ať tak nebo tak, mít v sysfs vlastní file_ops není povoleno.

Markus odepsal, že Gregovo řešení je o hodně komplexnější a vyžádalo by si daleko více kódu. Greg zkusil ještě párkrát poradit, ale nic z toho Markusovi nevyhovovalo a vlákno skončilo.

Swap soubory vs. swap oddíly, 19 e-mailů

28. črv - 13. črc

Mike Richards se zeptal, jestli je nějaký rozdíl mezi používáním swap souboru a swap oddílu. Andrew Morton odpověděl: V 2.6 jsou stejně spolehlivé, a pokud není swap soubor silně fragmentovaný, budou mít i stejný výkon. Mike napsal:

Jestli si najdeš čas, tak mám ještě tři otázky:

  1. Mluvíš o jádře 2.6 -- a co 2.4? O kolik méně spolehlivý nebo méně výkonný je swap soubor s jádrem 2.4?
  2. Může se swap soubor postupem času fragmentovat, nebo pořád dokola používá ty samé bloky? Tj. není-li fragmentovaný při vytvoření, zůstane tak po celou dobu své existence?
  3. Když se swap soubor vytváří na žurnálovacím souborovém systému (např. Ext3 nebo Reiser), má to nějaký výrazný vliv na výkonnost?

Na první otázku Andrew odpověděl: 2.4 je slabší: musí při swapout alokovat paměť z hlavního stránkového alokátoru. 2.6 se tomu vyhne. A ke třetí otázce Andrew řekl, že vytvoření swap souboru na žurnálovacím filesystému výkon nijak negativně neovlivní: Při zapnutí swapu [swapon] jádro vygeneruje mapu swap offset -> diskové bloky a tu od té chvíle používá k provádění swapovacího I/O přímo proti diskové frontě, čímž vynechává všechno kešování, metadata a kód filesystému.

O druhé otázce, ohledně fragmentace, Andrew řekl: Swap soubor vytvoř, když je filesystém ještě čerstvý a prázdný, pak bude hezky nefragmentovaný. Kernel už pak nikdy nebude bloky přidávat nebo ubírat. A také tě kernel nenechá použít pro swap soubor nějaký fragmentovaný soubor. Coywolf Qi Hunt poznamenal: Řekl bych/doufám, že dd jej vždy vytvoří nefragmentovaný. A Bernd Eckenfels odpověděl: Ne, vytváří soubory připojováním, stejně jako každý jiný zápis souborů. Mohli bychom uvažovat o volání, které by vždy vytvářelo nefragmentované soubory. Ale protože to ne vždy funguje, je nejlepší ty soubory vytvořit čerstvě nebo defragmentovat před použitím. Jeremy Nickurak k tomu řekl: Tohle ale zmaří největší výhodu swap souboru oproti swap oddílu: možnost snadno přenastavit velikost místa na harddisku, které je pro swap vyhrazeno.

Wakko Warner se pak zeptal: Je možné vytvořit velký soubor, aniž by byl ve skutečnosti celý zapsán na zařízení (tj. neinicializovaný)? Není žádný důvod, proč by měl být swap soubor plně inicializovaný. Stačí ta část, kterou vytvoří mkswap. Samozřejmě bych očekával, že tohle bude moci provést pouze root. O pár zpráv dále odpověděl Bernd: Neexistuje přenositelný/zdokumentovaný způsob, jak zvětšit soubor, aniž by filesystém nevynuloval obsah. Ale proč by to mělo vadit, takové soubory moc často nevytváříš? Kromě toho je pro operační systém lepší, může-li spoléhat na to, že stránka s nulami je stejná jako stránka v čerstvém swapu.

Nový ovladač Apple USB touchpadu pro nové PowerBooky, 28 e-mailů

8. črc - 12. črc

Stelian Pop napsal:

Jde o ovladač pro USB touchpad, který je v Apple PowerBoocích vyrobených po únoru 2005 (PowerBook5,6).

Je odvozen z ovladače appletrackpad od Johannese Berga (http://johannes .sipsolutions.net/PowerBook/touchpad/), ale v některých oblastech byl zdokonalen:

Ovladač byl několik týdnů testován čtenáři konference 'debian-powerpc' a myslím, že je připraven k začlenění do hlavního jádra.

Díky Johannesi Bergovi za rozlousknutí protokolu touchpadu, Franku Arnoldovi za další vylepšení a Alexi Harperovi za doplňující informací o tom, jak fungují senzory touchpadu.

Johannes Berg byl rád, že se ovladač dostane do jádra, a připojil pár technických rad, které Stelian přijal, a poslal aktualizovaný patch. Vojtěch Pavlík, Peter Osterlund a další se přidali s návrhy na vylepšení, které Stelian také implementoval.

BootUtils 0.0.5, 1 e-mail

9. črc

Nigel Kukard napsal:

Popis projektu:

BootUtils je sada utilit usnadňujících bootování moderních systémů založených na jádře 2.6. BootUtils jsou navrženy pro initramfs, ale uvítám dobrovolníky, kteří by chtěli přidat podporu pro initrd. Je automatizován proces nalezení root oddílu, připojení a přepnutí roota. Nalezení je zajištěno buď pomocí označení [label] nebo výslovným label= na příkazové řádce jádra. BootUtils také mohou vyhodit nouzovou příkazovou řádku, pokud nelze root oddíl připojit. A nebo spustit sshd a umožnit adminovi login, je-li stroj daleko.

Funkce:

Změny:

Web:

http://www.freshmeat.net/projects/bootutils/


V originálu Kernel Traffic 319 vyšla navíc ještě tato témata:

Tento článek vychází ze seriálu Kernel Traffic (www.kerneltraffic.org) a je zveřejněn pod licencí GPL verze 2.

Odkazy a zdroje

Kernel Traffic #319

Další články z této rubriky

Jaderné noviny – přehled za červen 2025
Jaderné noviny – přehled za květen 2025
Jaderné noviny – přehled za duben 2025
Jaderné noviny – přehled za březen 2025
Jaderné noviny – přehled za únor 2025

Diskuse k tomuto článku

Josef Kufner avatar 6.9.2005 02:00 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Bootutils
Odpovědět | Sbalit | Link | Blokovat | Admin
Bootutils vypadají celkem zajímavě...
Hello world ! Segmentation fault (core dumped)
6.9.2005 15:14 zde | skóre: 9 | blog: Linuch | Brno
Rozbalit Rozbalit vše Re: Bootutils
Jenom hromada kódu pro identifikaci typu block device a fs. Ten no-pivot-root hack jsem nepochopil, ale asi to bude něco tajného a velmi rafinovaného, když se to neobtěžovali nijak komentovat :)
Táto, ty de byl? V práci, já debil.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.