Statická analýza v nástroji Facebook Infer zaměřená na chyby v RCU synchronizaci
Static Analysis Using Facebook Infer Focused on Errors in RCU-Based Synchronisation

Author
Advisor
Vojnar, TomášReferee
Malík, ViktorGrade
AAltmetrics
Metadata
Show full item recordAbstract
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. Read Copy Update (RCU) is a synchronization mechanism, found mostly in the Linux kernel. Its sought-after features include almost zero overhead and high speed when reading shared memory. RCU has a set of rules of use, which need to be followed in order for the synchronization to work properly. To the best of our knowledge, there is no analyzer that sufficiently verifies if the RCU rules of use are adhered to. To overcome this, we propose a new analyzer, with the focus on finding violations in the use of RCU rules. The analyzer is based on static analysis and implemented as a module for the static analysis framework Facebook/Meta Infer. This platform was chosen because it provides scalability, which is needed when dealing with such an extensive software as the Linux kernel. The designed analyzer is capable of detecting multiple different ways in which the RCU usage rules can be broken, each causing either a race condition or a deadlock. It is also capable of generating warnings for situations when a deprecated function call is used or when the use of incompatible RCU reader and writer primitives is detected. The analyzer is the first of its kind. It may become a basis for future analyzer development in the field of Read Copy Update. Furthermore, it may be used as a test tool in the Linux kernel development cycle.
Keywords
Read Copy Update, RCU, Porušení RCU pravidel, Facebook/Meta Infer RCU analyzátor, Statický RCU analyzátor, RCU analyzátor, Read Copy Update, RCU, RCU rules violation, Facebook/Meta Infer RCU analyzer, Static RCU analyzer, RCU analyzer, RCU checkerLanguage
angličtina (English)Study brunch
Informační technologieComposition of Committee
prof. Ing. Tomáš Vojnar, Ph.D. (předseda) doc. Ing. Ondřej Ryšavý, Ph.D. (místopředseda) Ing. František Grézl, Ph.D. (člen) Ing. Tomáš Martínek, Ph.D. (člen) Dr. Ing. Petr Peringer (člen)Date of defence
2022-06-13Process of defence
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: 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? 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)?Result of the defence
práce byla úspěšně obhájenaPersistent identifier
http://hdl.handle.net/11012/207395Source
MAREK, D. Statická analýza v nástroji Facebook Infer zaměřená na chyby v RCU synchronizaci [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2022.Collections
- 2022 [309]
Citace PRO
Related items
Showing items related by title, author, creator and subject.
-
Porovnávání 3D multispektrálních snímků lidského těla
Šopák, PetrTáto práce se zabývá vytvoření nové aplikace RoScan Analyzer 2.0 vycházející z původní aplikace Roscan Analyzer pomocí jednoho z aktuálních herních platforem. Táto aplikace slouží pro vymodelování 3D modelu oskenované části ... -
Dynamický signální analyzátor
Grohoľ, StanislavPráca sa zaoberá určovaním prenosu dvojbranu pomocou vlastného dynamického signálneho analyzátora (DSA) a s tým spojenou problematikou. DSA pozostáva z prevodníkovej karty firmy National Instruments. V práci sú uvedené ... -
Měření na vektorovém obvodovém analyzátoru
Lapčík, JosefBakalářská práce je zaměřena na použití vektorového obvodového analyzátoru pro měření činitele odrazu, přenosu a rozptylových parametrů. V práci jsou popsány hlavní části vektorového obvodového analyzátoru a princip ...