Write a Blog >>
ASE 2020
Mon 21 - Fri 25 September 2020 Melbourne, Australia
Tue 22 Sep 2020 08:20 - 08:40 at Koala - Maintenance and Evolution (2) Chair(s): Cuiyun Gao

The increasing adoption of the Linux kernel has been sustained by a large and constant maintenance effort, performed by a wide and heterogeneous base of contributors. One important problem that maintainers face in any code base is the rapid understanding of complex data structures. The Linux kernel is written in the C language, which enables the definition of arbitrarily uninformative datatype, via the use of casts and pointer arithmetic, of which doubly linked lists are a prominent example. In this paper, we explore the advantages and disadvantages of such lists, for expressivity, for code understanding, and for code reliability. Based on our observations, we have developed a toolset that includes inference of descriptive list types and a tool for list visualization. Our tools identify more than 10.000 list fields and variables in recent Linux kernel releases and succeeds in typing more than 90%. We show how these tools could have been used to detect previously fixed bugs and identify 6 new ones.

Tue 22 Sep
Times are displayed in time zone: (UTC) Coordinated Universal Time change

08:00 - 09:00: Maintenance and Evolution (2)Research Papers / Journal-first Papers at Koala
Chair(s): Cuiyun GaoHarbin Institute of Technology
08:00 - 08:20
Talk
Research Papers
Bruce CollieUniversity of Edinburgh, Philip GinsbachGitHub Software UK, Jackson WoodruffUniversity of Edinburgh, Ajitha RajanUniversity of Edinburgh, Michael F. P. O'BoyleUniversity of Edinburgh
Pre-print Media Attached
08:20 - 08:40
Talk
Research Papers
Nic VolanschiInria Bordeaux, Julia LawallInria
Pre-print
08:40 - 09:00
Talk
Journal-first Papers
Carlos Gavidia-CalderonUniversity College London, Federica SarroUniversity College London, UK, Mark HarmanUniversity College London, UK, Earl T. BarrUniversity College London, UK
Link to publication DOI Pre-print Media Attached