GNU/Linux >> Znalost Linux >  >> Linux

Průběžné testování integrace linuxového jádra

Se 14 000 sadami změn na vydání od více než 1 700 různých vývojářů je jasné, že linuxové jádro se rychle vyvíjí a přináší spoustu složitosti. Chyby jádra se pohybují od malých nepříjemností po větší problémy, jako jsou pády systému a ztráta dat.

Vzhledem k tomu, že volání po kontinuální integraci (CI) roste pro stále více a více projektů, tým Continuous Kernel Integration (CKI) pokračuje vpřed s jediným posláním:zabránit začleňování chyb do jádro.

Problémy s testováním Linuxu

Mnoho distribucí Linuxu testuje linuxové jádro v případě potřeby. K tomuto testování často dochází v době vydání, nebo když uživatelé najdou chybu.

Někdy se objeví nesouvisející problémy a správci se snaží najít, který patch v changesetu plném desítek tisíc patchů způsobil novou, nesouvisející chybu. Diagnostika chyby může vyžadovat specializovaný hardware, řadu spouštěčů a specializované znalosti dané části jádra.

CI a Linux

Většina moderních softwarových úložišť má nějaký druh automatizovaného testování CI, které testuje potvrzení, než si najdou cestu do úložiště. Toto automatické testování umožňuje správcům najít problémy s kvalitou softwaru spolu s většinou chyb kontrolou zprávy CI. Jednodušší projekty, jako je knihovna Python, přicházejí s mnoha nástroji, které tento proces usnadňují.

Linux musí být před jakýmkoli testováním nakonfigurován a zkompilován. To vyžaduje čas a výpočetní zdroje. Kromě toho musí toto jádro kvůli testování zavést na virtuálním počítači nebo na kovovém stroji. Získání přístupu k určitým architekturám systému vyžaduje dodatečné náklady nebo velmi pomalou emulaci. Odtud musí někdo identifikovat sadu testů, které spustí chybu nebo ověří opravu.

Jak funguje tým CKI

Tým CKI ve společnosti Red Hat v současné době sleduje změny několika interních jader a také upstream jader, jako je stabilní strom jádra. V každém úložišti sledujeme dvě kritické události:

  1. Když správci sloučí požadavky na stažení nebo opravy a výsledné potvrzení v úložišti se změní.

  2. Když vývojáři navrhnou změny pro sloučení pomocí patchworku nebo stabilní fronty oprav.

Jak k těmto událostem dojde, automatizace začne fungovat a GitLab CI pipelines zahájí proces testování. Jakmile pipeline spustí linting skripty, sloučí případné záplaty a zkompiluje jádro pro více architektur, začne skutečné testování. Zkompilujeme jádra za méně než šest minut pro čtyři architektury a odešleme zpětnou vazbu do stabilního mailing listu obvykle za dvě hodiny nebo méně. Každý měsíc probíhá více než 100 000 testů jádra a bylo dokončeno více než 11 000 kanálů GitLab (od ledna 2019).

Každé jádro se spouští na své nativní architektuře, která zahrnuje:

● aarch64:64bitový ARM, jako je Cavium (nyní Marvell) ThunderX.

● ppc64/ppc64le:Big and little endian IBM POWER systémy.

● s390x:sálové počítače IBM Zseries.

● x86_64:Pracovní stanice, notebooky a servery Intel a AMD.

Na těchto jádrech běží více testů, včetně Linux Test Project (LTP), který obsahuje nesčetné množství testů využívajících společný testovací svazek. Můj tým CKI vytvořil přes 44 testů s otevřeným zdrojovým kódem a další jsou na cestě.

Zapojte se

Úsilí o testování upstream jádra den ode dne roste. Mnoho společností poskytuje testovací výstup pro různá jádra, včetně Google, Intel, Linaro a Sony. Každé úsilí je zaměřeno na přinášení hodnoty do upstream jádra a také zákaznické základny každé společnosti.

Pokud se vy nebo vaše společnost chcete připojit k tomuto úsilí, přijďte na konferenci Linux Plumbers Conference 2019 v Lisabonu v Portugalsku. Připojte se k nám na Kernel CI hackfest během dvou dnů po konferenci a řiďte budoucnost rychlého testování jádra.

Další podrobnosti najdete ve snímcích z mého přednesu na Texas Linux Fest 2019.


Linux
  1. Linux – podílíte se na e-mailové konferenci jádra?

  2. Linuxové jádro pro Nintendo Wii?

  3. Linux – Povolení Iommu v jádře pro průchod grafické karty?

  1. Průvodce linuxovým terminálem pro začátečníky

  2. Kali na podsystému Windows pro Linux

  3. Kali Linux pro Gemini PDA

  1. Analyzujte linuxové jádro pomocí ftrace

  2. 8 tipů pro příkazový řádek Linuxu

  3. Linuxové jádro:5 nejlepších inovací