Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2866614.2866615acmotherconferencesArticle/Chapter ViewAbstractPublication PagesvamosConference Proceedingsconference-collections
research-article

A Quantitative Analysis of Variability Warnings in Linux

Published: 27 January 2016 Publication History

Abstract

In order to get insight into challenges with quality in highly-configurable software, we analyze one of the largest open source projects, the Linux kernel, and quantify basic properties of configuration-related warnings. We automatically analyze more than 20 thousand valid and distinct random configurations, in a computation that lasted more than a month. We count and classify a total of 400,000 warnings to get an insight in the distribution of warning types, and the location of the warnings. We run both on a stable and unstable version of the Linux kernel. The results show that Linux contains a significant amount of configuration-dependent warnings, including many that appear harmful. In fact, it appears that there are no configuration-independent warnings in the kernel at all, adding to our knowledge about relevance of family-based analyses.

References

[1]
I. Abal, C. Brabrand, and A. Wasowski. 42 Variability Bugs in the Linux Kernel: A Qualitative Analysis. In Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, ASE '14, pages 421--432, New York, NY, USA, 2014. ACM.
[2]
T. Berger, D. Nair, R. Rublack, J. M. Atlee, K. Czarnecki, and A. Wasowski. Three cases of feature-based variability modeling in industry. In ACM/IEEE 17th International Conference on Model Driven Engineering Languages and Systems (MODELS), 2014.
[3]
T. Berger, R. Rublack, D. Nair, J. M. Atlee, M. Becker, K. Czarnecki, and A. Wąsowski. A survey of variability modeling in industrial practice. In Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems, VaMoS '13, pages 7:1--7:8, New York, NY, USA, 2013. ACM.
[4]
T. Berger, S. She, R. Lotufo, A. Wasowski, and K. Czarnecki. A study of variability models and languages in the systems software domain. Software Engineering, IEEE Transactions on, 39(12):1611--1640, Dec 2013.
[5]
Y. Chen, F. Wu, K. Yu, L. Zhang, Y. Chen, Y. Yang, and J. Mao. Instant bug testing service for linux kernel. In High Performance Computing and Communications 2013 IEEE International Conference on Embedded and Ubiquitous Computing (HPCC_EUC), 2013 IEEE 10th International Conference on, pages 1860--1865, Nov 2013.
[6]
P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. Addison-Wesley, 2002.
[7]
M. D. Ernst, G. J. Badros, and D. Notkin. An empirical analysis of C preprocessor use. IEEE Transactions on Software Engineering, 28:1146--1170, 2002.
[8]
C. Kästner, S. Apel, and M. Kuhlemann. Granularity in Software Product Lines. In Proceedings of the 30th International Conference on Software Engineering (ICSE), pages 311--320. ACM, 2008.
[9]
M. Krone and G. Snelting. On the inference of configuration structures from source code. In Proceedings of the 16th International Conference on Software Engineering (ICSE), pages 49--57. IEEE Computer Society Press, 1994.
[10]
D. Le, E. Walkingshaw, and M. Erwig. #ifdef confirmed harmful: Promoting understandable software variation. In IEEE International Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pages 143--150, 2011.
[11]
J. Liebig, S. Apel, C. Lengauer, C. Kästner, and M. Schulze. An analysis of the variability in forty preprocessor-based software product lines. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE), pages 105--114. ACM, 2010.
[12]
F. Medeiros, M. Ribeiro, and R. Gheyi. Investigating preprocessor-based syntax errors. In Proceedings of the 12th International Conference on Generative Programming: Concepts & Experiences, GPCE, pages 75--84. ACM, 2013.
[13]
F. Medeiros, I. Rodrigues, M. Ribeiro, L. Teixeira, and R. Gheyi. An empirical study on configuration-related issues: Investigating undeclared and unused identifiers. In Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2015, pages 35--44, New York, NY, USA, 2015. ACM.
[14]
J. Melo and P. Borba. Improving modular reasoning on preprocessor-based systems. In Software Components Architectures and Reuse (SBCARS), Seventh Brazilian Symposium on, pages 11--19, 2013.
[15]
S. Nadi, C. Dietrich, R. Tartler, R. Holt, and D. Lohmann. Linux variability anomalies: What causes them and how do they get fixed? In Mining Software Repositories (MSR), 2013 10th IEEE Working Conference on, pages 111--120, May 2013.
[16]
K. Pohl, G. Bockle, and F. J. van der Linden. Software Product Line Engineering. Springer, 2005.
[17]
H. Spencer and G. Collyer. #ifdef considered harmful, or portability experience with C news. In Proceedings of the Usenix Summer Technical Conference, pages 185--198. Usenix Association, 1992.
[18]
T. Thüm, S. Apel, C. Kästner, I. Schaefer, and G. Saake. A classification and survey of analysis strategies for software product lines. ACM Comput. Surv., 47(1):6:1--6:45, June 2014.

Cited By

View all
  • (2024)Pragmatic Random Sampling of the Linux Kernel: Enhancing the Randomness and Correctness of the conf ToolProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672586(24-35)Online publication date: 2-Sep-2024
  • (2024)Options Matter: Documenting and Fixing Non-Reproducible Builds in Highly-Configurable SystemsProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644913(654-664)Online publication date: 15-Apr-2024
  • (2024)The Impact of Compiler Warnings on Code Quality in C++ ProjectsProceedings of the 32nd IEEE/ACM International Conference on Program Comprehension10.1145/3643916.3644410(270-279)Online publication date: 15-Apr-2024
  • Show More Cited By

Index Terms

  1. A Quantitative Analysis of Variability Warnings in Linux

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    VaMoS '16: Proceedings of the 10th International Workshop on Variability Modelling of Software-Intensive Systems
    January 2016
    116 pages
    ISBN:9781450340199
    DOI:10.1145/2866614
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    In-Cooperation

    • SBC: Sociedade Brasileira de Computação
    • FAPESB: Fundação de Amparo à Pesquisa do Estado da Bahia
    • University of Brasília: University of Brasília
    • Technische Universität Braunschweig

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 27 January 2016

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Highly-Configurable Systems
    2. Linux
    3. Preprocessors
    4. Quantitative Analysis
    5. Variability Warnings

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Funding Sources

    Conference

    VaMoS '16

    Acceptance Rates

    Overall Acceptance Rate 66 of 147 submissions, 45%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)6
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 22 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Pragmatic Random Sampling of the Linux Kernel: Enhancing the Randomness and Correctness of the conf ToolProceedings of the 28th ACM International Systems and Software Product Line Conference10.1145/3646548.3672586(24-35)Online publication date: 2-Sep-2024
    • (2024)Options Matter: Documenting and Fixing Non-Reproducible Builds in Highly-Configurable SystemsProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644913(654-664)Online publication date: 15-Apr-2024
    • (2024)The Impact of Compiler Warnings on Code Quality in C++ ProjectsProceedings of the 32nd IEEE/ACM International Conference on Program Comprehension10.1145/3643916.3644410(270-279)Online publication date: 15-Apr-2024
    • (2023)A feature commonality-based search strategy to find high -wise covering solutions in feature modelsConstraints10.1007/s10601-023-09366-z28:4(521-548)Online publication date: 1-Dec-2023
    • (2022)Feature subset selection for learning huge configuration spacesProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A10.1145/3546932.3546997(85-96)Online publication date: 12-Sep-2022
    • (2022)Search-based diverse sampling from real-world software product linesProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510053(1945-1957)Online publication date: 21-May-2022
    • (2022)A tool for analysing higher-order feature interactions in preprocessor annotations in C and C++ projectsProceedings of the 26th ACM International Systems and Software Product Line Conference - Volume B10.1145/3503229.3547027(70-73)Online publication date: 12-Sep-2022
    • (2022)Transfer Learning Across Variants and Versions: The Case of Linux Kernel SizeIEEE Transactions on Software Engineering10.1109/TSE.2021.311676848:11(4274-4290)Online publication date: 1-Nov-2022
    • (2022)Sampling configurations from software product lines via probability-aware diversification and SAT solvingAutomated Software Engineering10.1007/s10515-022-00348-829:2Online publication date: 1-Nov-2022
    • (2021)Finding broken Linux configuration specifications by statically analyzing the Kconfig languageProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3468578(893-905)Online publication date: 20-Aug-2021
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media