Linux 6.12 by mohl mít podporu „PREEMPT_RT“ v reálném čase

Preempt-RT je modifikace, která umožňuje úkolům s vyšší prioritou přerušit úkoly s nižší prioritou.

El koncept systému reálného času Není to něco, na co se v posledních letech v Linuxu myslelo, od té myšlenky začal téměř před 20 lety, přesněji v roce 2005 jako součást projektu „Realtime-Preempt“ („-rt“) s vývojem režimu PREEMPT_RT pro linuxové jádro.

Pro ty co nevědí PREEMPT_RT, měli by to vědět je to náplast pro linuxové jádroa převede operační systém na systém v reálném čase (v reálném čase). Hlavním cílem PREEMPT_RT je snížit latenci a zajistit předvídatelnost při provádění úloh, což je klíčové v aplikacích, které vyžadují rychlé odezvy.

Jednodušeji řečeno, můžeme říci, že PREEMPT_RT umožňuje přerušení téměř všech částí jádra, což snižuje latenci. Na rozdíl od standardního jádra nelze přerušit všechny sekce, což může způsobit zpoždění v době odezvy.

Od roku 2015 je projekt pod dohledem Linux Foundation a doposud byla implementace PREEMPT_RT módu nabízena formou externích patchů. Na základě těchto patchů se distribuce jako např RHEL, SUSE a Ubuntu vytvořily edice svých produktů v reálném čase, velmi žádaný v odvětvích, jako jsou finanční systémy, zařízení pro zpracování zvuku a videa, letecké systémy, lékařství, robotika, telekomunikace a průmyslové aplikace, kde je nezbytné zaručit předvídatelné doby odezvy na události.

En 2019 začal proces propagace patchů vyvinutých v projektu PREEMPT_RT do hlavního linuxového jádra. V jádře verze 5.3 byla do konfiguračního souboru zahrnuta volba PREEMPT_RT pro aktivaci režimu reálného času.

Bity printk požadované pro PREEMPT_RT jsou umístěny v linux-next. Tento byla poslední známá překážka pro PREEMPT_RT. Fronta RT má také "atomová konzole" pro UART 8250, která ještě není in linux-next. To znamená chování "starší konzoly", jako když se netiskne z atomový kontext v případech nouze. Řadič 8250 UART je jediný která dnes poskytuje podporu „atomové konzole“.

Vše Tato práce brzy přinese ovoce., protože kompletní integrace nezbytných změn trvala pět let a blíží se ke konci, protože se očekává, že ve verzi 6.12 bude možné jádro zkompilovat v režimu PREEMPT_RT bez nutnosti použití dalších záplat.

Je zmíněno, že poslední překážka který zabránil aktivaci PREEMPT_RT byl nedostatek podpora neblokovaného atomového výstupu pomocí funkce printk. Tato funkce již byla přijata ve větvi linux-next. Kromě toho čeká na implementaci neblokující atomové konzole pro řadič 8250 UART, jejíž absence v současnosti brání výstupu nouzových zpráv do konzole z kódu prováděného v atomových kontextech.

Po začlenění bitů printk bylo možné povolit PREEMPT_RT na X86, ARM64 a Risc-V. Tyto tři sloučené architektury vyžadovaly v průběhu let změny.
let, což mě nechává v pozici, kde nemám žádné zásadní změny
fronta, která by je ovlivnila. ARM a POWERPC zbývají některé zásadní opravy…

Vývojáři jádra Linuxu oznámili integraci posledních nezbytných změn ve větvi linux-next, který bude použit ke kompilaci verze 6.12. Tyto změny umožní zkompilovat jádro s volbou PREEMPT_RT, která zavádí možnosti v reálném čase.

Jakmile budou tyto změny přijaty na hlavní větvi, režim PREEMPT_RT Bude k dispozici pro architektury X86, ARM64 a RISC-V. Podpora architektur ARM a POWERPC bude přidána později, protože potřebné záplaty ještě nebyly plně integrovány.

Za zmínku stojí, že navrhované změny ještě nejsou konečné a je možné, že pokud PREEMPT_RT nedorazí do větve 6.12, bude integrován až příští rok ve verzi 6.13.

Konečně, pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti v následující odkaz.