Detail práce

Static Analysis Using Facebook Infer Focused on Errors in RCU-Based Synchronisation

Bakalářská práce Student: Marek Daniel Akademický rok: 2021/2022 Vedoucí: Vojnar Tomáš, prof. Ing., Ph.D.
Název česky
Statická analýza v nástroji Facebook Infer zaměřená na chyby v RCU synchronizaci
Jazyk práce
anglický
Abstrakt

Read Copy Update (RCU) je synchronizační mechanismus, který se primárně používa v jádře Linuxu. Mezi jeho vyhledávané vlastnosti patří téměř nulová režie a vysoká rychlost při čtení sdílené paměti. RCU má soubor pravidel používaní, která je potřeba dodržovat, aby synchronizace fungovala správně. Náš výzkum ukázal, že neexistuje žádný analyzátor, který by pořádně kontroloval dodržování pravidel používaní RCU. K překonání tohoto problému jsme navrhli nový analyzátor, který se zaměřuje na porušování pravidel používaní RCU. Analyzátor je založen na statické analýze a implementován jako modul pro nástroj pro statickou analýzu Facebook/Meta Infer. Tato platforma byla vybrána, protože poskytuje škálovatelnost, která je potřebná při práci s tak rozsáhlým softwarem, jakým je Linuxové jádro. Navržený analyzátor je schopen detekovat více porušení pravidel používaní RCU, z nichž každé vede buď na race condition, nebo uváznutí. Je také schopen generovat varování pro situace, kdy je použito volání zastaralé funkce nebo když jsou detekována nekompatibilní primitiva RCU čtecího a zapisovacího procesu. Analyzátor je první svého druhu a může se stát základem pro budoucí vývoj analyzátorů v oblasti Read Copy Update. Kromě toho může být použit jako testovací nástroj v cyklu vývoje jádra Linuxu.

Klíčová slova

Read Copy Update, RCU, Porušení RCU pravidel, Facebook/Meta Infer RCU analyzátor, Statický RCU analyzátor, RCU analyzátor

Ústav
Studijní program
Informační technologie
Soubory
Stav
obhájeno, hodnocení A
Obhajoba
13. června 2022
Oponent
Průběh obhajoby

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.

Otázky u obhajoby
  1. V práci popisujete niekoľko rôznych typov chýb pri práci s RCU, ktoré ste odhalili pri analýze danej technológie. Existujú podľa Vás ďalšie typy chýb, ktoré Váš zoznam nepokrýva?
  2. Z popisu "less-or-equal" operátoru vyplýva, že na porovnanie dvoch abstraktných kontextov stačí, že obsahujú rovnaké zložky. Akým spôsobom sa zohľadňujú jednotlivé vlastnosti týchto zložiek (napr. skóre u post-conditions)?
Komise
Vojnar Tomáš, prof. Ing., Ph.D. (UITS FIT VUT), předseda
Grézl František, Ing., Ph.D. (UPGM FIT VUT), člen
Martínek Tomáš, doc. Ing., Ph.D. (UPSY FIT VUT), člen
Peringer Petr, Dr. Ing. (UITS FIT VUT), člen
Ryšavý Ondřej, doc. Ing., Ph.D. (UIFS FIT VUT), člen
Citace
MAREK, Daniel. Static Analysis Using Facebook Infer Focused on Errors in RCU-Based Synchronisation. Brno, 2022. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. 2022-06-13. Vedoucí práce Vojnar Tomáš. Dostupné z: https://www.fit.vut.cz/study/thesis/25138/
BibTeX
@bachelorsthesis{FITBT25138,
    author = "Daniel Marek",
    type = "Bakal\'{a}\v{r}sk\'{a} pr\'{a}ce",
    title = "Static Analysis Using Facebook Infer Focused on Errors in RCU-Based Synchronisation",
    school = "Vysok\'{e} u\v{c}en\'{i} technick\'{e} v Brn\v{e}, Fakulta informa\v{c}n\'{i}ch technologi\'{i}",
    year = 2022,
    location = "Brno, CZ",
    language = "english",
    url = "https://www.fit.vut.cz/study/thesis/25138/"
}
Nahoru