Portál AbcLinuxu, 8. května 2025 00:39
Jaderné noviny – 14. 6. 2018: První polovina začleňovacího okna 4.18
Články
-
Jaderné noviny – 14. 6. 2018: První polovina začleňovacího okna 4.18
Stav vydání jádra. První polovina začleňovacího okna 4.18.
Stav vydání jádra
Kernel release status. Jonathan Corbet. 13. června 2018
Začleňovací okno 4.18 bylo stále otevřené a zatím bylo do hlavního repozitáře začleněno na 11 tisíc neslučovacích sad změn. Otevřené mělo zůstat do 17. června, ale podstatná část změn už byla začleněna v době psaní tohoto textu. Vývojáři čekající na samý konec mohou být zklamáni: „ Jestli mi koncem začleňovacího okna přijde něco, co bude vypadat moc složitě, jenom s potměšilým chichotem udeřím do tlačítka ‚D‘ na své klávesnici.“
Stabilní aktualizace: 4.9.107 a 4.4.136 byly vydány 7. června; následovaly je aktualizace 4.17.1, 4.16.15 a 4.14.49 dne 12. června. Poté 13. června vyšly aktualizace 4.9.108, 4.4.137 a 3.18.113.
První polovina začleňovacího okna 4.18
4.18 Merge window, part 1. Jonathan Corbet. 8. června 2018
V době psaní tohoto článku bylo v začleňovacím okně 4.18 do hlavního repozitáře zařazeno 7 515 neslučovacích sad změn. Cyklus tedy měl solidně našlápnuto. Mezi změnami bylo nadprůměrné množství zajímavých funkcí – zajímají-li vás podrobnosti, čtěte dále.
Změny určitých architektur
- 32bitová architektura ARM se dočkala oprav Spectre první a druhé varianty.
- 32bitové systémy založené na x86 nyní disponují just-in-time překladačem programů eBPF.
Ústřední část jádra
- Přibylo nové rozhraní pro polling určené k užití s asynchronním I/O.
- Nový parametr
no5lvl
v příkazovém řádku vypne pětiúrovňové stránkování, a to i když ho jádro a hardware podporují – pro případ, že by tato nová funkce způsobovala problémy.
- Došlo k začlenění sady patchů úrovní výkonu „power domains“. Tento kód rozšiřuje subsystém správy napájení o schopnost řídit celý systém (včetně periferií) podle potřebného poměru výkonu a spotřeby.
- Trasovací značky (trace markers, stručně popsané v tomto článku) se nyní dají použít k vyvolání akcí jako např. generování histogramů. Podrobnosti najdete v tomto patchi s dokumentací.
- Regulace paměti řídících skupin podporuje nový parametr
memory.min
. Podobně jako již existující memory.low
je zamýšlen k zajištění určité spodní hranice, pod kterou nesmí objem RAM skupiny klesnout, ale má větší prioritu, když žádná uvolnitelná paměť není k dispozici. Dokumentace tohoto nového parametru je k mání v tomto commitu.
Souborové systémy
- Tentokrát se objevilo několik vylepšení Btrfs. Nově jde prázdný podsvazek smazat pomocí
rmdir()
, nejsou k tomu potřeba žádné zvláštní schopnosti. Novými příkazy ioctl()
FS_IOC_FSGETXATTR
a FS_IOC_FSSETXATTR
jde měnit různé atributy souborů (např. příznaky „pouze pro přidávání“ a „neměnitelný“). Přibyla také skupina nových příkazů ioctl()
, která neprivilegovaným uživatelům umožňuje zjistit si informace o podsvazcích.
- Uživatelé, kteří mají v uživatelském jmenném prostoru superuživatelská práva, nyní mohou připojovat souborové systémy, a to i když k tomu mimo daný jmenný prostor práva nemají. Aby souborový systém mohl být takto připojen, musí být patřičně označen. Zatím jediný označený souborový systém je modul FUSE („souborové systémy v uživatelském prostoru“), který se dočkal řady změn, aby to bylo vůbec možné.
- Modulu fscrypt, který se používá k šifrování souborových systémů F2FS a ext4, se dostalo podpory šifer Speck128 a Speck256. Speck je poněkud kontroverzní (o její propagaci se až podezřele intenzivně stará americká NSA), nicméně umožňuje šifrování i na těch nejlevnějších zařízeních. Ted Ts'o se vyjádřil, že na dražších zařízeních nejspíš nejspíš nebude vůbec povolená. „Ve skutečnosti to cílí na ‚Další Miliardu Uživatelů‘, tedy telefony jako Android Go, který byl ohlášen na konferenci Google I/O 2017 a má stát výrazně méně než 100 amerických dolarů, aniž by byl dotovaný.“
Podpora hardwaru
- Audio: zesilovače Realtek RT1305/RT1306, kodeky Realtek RT5668B, audio kodeky Mediatek MT6351, zesilovače reproduktorů Analog Devices SSM2305, I2S řadiče Atmel a kodeky Tempo Semiconductor TSCS454.
- Grafika: GPU NVIDIA Volta, paravirtualizované front-endové displeje Xen, MIPI-DSI řadiče Allwinner A31, můstky pro dekódování LVDS Thine THC63LVD1024, DPI/DSI můstky Cadence, škálovače obrazu Samsung Exynos, GPU Broadcom V3D 3.x (a novější), HDMI CEC enginy NXP TDA9950/TDA998X a GPU AMD Vega 20.
- Média: video zařízení používající I2C transporty, tunery Sharp QM1D1B0004, RX/TX řadiče Cadence CSI-2, senzory OmniVision OV7251, MIPI CSI-2 přijímače Renesas R-Car a senzory Sony IMX258. Ovladač atomisp (o 170 tisících řádek kódu) byl kvůli stagnujícímu pokroku odstraněn ze stromu staging.
- Různé: dotykové displeje ChipOne icn8505, LED desky Crane CR0014114, řadiče LED Spreadtrum Communications SC27xx a TI LM3601x, SPI FPGA řadiče Lattice MachXO2, řadiče EEPROM Rave SP, adaptéry IBM Virtual Management Channel, řadiče koncových bodů PCIe Rockchip a řadiče pro meziprocesorovou komunikaci STMicroelectronics STM32.
- Sítě: PHY Texas Instruments DP83TC822 a ethernetové přepínače Microsemi Ocelot.
- Řízení pinů: řadiče pinů Actions Semi S900, Renesas R8A77470 a R8A77990 a Allwinner H6 R_PIO.
- USB: USB Type-C řadiče Richtek RT1711H, virtuální huby Aspeed vHub, xHCI hostitelské řadiče HiSilicon STB, USB PHY Atheros AR71XX/9XXX a XS-PHY transceivery MediaTek.
Různé
- Kryptografický subsystém nyní podporuje kompresní algoritmus Zstandard a šifrovací algoritmy AEGIS a MORUS [PDF].
- Rozhraní statistik IPMI v
/proc
bylo odstraněno. Příslušné informace jsou stále dostupné v sysfs.
- Nový (patřičně nezdokumentovaný) mechanismus poskytuje formát metadat popisujících datové typy používané v programech BPF. Pro začátek se používá k čitelnému vypisování hodnot v mapování BPF.
Sítě
- Protokol TCP nyní za určitých podmínek podporuje operace přijetí bez kopírování.
- Došlo k začlenění subsystému
AF_XDP
. Umožňuje pod taktovkou jednoho či více programů BPF načtených z uživatelského prostoru komunikovat po síti bez kopírování. Tento commit obsahuje ukázkovou aplikaci AF_XDP
.
- Byl začleněn ústřední mechanismus bpfilter. Zatím není skutečně použitelný k filtrování paketů, ale jde o základ, na kterém se dá dále stavět. Zahrnuje to přepracovaný mechanismus pro manipulaci s bloby z uživatelského režimu, který pravděpodobně najde využití i leckde mimo bpfilter.
- Implementace protokolu TLS v jádře byla doplněna o podporu přenesení zátěže na vhodný hardware. Přenesení zátěže TLS nyní podporuje ovladač Mellanox mlx5.
- Protokol TCP podporuje kompresi SACK (selective acknowledgment). Smyslem je omezit množství paketů SACK, když už je síť přetížená.
- Nově je možné program BPF připojit k soketu a pustit ho na volání
sendmsg()
, aby mohl provádět úkony jako přepis IP adres v odchozím paketu.
Změny uvnitř jádra
Změnilo se rozhraní metody poll()
v rámci nového mechanismu pro polling AIO. Nová funkce vypadá následovně:
__poll_t (*poll_mask) (struct socket *sock, __poll_t events);
Na toto rozhraní přešlo mnoho interních implementací poll()
. Aby mohly podporovat polling AIO, ovladače by měly implementovat také novou metodu get_poll_head()
, která vrací čekací frontu použitou pro polling.
- Došlo k vylepšení implementace qspinlock, aby se zabránilo možnému vyhladovění.
Přibyla nová struktura __kernel_timespec
:
struct __kernel_timespec {
__kernel_time64_t tv_sec; /* seconds */
long long tv_nsec; /* nanoseconds */
};
Jejím smyslem je připravit se na systémová volání, která budou odolná vůči problému roku 2038, na 32bitových systémech, a to tak, že interní reprezentace času bude stejná ve 32bitové i 64bitové verzi. Nově ji po úpravě používá řada implementací systémových volání (např. nanosleep()
, které trpěly problémy spojenými s rokem 2038.
- Práce na odolnosti vůči problémům s rokem 2038 se dočkala také systémová volání Sys V pro komunikaci mezi procesy.
- Jazyk pro konfiguraci jádra se rozrostl o nový subsystém definice maker. Jde o přípravu na převod rozličných testů, prováděných při sestavení, ze souborů Make na
Kconfig
. Podrobnosti o tom, jak to funguje, najdete v Documentation.kbuild/kconfig-macro-language.
- Byla začleněna řada vylepšení
struct page
diskutovaných na LSFMM 2018.
Podle obvyklého harmonogramu se začleňovací okno cyklu 4.18 mělo uzavřít 17. června. Očekávalo se však, že druhá polovina nejspíš nebude tak rušná jako ta první, protože Linus Torvalds naznačil, že tou dobou bude na cestách. Pokud vše půjde podle plánu, finální vydání 4.18 můžeme čekat 5. nebo 12. srpna.
Odkazy a zdroje
Další články z této rubriky
Diskuse k tomuto článku
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.