Portál AbcLinuxu, 25. dubna 2024 21:11

Jaderné noviny – 6. 7. 2017: Statistiky vývojového cyklu 4.12

10. 8. 2017 | Redakce
Články - Jaderné noviny – 6. 7. 2017: Statistiky vývojového cyklu 4.12  

Stav vydání jádra. Na opravě Stack Clash se stále pracuje. Citáty týdne: Ingo Molnár, Josh Poimboeuf a Linus Torvalds. Statistiky vývojového cyklu 4.12.

Stav vývoje jádra

Jádro 4.12 bylo vydáno 2. července. Linusovy komentáře najdete v oznámení. Některé z hlavních novinek ve 4.12 zahrnují plánovače blokového I/O BFQ a Kyber, busy-polling síťových soketů v epoll_wait(), model hybridní konzistence pro patchování za chodu, framework pro TEE (trusted execution environment) a další. Stránka KernelNewbies 4.12 již obsahuje bližší přehled.

V době psaní tohoto článku se otevřelo začleňovací okno pro cyklus 4.13. Více informací o začleňovacím okně přineseme v příštím překladu LWN.

Stabilní aktualizace: 4.11.8, 4.9.35, 4.4.75 a 3.18.59 byly vydány 29. června. Následovaly je aktualizace 4.11.9, 4.9.36, 4.4.76 a 3.18.60, které byly vydány 5. července.

Na opravě Stack Clash se stále pracuje

Jak bylo zmíněno minulý týden, příběh chyby Stack Clash stále pokračuje. V tomto díle Ben Hutchings hlásí několik nových regresí, způsobených opravami začleněnými do jádra 4.12 a portovanými zpět do stabilních stromů. Ty vedly k nové řadě oprav – a zpochybnění celého úsilí některými vývojáři.

První regrese nastane s programy v Rustu na architektuře PowerPC. Vypadá to, že Rust přidává zásobníku vlastní ochrannou stránku, která brání zásobníku v rozšiřování v důsledku interakce s relativně velkou (16MB) mezerou zásobníku, která se na této architektuře používá. Oprava bude v tomto případě nejspíš zahrnovat explicitní povolení rozšíření zásobníku přes mapování PROT_NONE (což je v podstatě ochranná stránka), které stojí v cestě.

Další problém ovlivňuje kód v Javě běžící v LibreOffice na 32bitových systémech. Příčinou by mohla být stará obezlička týkající se konfliktu s mechanismem Exec Shield. Napravit tenhle problém bude složitější. Může být zapotřebí umožnit nastavení mezer zásobníků pro jednotlivé procesy a poté sdělit distributorům, kteří nadále dodávají 32bitovou verzi, aby pro LibreOffice (a možná ještě další programy, které používají Javu) přidali speciální wrapper zmenšující mezeru.

To vše vedlo Andyho Lutomirského k tomu, aby si postěžoval, že všechna ta práce na mezerách zásobníku je změnou ABI způsobující regrese, což by se nemělo dít. „Všichni si uvědomujeme, že tento problém je přetrvávající chybou *GCC*, ale chováme se, jako by šlo Významnou ® chybu jádra, kterou Je Nutné Opravit®, takže se může rozbít ABI.“ Navrhl změny zcela odstranit a přehodnotit celý problém v kontextu tvrzení jádra, zatímco se bude čekat na opravu překladače. Takto velká změna je v tomto okamžiku nepravděpodobná, ale pokud se budou regrese dále hromadit, je možné, že se postoje vývojářů ještě mohou změnit.

Citáty týdne

'struct troll_entry' má něco do sebe.

„Orel“ (eagle) je podle mého názoru ještě lepší: větší než trpaslík, ale o mnoho rychlejší – a orli jsou krásní! Navíc je to jméno o dvě písmena kratší než „undwarf“, takže výhra pro všechny.

Ingo Molnár

Poté, co jsem provedl nějaký ten průzkum (prošel jsem si národy Středozemě na Wikipedii), mým favoritem je „Skřet“ (orc). Nemám k tomu jiný důvod, než že „orc unwinder“ zní drsně. A je to krátké. A také, skřeti jsou nepřítelem trpaslíků :-)

Líbila se mi symbolika „Orla“, ale bohužel i náš vesmír má orly, což zakrývá spojitost s Tolkienem a germánskou mytologií. A myslím, že se všichni shodneme, že takové konotace jsou pro datový formát odvíjení (unwinder data format) velmi důležité.

Josh Poimboeuf

Pokud vyřešíte světový hlad a napíšete ovladač, který léčí rakovinu, určitě ho povolte jako výchozí.

Linus Torvalds

Statistiky vývojového cyklu 4.12

Linus Torvalds 2. července vydal jádro 4.12 a uzavřel tak jeden z nejrušnějších vývojových cyklů v historii jádra. Tradice si žádá, abychom zveřejnili přehled o tomto vydání jádra a kdo do něj přispěl. Cyklus 4.12 byl v mnoha ohledech poměrně běžný, ale je na něm vidět růst komunity, která se na vývoji podílí.

Jádro 4.12 obsahuje 14 821 neslučovacích sad změn od celkem 1825 vývojářů. Nejde o nejvyšší počet změn, jaké jsme kde viděli – vydání 4.9 si tento rekord zřejmě ještě nějaký čas udrží – ale jedná se o solidní druhé místo. Vydání 4.12 nicméně nastavilo nový rekord v počtu vývojářů a v počtu vývojářů, kteří přispěli vůbec poprvé (334). Jedná se také o významné vydání, co do růstu objemu jaderného kódu: 4.12 má o milion řádků kódu více než jeho předchůdce.

Nejaktivnější vývojáři cyklu 4.12 byli:

Nejaktivnější vývojáři cyklu 4.12
Podle počtu sad změn
Chris Wilson3652,5 %
Al Viro1431,0 %
Christoph Hellwig1360,9 %
Tobin C, Harding1340,9 %
Johan Hovold1240,9 %
Colin Ian King1160,8 %
Geert Uytterhoeven1160,8 %
Jan Kára1150,8 %
Arnd Bergmann1130,8 %
Hans de Goede1020,7 %
Daniel Vetter1000,7 %
Dan Carpenter980,7 %
Arnaldo Carvalho de Melo920,6 %
Alex Deucher910,6 %
Markus Elfring890,6 %
Mauro Carvalho Chehab860,6 %
Ville Syrjälä830,6 %
Yan-Hsuan Chuang830,6 %
Javier Martinez Canillas800,5 %
Marc Zyngier780,5 %
Podle počtu změněných řádek
Alex Deucher36917925,2 %
Alan Cox20955614,3 %
Hans de Goede1121147,7 %
Hans-Christian Egtvedt271001,9 %
Gilad Ben-Yossef175931,2 %
Chris Wilson156701,1 %
Eric Huang108510,7 %
Steven J. Hill108370,7 %
Paolo Valente105050,7 %
Yan-Hsuan Chuang102890,7 %
Geert Uytterhoeven95800,7 %
Mauro Carvalho Chehab88870,6 %
Christoph Hellwig82850,6 %
Javier González82110,6 %
Ioana Radulescu81230,6 %
Benjamin Herrenschmidt80160,5 %
Boris Brezillon79430,5 %
Jie Deng77410,5 %
Ken Wang69040,5 %
Neil Armstrong68870,5 %

Již druhý cyklus v řadě přispěl nejvíce sad změn Chris Wilson, z toho téměř všechny se týkaly grafického ovladače Intel i915. Al Viro jako obvykle pracoval na vrstvě virtuálního souborového systému, ale většina jeho patchů tentokrát pochází z přepracovaného nízkoúrovňového kódu přístupu uživatelského prostoru – což byla práce, která vyžadovala docela dost změn v kódu závislém na architektuře. Christoph Hellwig učinil řadu vylepšení blokové vrstvy a vrstvy souborového systému. Tobin Harding se soustředil na opravy připravených změn a Johan Hovold velmi intenzivně pracoval na subsystému USB a dalších věcech.

V cyklu, kdy jádro roste o milion řádek, lze očekávat, že někteří vývojáři přidají hodně kódu. Alex Deucher přidal více definic registrů do grafického ovladače AMD: drivers/gpu/drm/amd/include nyní obsahuje přes 800 tisíc řádek těchto definic. Alan Cox přidal ovladače fotoaparátů Intel „atomisp“ do stromu připravených změn. Hans de Goede přidal ovladač WiFi rtl8723bs (a další věci), Hans-Christian Egtvedt narušil trend odstraněním neudržované architektury AVR32 a Gilad Ben-Yossef přidal ovladače šifrovacích akcelerátorů ARM TrustZone CryptoCell C7XX.

Práci na vývoji jádra 4.12 podporovalo 233 zaměstnavatelů, což je počet, který více méně odpovídá předchozím vydáním. Mezi ty nejaktivnější patřili:

Nejaktivnější zaměstnavatelé cyklu 4.12
Podle počtu sad změn
Intel234013,9 %
(neznámý)14478,6 %
Red Hat12577,5 %
(žádný)11737,0 %
IBM8765,2 %
Linaro5703,4 %
AMD5263,1 %
Google5153,1 %
SUSE4822,9 %
(konzultanti)4582,7 %
Samsung3482,1 %
ARM3382,0 %
Renesas Electronics3031,8 %
Mellanox2841,7 %
Oracle2381,4 %
Broadcom2301,4 %
Free Electrons2211,3 %
NXP Semiconductors2121,3 %
Huawei Technologies1991,2 %
Texas Instruments1911,1 %
Podle počtu řádek
AMD40600925,8 %
Intel33063721,0 %
Red Hat17106910,9 %
IBM501983,2 %
Linaro435252,8 %
(neznámý)396292,5 %
(žádný)317312,0 %
ARM307952,0 %
Cisco300161,9 %
Cavium297371,9 %
Samsung254421,6 %
Google228141,5 %
NXP Semi.207671,3 %
(konzultanti)179411,1 %
Renesas Electronics176631,1 %
Mellanox166381,1 %
Free Electrons166361,1 %
Realtek124140,8 %
Synopsys122010,8 %
SUSE119290,8 %

V této tabulce se v posledních letech nekonají žádná velká překvapení. Vývoj jádra se hýbe kupředu rychle, ale komerční ekosystémy kolem něj se mění spíše pomalu.

Na jiný pohled vede otázka, na čem společnosti vlastně pracují. Když se podíváme na data od vydání 4.7 (v podstatě data za rok) a vybereme si jen příspěvky Intelu, uvidíme něco takového:

Intel (celkem 9192)
ProcentAdresářPoznámky
38,3 %drivers/gpu 32 % drivers/gpu/drm/i915
10,2 %include
9,6 %driver/net
5,4 %drivers/staging vesměs souborový systém Lustre
4,5 %arch/x86
4,0 %drivers/infiniband
3,5 %sound
3,4 %drivers/usb
3,1 %tools

Práce Intelu se tedy soustředí hlavně na podporu vlastního hardwaru, žádné velké překvapení. Intel je pravidelně největším přispěvatelem do jádra, ale ponechává vývoj ústředních částí jádra na ostatních.

Výsledky pro Red Hat vypadají jinak (opět jde o patche od vydání 4.7):

Red Hat (celkem 4947)
ProcentAdresářPoznámky
15,8 %include
14,8 %fs
11,8 %toolsvesměs perf
10,6 %net
10,3 %arch/x86
9,3 %drivers/gpu
8,1 %kernel
5,5 %drivers/net
4,0 %drivers/md
2,6 %arch/arm

Red Hat má jednoznačně obecnější roli ve vývoji jádra, dělá změny napříč celým stromem a ústředními částmi.

Další dva řádky v tabulce představují dobrovolníky a neznámé přispěvatele. Následující ukazuje, na čem pracují:

Neznámé zařazení (celkem 5080)
ProcentAdresářPoznámky
22,6 %drivers/staging
7,8 %net
7,2 %include
6,6 %drivers/net
5,3 %arch/arm
5,3 %drivers/gpu
5,3 %Documentationvesměs vazby mezi zařízeními a stromem
4,7 %sound
Bez zařazení (4277 celkem)
ProcentAdresářPoznámky
14,5 %drivers/net
12,1 %drivers/staging
10,7 %netvesměs netfilter a batman-adv
7,6 %include
6,7 %drivers/media
5,8 %Documentation
5,4 %arch/arm
4,9 %drivers/gpu
3,4 %fs

Zde jsou výsledky dalších společností pro doplnění:

IBM (2605 celkem)
ProcentAdresářPoznámky
35,4 %arch/powerpc
17,0 %arch/s390
7,7 %drivers/s390
5,9 %tools
5,7 %include
5,5 %drivers/net
5,2 %kernel
AMD (celkem 1788)
ProcentAdresářPoznámky
82,7 %drivers/gpu/drm/amd
4,6 %drivers/gpu/drm/radeon
4,6 %include
2,6 %arch/x86
Linaro (celkem 4084)
ProcentAdresářPoznámky
31,7 %drivers/stagingvesměs greybus
7,7 %arch/arm
6,7 %include
5,4 %arch/arm64
4,3 %drivers/net
4,0 %Documentationvazby mezi zařízeními a stromem
3,6 %drivers/gpu
2,6 %drivers/mmc
Google (celkem 1956)
ProcentAdresářPoznámky
17,4 %netpředevším core a ipv4
14,7 %include
11,1 %drivers/staginggreybus
10,2 %drivers/pci
9,1 %drivers/net
8,6 %fs
5,6 %arch/x86
4,5 %drivers/input
4,3 %Documentation
3,7 %mm
SUSE (celkem 1896)
ProcentAdresářPoznámky
28,4 %fs15 % btrfs
16,5 %include
11,1 %mm
8,4 %sound
8,3 %arch/x86
6,8 %drivers/scsi
6,3 %drivers/md
4,2 %kernel
4,0 %Documentation

Je zřejmé, že každá společnost přispívá do jádra z vlastních důvodů a podle toho se také věnuje určitým částem. Hardwarové firmy mají tendenci nehledět příliš nad rámec podpory vlastních produktů, zatímco společnosti pracující přímo s koncovými uživateli mají obecnější zaměření. Tak nějak se jim všem daří pracovat dohromady, udržovat proces vývoje jádra v chodu a konzistentně a předvídatelně rozšiřovat komunitu.

Odkazy a zdroje

LWN.net
Statistiky vývojového cyklu 4.12

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

Jaderné noviny – přehled za březen 2024
Jaderné noviny – přehled za únor 2024
Jaderné noviny – přehled za leden 2024
Jaderné noviny – přehled za prosinec 2023
Jaderné noviny – přehled za listopad 2023

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