aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/kconfig/minimize.go
Commit message (Collapse)AuthorAgeFilesLines
* pkg/kconfig: rewrite Minimize()Aleksandr Nogikh2023-07-071-59/+63
| | | | | | | | | | | 1) Use the generic bisection implementation in pkg/bisect. It adds the support of identifying several necessary config diffs at once. 2) For now, limit the number of minimization iterations to 6. It's a lengthy process and we don't want to spend too much time doing this. 3) Bisect over leaf configuration options -- that is, those no other config depends upon. This should make diff split during bisection more reliable. 4) Save all intermediate configs to the debug files folder.
* pkg/kconfig: make Clone() publicAleksandr Nogikh2023-07-051-2/+2
|
* pkg/kconfig: store minimization resultsJouni Hogander2020-12-101-15/+21
| | | | | Store config options identified using DebugTracer. Also change bisection and configuration minimization code to use new DebugTracer.
* pkg/kconfig: add minimization test with dependent configsDmitry Vyukov2020-11-171-5/+10
| | | | | | | | | | | Test for case described in: https://groups.google.com/g/syzkaller/c/c1J1kzzW7Ew/m/CeyEJm04AQAJ It seems to work as is (mostly). Fix parsing of the very last kconfig config (currently it's dropped). s/menuend/endmenu/ in error message. Sort dependencies so that we can express the test. But none of this should have affected actual config minimization.
* pkg/kconfig: move all non-tristate configs in minimizationDmitry Vyukov2020-10-211-11/+15
| | | | | Always move all non-tristate configs from full because we don't minimize them.
* pkg/kconfig: add simple config minimizationDmitry Vyukov2020-10-211-0/+110
Minimize finds an equivalent with respect to the provided predicate, but smaller config. It accepts base (small) and full (large) config. It is assumed that the predicate returns true for the full config. It is also assumed that base and full are not just two completely arbitrary configs, but full it produced from base mostly by adding more configs. The minimization procedure thus consists of figuring out what set of configs that are present in full and are not present in base affect the predicate. Update #2171