ConfigFix: interactive configuration conflict resolution for the Linux kernel

26 views
Skip to first unread message

Patrick Franz

unread,
Sep 11, 2020, 8:52:11 AM9/11/20
to kconfig-sat
Hi everyone,

On behalf of the team members (yours truly, Ibrahim Fayaz, Evgeny
Groshev, Sarah Nadi, and Thorsten Berger, see below), I’m happy to give
you an update about our work on the tool configfix, which integrates
conflict-resolution support into xconfig. When a user configures the Linux
kernel and runs into a conflict (a configuration option cannot be enabled,
since it contradicts other, previously selected options), configfix
calculates fixes that can be applied automatically to satisfy these
dependencies. It is especially helpful for resolving transitive
dependencies, for instance, when enabling or disabling a configuration
option requires enabling or disabling a number of other options.

A demo can be seen in this video: https://youtu.be/OJz3uGQ5hR4

Our source repository contains instructions to run configfix and how to
contribute: https://bitbucket.org/easelab/configfix .

The prototype can already be tested. As some features do not work fully
yet (e.g., the colorization seen in the video), we welcome any feedback:
* When conflicts cannot be resolved or fixes cannot be applied, please
report the issue in the Bitbucket repository above.
* Provide general feedback on the user interface. Is anything unclear or
confusing?
* Let us know about scenarios that result in poor performance.
* If you have any concrete configuration scenario you run into before and
are interested in including it in our automated tests, please let us
know.

As of now, it is required to install Glib to use configfix. I know that
this is not an ideal situation and I would like to get rid of this
dependency, so I looked at tools/include/linux as Luis had suggested
last year. Unfortunately, there is no dynamically sized array and I'd
like to avoid the linked lists. What would be the preferred way to deal
with the situation? Copy maybe the relevant parts from Glib? The
library's LGPL should allow that.

Finally, we would like to mention that this work has been a result of
years of research in the area of highly configurable software, and
specifically our work on the Linux kernel. Many others have contributed
to such efforts and we would like to thank them all. If interested, we
list some of our previous related papers at the end of this email.

Best regards,
Patrick Franz (Chalmers | Univ. of Gothenburg, Sweden)
Ibrahim Fayaz (VecScan AB + Chalmers University of Technology, Sweden)
Evgeny Groshev (University of Gothenburg, Sweden)
Sarah Nadi (University of Alberta, Canada)
Thorsten Berger (Chalmers | Univ. of Gothenburg, Sweden)

Our previous work:
* Steven She, Thorsten Berger, “Formal Semantics of the Kconfig
Language,” Technical Note, University of Waterloo, http://
www.eng.uwaterloo.ca/~shshe/kconfig_semantics.pdf, 2010.

* Steven She, Rafael Lotufo, Thorsten Berger, Andrzej Wasowski,
Krzysztof Czarnecki, “The Variability Model of the Linux Kernel,” 4th
International Workshop on Variability Modelling of Software-intensive
Systems (VaMoS), 2010. Won most-influential paper award.

* Thorsten Berger, Steven She, Rafael Lotufo, Andrzej Wasowski,
Krzysztof Czarnecki, “Variability Modeling in the Real: A Perspective
from the Operating Systems Domain,” 25th IEEE/ACM International
Conference on Automated Software Engineering (ASE), 2010.

*S. Nadi and R. Holt, "Make it or Break it: Mining Anomalies from Linux
Kbuild," 18th Working Conference on Reverse Engineering, 2011.
Steven She, Rafael Lotufo, Thorsten Berger, Andrzej Wasowski, Krzysztof
Czarnecki, “Reverse Engineering Feature Models,” 33rd International
Conference on Software Engineering (ICSE), 2011.

* S. Nadi and R. Holt, "Mining Kbuild to Detect Variability Anomalies in
Linux," 16th European Conference on Software Maintenance and
Reengineering (CSMR), 2012.

* Thorsten Berger, Steven She, Rafael Lotufo, Andrzej Wasowski,
Krzysztof Czarnecki, “A Study of Variability Models and Languages in the
Systems Software Domain,” IEEE Transactions on Software Engineering,
vol. 39, no. 12, 2013.

* Sarah Nadi, Thorsten Berger, Christian Kästner, and Krzysztof
Czarnecki, “Mining configuration constraints: static analyses and
empirical results,” 36th International Conference on Software
Engineering (ICSE), 2014.

--
Med vänliga hälsningar

Patrick Franz


Luis Chamberlain

unread,
Nov 25, 2020, 12:40:16 PM11/25/20
to Patrick Franz, kconfig-sat
On Fri, Sep 11, 2020 at 02:52:07PM +0200, Patrick Franz wrote:
> Hi everyone,
>
> On behalf of the team members (yours truly, Ibrahim Fayaz, Evgeny
> Groshev, Sarah Nadi, and Thorsten Berger, see below), I’m happy to give
> you an update about our work on the tool configfix, which integrates
> conflict-resolution support into xconfig. When a user configures the Linux
> kernel and runs into a conflict (a configuration option cannot be enabled,
> since it contradicts other, previously selected options), configfix
> calculates fixes that can be applied automatically to satisfy these
> dependencies. It is especially helpful for resolving transitive
> dependencies, for instance, when enabling or disabling a configuration
> option requires enabling or disabling a number of other options.
>
> A demo can be seen in this video: https://youtu.be/OJz3uGQ5hR4

This video is now unavailable.
Very nice! I'd like to encourage you to re-post with perhaps whatever
updates has happened since September to the linux-...@vger.kernel.org
mailing list and Cc Masahiro Yamada <masa...@kernel.org>, and
linux-...@vger.kernel.org.

Luis

Reply all
Reply to author
Forward
0 new messages