All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 0/3] kconfig: add support for conflict resolution
@ 2021-10-19 17:28 Thorsten Berger
  2021-10-19 17:32 ` [RFC 3/3] Simplify dependencies for MODULE_SIG_KEY_TYPE_RSA &, MODULE_SIG_KEY_TYPE_ECDSA Thorsten Berger
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Thorsten Berger @ 2021-10-19 17:28 UTC (permalink / raw)
  To: linux-kbuild
  Cc: Luis R. Rodriguez, deltaone, phayax, Eugene Groshev, Sarah Nadi,
	Mel Gorman, Luis R. Rodriguez

Hi,

Configuring a kernel requires a forward enabling approach where one
enables each option one needs at a time. If one enables an option
that selects other options, these options are no longer de-selectable
by design. Likewise, if one has enabled an option which creates a
conflict with a secondary option one wishes to enable, one cannot
easily enable that secondary option, unless one is willing to spend
time analyzing the dependencies that led to this conflict. Sometimes,
these conflicts are not easy to understand [0,1].

This patch series (for linux-next) provides support to enable users to
express their desired target configuration and display possible resolutions
to their conflicts. This support is provided within xconfig.

Conflict resolution is provided by translating kconfig's configuration
option tree to a propositional formula, and then allowing our resolution
algorithm, which uses a SAT solver (picosat, implemented in C) calculate
the possible fixes for an expressed target kernel configuration.

New UI extensions are made to xconfig with panes and buttons to allow users
to express new desired target options, calculate fixes, and apply any of
found solutions.

We created a separate test infrastructure that we used to validate the
correctness of the suggestions made. It shows that our resolution
algorithm resolves around 95% of the conflicts. We plan to incorporate
this with a later patch series.

We envision that our translation of the kconfig option tree into into a
propositional formula could potentially also later be repurposed to
address other problems. An example is checking the consistency
between the use of ifdefs and logic expressed in kconfig files.
We suspect that this could, for example, help avoid invalid kconfig
configurations and help with ifdef maintenance.

You can see a YouTube video demonstrating this work [2]. This effort is
part of the kernelnewbies Kconfig-SAT project [3], the approach and effort is
also explained in detail in our paper [4].

Patches applicable to linux-next.

[0] https://gsd.uwaterloo.ca/sites/default/files/vamos12-survey.pdf
[1] https://www.linux-magazine.com/Issues/2021/244/Kconfig-Deep-Dive
[2] https://youtu.be/vyX7zCRiLKU
[3] https://kernelnewbies.org/KernelProjects/kconfig-sat
[4] http://www.cse.chalmers.se/~bergert/paper/2021-icseseip-configfix.pdf

Thanks from the team! (and thanks to Luis Chamberlain for guiding us here)

Co-developed-by: Patrick Franz <deltaone@debian.org>
Signed-off-by: Patrick Franz <deltaone@debian.org>
Co-developed-by: Ibrahim Fayaz <phayax@gmail.com>
Signed-off-by: Ibrahim Fayaz <phayax@gmail.com>
Reviewed-by: Luis Chamberlain <mcgrof@suse.com>
Tested-by: Evgeny Groshev <eugene.groshev@gmail.com>
Suggested-by: Sarah Nadi <nadi@ualberta.ca>
Suggested-by: Thorsten Berger <thorsten.berger@rub.de>
Signed-off-by: Thorsten Berger <thorsten.berger@rub.de>


Patrick Franz (3):
  Add PicoSAT.
  Add ConfigFix.
  Simplify dependencies for MODULE_SIG_KEY_TYPE_RSA &
    MODULE_SIG_KEY_TYPE_ECDSA.

 certs/Kconfig                    |    3 +-
 scripts/kconfig/Makefile         |   19 +-
 scripts/kconfig/cf_constraints.c | 1219 +++++
 scripts/kconfig/cf_constraints.h |   23 +
 scripts/kconfig/cf_defs.h        |  233 +
 scripts/kconfig/cf_expr.c        | 2146 ++++++++
 scripts/kconfig/cf_expr.h        |  237 +
 scripts/kconfig/cf_rangefix.c    | 1017 ++++
 scripts/kconfig/cf_rangefix.h    |   18 +
 scripts/kconfig/cf_satutils.c    |  536 ++
 scripts/kconfig/cf_satutils.h    |   30 +
 scripts/kconfig/cf_utils.c       |  510 ++
 scripts/kconfig/cf_utils.h       |   90 +
 scripts/kconfig/cfconfig.c       |  176 +
 scripts/kconfig/cfoutconfig.c    |  128 +
 scripts/kconfig/configfix.c      |  422 ++
 scripts/kconfig/configfix.h      |   41 +
 scripts/kconfig/expr.h           |   13 +
 scripts/kconfig/picosat.c        | 8502 ++++++++++++++++++++++++++++++
 scripts/kconfig/picosat.h        |  658 +++
 scripts/kconfig/qconf.cc         | 1003 +++-
 scripts/kconfig/qconf.h          |  179 +-
 22 files changed, 16945 insertions(+), 258 deletions(-)
 create mode 100644 scripts/kconfig/cf_constraints.c
 create mode 100644 scripts/kconfig/cf_constraints.h
 create mode 100644 scripts/kconfig/cf_defs.h
 create mode 100644 scripts/kconfig/cf_expr.c
 create mode 100644 scripts/kconfig/cf_expr.h
 create mode 100644 scripts/kconfig/cf_rangefix.c
 create mode 100644 scripts/kconfig/cf_rangefix.h
 create mode 100644 scripts/kconfig/cf_satutils.c
 create mode 100644 scripts/kconfig/cf_satutils.h
 create mode 100644 scripts/kconfig/cf_utils.c
 create mode 100644 scripts/kconfig/cf_utils.h
 create mode 100644 scripts/kconfig/cfconfig.c
 create mode 100644 scripts/kconfig/cfoutconfig.c
 create mode 100644 scripts/kconfig/configfix.c
 create mode 100644 scripts/kconfig/configfix.h
 create mode 100644 scripts/kconfig/picosat.c
 create mode 100644 scripts/kconfig/picosat.h

-- 
2.33.0
 

-- 
Prof. Dr. Thorsten Berger
Chair of Software Engineering
Faculty of Computer Science
Ruhr University Bochum, Germany

http://www.thorsten-berger.net
Tel.: +49 (0) 234 32 25975
Mob.: +49 (0) 160 926 878 10
Skype: tberger.work


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [RFC 3/3] Simplify dependencies for MODULE_SIG_KEY_TYPE_RSA &, MODULE_SIG_KEY_TYPE_ECDSA.
  2021-10-19 17:28 [RFC 0/3] kconfig: add support for conflict resolution Thorsten Berger
@ 2021-10-19 17:32 ` Thorsten Berger
  2021-10-20  1:32 ` [RFC 0/3] kconfig: add support for conflict resolution Randy Dunlap
  2021-10-20 12:25 ` Boris Kolpackov
  2 siblings, 0 replies; 8+ messages in thread
From: Thorsten Berger @ 2021-10-19 17:32 UTC (permalink / raw)
  To: linux-kbuild
  Cc: Luis R. Rodriguez, deltaone, phayax, Eugene Groshev, Sarah Nadi,
	Mel Gorman, Luis R. Rodriguez

Co-developed-by: Patrick Franz <deltaone@debian.org>
Signed-off-by: Patrick Franz <deltaone@debian.org>
Co-developed-by: Ibrahim Fayaz <phayax@gmail.com>
Signed-off-by: Ibrahim Fayaz <phayax@gmail.com>
Reviewed-by: Luis Chamberlain <mcgrof@suse.com>
Tested-by: Evgeny Groshev <eugene.groshev@gmail.com>
Suggested-by: Sarah Nadi <nadi@ualberta.ca>
Suggested-by: Thorsten Berger <thorsten.berger@rub.de>
Signed-off-by: Thorsten Berger <thorsten.berger@rub.de>

---
 certs/Kconfig | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/certs/Kconfig b/certs/Kconfig
index ae7f2e876a31..f69c92e5bc30 100644
--- a/certs/Kconfig
+++ b/certs/Kconfig
@@ -17,6 +17,7 @@ config MODULE_SIG_KEY
 
 choice
     prompt "Type of module signing key to be generated"
+    depends on MODULE_SIG || (IMA_APPRAISE_MODSIG && MODULES)
     default MODULE_SIG_KEY_TYPE_RSA
     help
      The type of module signing key type to generate. This option
@@ -24,14 +25,12 @@ choice
 
 config MODULE_SIG_KEY_TYPE_RSA
     bool "RSA"
-    depends on MODULE_SIG || (IMA_APPRAISE_MODSIG && MODULES)
     help
      Use an RSA key for module signing.
 
 config MODULE_SIG_KEY_TYPE_ECDSA
     bool "ECDSA"
     select CRYPTO_ECDSA
-    depends on MODULE_SIG || (IMA_APPRAISE_MODSIG && MODULES)
     help
      Use an elliptic curve key (NIST P384) for module signing. Consider
      using a strong hash like sha256 or sha384 for hashing modules.

-- 
2.33.0
 

-- 
Prof. Dr. Thorsten Berger
Chair of Software Engineering

Center of Computer Science
Faculty of Electr. Engr. and IT
Ruhr University Bochum, Germany

http://www.thorsten-berger.net
Tel.: +49 (0) 234 32 25975
Mob.: +49 (0) 160 926 878 10
Skype: tberger.work


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [RFC 0/3] kconfig: add support for conflict resolution
  2021-10-19 17:28 [RFC 0/3] kconfig: add support for conflict resolution Thorsten Berger
  2021-10-19 17:32 ` [RFC 3/3] Simplify dependencies for MODULE_SIG_KEY_TYPE_RSA &, MODULE_SIG_KEY_TYPE_ECDSA Thorsten Berger
@ 2021-10-20  1:32 ` Randy Dunlap
  2021-10-20  8:06   ` Thorsten Berger
  2021-10-20 12:25 ` Boris Kolpackov
  2 siblings, 1 reply; 8+ messages in thread
From: Randy Dunlap @ 2021-10-20  1:32 UTC (permalink / raw)
  To: Thorsten Berger, linux-kbuild
  Cc: Luis R. Rodriguez, deltaone, phayax, Eugene Groshev, Sarah Nadi,
	Mel Gorman, Luis R. Rodriguez

On 10/19/21 10:28 AM, Thorsten Berger wrote:
> Hi,
> 
> Configuring a kernel requires a forward enabling approach where one
> enables each option one needs at a time. If one enables an option
> that selects other options, these options are no longer de-selectable
> by design. Likewise, if one has enabled an option which creates a
> conflict with a secondary option one wishes to enable, one cannot
> easily enable that secondary option, unless one is willing to spend
> time analyzing the dependencies that led to this conflict. Sometimes,
> these conflicts are not easy to understand [0,1].
> 
> This patch series (for linux-next) provides support to enable users to
> express their desired target configuration and display possible resolutions
> to their conflicts. This support is provided within xconfig.
> 
> Conflict resolution is provided by translating kconfig's configuration
> option tree to a propositional formula, and then allowing our resolution
> algorithm, which uses a SAT solver (picosat, implemented in C) calculate
> the possible fixes for an expressed target kernel configuration.
> 
> New UI extensions are made to xconfig with panes and buttons to allow users
> to express new desired target options, calculate fixes, and apply any of
> found solutions.
> 
> We created a separate test infrastructure that we used to validate the
> correctness of the suggestions made. It shows that our resolution
> algorithm resolves around 95% of the conflicts. We plan to incorporate
> this with a later patch series.
> 
> We envision that our translation of the kconfig option tree into into a
> propositional formula could potentially also later be repurposed to
> address other problems. An example is checking the consistency
> between the use of ifdefs and logic expressed in kconfig files.
> We suspect that this could, for example, help avoid invalid kconfig
> configurations and help with ifdef maintenance.
> 
> You can see a YouTube video demonstrating this work [2]. This effort is
> part of the kernelnewbies Kconfig-SAT project [3], the approach and effort is
> also explained in detail in our paper [4].
> 
> Patches applicable to linux-next.
> 
> [0] https://gsd.uwaterloo.ca/sites/default/files/vamos12-survey.pdf
> [1] https://www.linux-magazine.com/Issues/2021/244/Kconfig-Deep-Dive
> [2] https://youtu.be/vyX7zCRiLKU
> [3] https://kernelnewbies.org/KernelProjects/kconfig-sat
> [4] http://www.cse.chalmers.se/~bergert/paper/2021-icseseip-configfix.pdf
> 
> Thanks from the team! (and thanks to Luis Chamberlain for guiding us here)
> 
> Co-developed-by: Patrick Franz <deltaone@debian.org>
> Signed-off-by: Patrick Franz <deltaone@debian.org>
> Co-developed-by: Ibrahim Fayaz <phayax@gmail.com>
> Signed-off-by: Ibrahim Fayaz <phayax@gmail.com>
> Reviewed-by: Luis Chamberlain <mcgrof@suse.com>
> Tested-by: Evgeny Groshev <eugene.groshev@gmail.com>
> Suggested-by: Sarah Nadi <nadi@ualberta.ca>
> Suggested-by: Thorsten Berger <thorsten.berger@rub.de>
> Signed-off-by: Thorsten Berger <thorsten.berger@rub.de>
> 

Hi,

It looks like patches 1/3 and 2/3 didn't make it to the
mailing list.  My guess is that they are too large
(I don't know the limit -- it may be 100 KB per email).


> 
> Patrick Franz (3):
>    Add PicoSAT.
>    Add ConfigFix.
>    Simplify dependencies for MODULE_SIG_KEY_TYPE_RSA &
>      MODULE_SIG_KEY_TYPE_ECDSA.
> 
>   certs/Kconfig                    |    3 +-
>   scripts/kconfig/Makefile         |   19 +-
>   scripts/kconfig/cf_constraints.c | 1219 +++++
>   scripts/kconfig/cf_constraints.h |   23 +
>   scripts/kconfig/cf_defs.h        |  233 +
>   scripts/kconfig/cf_expr.c        | 2146 ++++++++
>   scripts/kconfig/cf_expr.h        |  237 +
>   scripts/kconfig/cf_rangefix.c    | 1017 ++++
>   scripts/kconfig/cf_rangefix.h    |   18 +
>   scripts/kconfig/cf_satutils.c    |  536 ++
>   scripts/kconfig/cf_satutils.h    |   30 +
>   scripts/kconfig/cf_utils.c       |  510 ++
>   scripts/kconfig/cf_utils.h       |   90 +
>   scripts/kconfig/cfconfig.c       |  176 +
>   scripts/kconfig/cfoutconfig.c    |  128 +
>   scripts/kconfig/configfix.c      |  422 ++
>   scripts/kconfig/configfix.h      |   41 +
>   scripts/kconfig/expr.h           |   13 +
>   scripts/kconfig/picosat.c        | 8502 ++++++++++++++++++++++++++++++
>   scripts/kconfig/picosat.h        |  658 +++
>   scripts/kconfig/qconf.cc         | 1003 +++-
>   scripts/kconfig/qconf.h          |  179 +-
>   22 files changed, 16945 insertions(+), 258 deletions(-)
>   create mode 100644 scripts/kconfig/cf_constraints.c
>   create mode 100644 scripts/kconfig/cf_constraints.h
>   create mode 100644 scripts/kconfig/cf_defs.h
>   create mode 100644 scripts/kconfig/cf_expr.c
>   create mode 100644 scripts/kconfig/cf_expr.h
>   create mode 100644 scripts/kconfig/cf_rangefix.c
>   create mode 100644 scripts/kconfig/cf_rangefix.h
>   create mode 100644 scripts/kconfig/cf_satutils.c
>   create mode 100644 scripts/kconfig/cf_satutils.h
>   create mode 100644 scripts/kconfig/cf_utils.c
>   create mode 100644 scripts/kconfig/cf_utils.h
>   create mode 100644 scripts/kconfig/cfconfig.c
>   create mode 100644 scripts/kconfig/cfoutconfig.c
>   create mode 100644 scripts/kconfig/configfix.c
>   create mode 100644 scripts/kconfig/configfix.h
>   create mode 100644 scripts/kconfig/picosat.c
>   create mode 100644 scripts/kconfig/picosat.h
> 


-- 
~Randy

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 0/3] kconfig: add support for conflict resolution
  2021-10-20  1:32 ` [RFC 0/3] kconfig: add support for conflict resolution Randy Dunlap
@ 2021-10-20  8:06   ` Thorsten Berger
  2021-10-20 14:32     ` Randy Dunlap
  0 siblings, 1 reply; 8+ messages in thread
From: Thorsten Berger @ 2021-10-20  8:06 UTC (permalink / raw)
  To: Randy Dunlap, linux-kbuild
  Cc: Luis R. Rodriguez, deltaone, phayax, Eugene Groshev, Sarah Nadi,
	Mel Gorman, Luis R. Rodriguez

Hi Randy,

Yes, they might have been too large. We'll send a more fine-grained 
patch set. Shall we create a new thread or reply to the first email I 
sent yesterday?

Best, Thorsten


On 20.10.2021 03:32, Randy Dunlap wrote:
> On 10/19/21 10:28 AM, Thorsten Berger wrote:
>> Hi,
>>
>> Configuring a kernel requires a forward enabling approach where one
>> enables each option one needs at a time. If one enables an option
>> that selects other options, these options are no longer de-selectable
>> by design. Likewise, if one has enabled an option which creates a
>> conflict with a secondary option one wishes to enable, one cannot
>> easily enable that secondary option, unless one is willing to spend
>> time analyzing the dependencies that led to this conflict. Sometimes,
>> these conflicts are not easy to understand [0,1].
>>
>> This patch series (for linux-next) provides support to enable users to
>> express their desired target configuration and display possible 
>> resolutions
>> to their conflicts. This support is provided within xconfig.
>>
>> Conflict resolution is provided by translating kconfig's configuration
>> option tree to a propositional formula, and then allowing our resolution
>> algorithm, which uses a SAT solver (picosat, implemented in C) calculate
>> the possible fixes for an expressed target kernel configuration.
>>
>> New UI extensions are made to xconfig with panes and buttons to allow 
>> users
>> to express new desired target options, calculate fixes, and apply any of
>> found solutions.
>>
>> We created a separate test infrastructure that we used to validate the
>> correctness of the suggestions made. It shows that our resolution
>> algorithm resolves around 95% of the conflicts. We plan to incorporate
>> this with a later patch series.
>>
>> We envision that our translation of the kconfig option tree into into a
>> propositional formula could potentially also later be repurposed to
>> address other problems. An example is checking the consistency
>> between the use of ifdefs and logic expressed in kconfig files.
>> We suspect that this could, for example, help avoid invalid kconfig
>> configurations and help with ifdef maintenance.
>>
>> You can see a YouTube video demonstrating this work [2]. This effort is
>> part of the kernelnewbies Kconfig-SAT project [3], the approach and 
>> effort is
>> also explained in detail in our paper [4].
>>
>> Patches applicable to linux-next.
>>
>> [0] https://gsd.uwaterloo.ca/sites/default/files/vamos12-survey.pdf
>> [1] https://www.linux-magazine.com/Issues/2021/244/Kconfig-Deep-Dive
>> [2] https://youtu.be/vyX7zCRiLKU
>> [3] https://kernelnewbies.org/KernelProjects/kconfig-sat
>> [4] 
>> http://www.cse.chalmers.se/~bergert/paper/2021-icseseip-configfix.pdf
>>
>> Thanks from the team! (and thanks to Luis Chamberlain for guiding us 
>> here)
>>
>> Co-developed-by: Patrick Franz <deltaone@debian.org>
>> Signed-off-by: Patrick Franz <deltaone@debian.org>
>> Co-developed-by: Ibrahim Fayaz <phayax@gmail.com>
>> Signed-off-by: Ibrahim Fayaz <phayax@gmail.com>
>> Reviewed-by: Luis Chamberlain <mcgrof@suse.com>
>> Tested-by: Evgeny Groshev <eugene.groshev@gmail.com>
>> Suggested-by: Sarah Nadi <nadi@ualberta.ca>
>> Suggested-by: Thorsten Berger <thorsten.berger@rub.de>
>> Signed-off-by: Thorsten Berger <thorsten.berger@rub.de>
>>
>
> Hi,
>
> It looks like patches 1/3 and 2/3 didn't make it to the
> mailing list.  My guess is that they are too large
> (I don't know the limit -- it may be 100 KB per email).
>
>
>>
>> Patrick Franz (3):
>>    Add PicoSAT.
>>    Add ConfigFix.
>>    Simplify dependencies for MODULE_SIG_KEY_TYPE_RSA &
>>      MODULE_SIG_KEY_TYPE_ECDSA.
>>
>>   certs/Kconfig                    |    3 +-
>>   scripts/kconfig/Makefile         |   19 +-
>>   scripts/kconfig/cf_constraints.c | 1219 +++++
>>   scripts/kconfig/cf_constraints.h |   23 +
>>   scripts/kconfig/cf_defs.h        |  233 +
>>   scripts/kconfig/cf_expr.c        | 2146 ++++++++
>>   scripts/kconfig/cf_expr.h        |  237 +
>>   scripts/kconfig/cf_rangefix.c    | 1017 ++++
>>   scripts/kconfig/cf_rangefix.h    |   18 +
>>   scripts/kconfig/cf_satutils.c    |  536 ++
>>   scripts/kconfig/cf_satutils.h    |   30 +
>>   scripts/kconfig/cf_utils.c       |  510 ++
>>   scripts/kconfig/cf_utils.h       |   90 +
>>   scripts/kconfig/cfconfig.c       |  176 +
>>   scripts/kconfig/cfoutconfig.c    |  128 +
>>   scripts/kconfig/configfix.c      |  422 ++
>>   scripts/kconfig/configfix.h      |   41 +
>>   scripts/kconfig/expr.h           |   13 +
>>   scripts/kconfig/picosat.c        | 8502 ++++++++++++++++++++++++++++++
>>   scripts/kconfig/picosat.h        |  658 +++
>>   scripts/kconfig/qconf.cc         | 1003 +++-
>>   scripts/kconfig/qconf.h          |  179 +-
>>   22 files changed, 16945 insertions(+), 258 deletions(-)
>>   create mode 100644 scripts/kconfig/cf_constraints.c
>>   create mode 100644 scripts/kconfig/cf_constraints.h
>>   create mode 100644 scripts/kconfig/cf_defs.h
>>   create mode 100644 scripts/kconfig/cf_expr.c
>>   create mode 100644 scripts/kconfig/cf_expr.h
>>   create mode 100644 scripts/kconfig/cf_rangefix.c
>>   create mode 100644 scripts/kconfig/cf_rangefix.h
>>   create mode 100644 scripts/kconfig/cf_satutils.c
>>   create mode 100644 scripts/kconfig/cf_satutils.h
>>   create mode 100644 scripts/kconfig/cf_utils.c
>>   create mode 100644 scripts/kconfig/cf_utils.h
>>   create mode 100644 scripts/kconfig/cfconfig.c
>>   create mode 100644 scripts/kconfig/cfoutconfig.c
>>   create mode 100644 scripts/kconfig/configfix.c
>>   create mode 100644 scripts/kconfig/configfix.h
>>   create mode 100644 scripts/kconfig/picosat.c
>>   create mode 100644 scripts/kconfig/picosat.h
>>
>
>


-- 
Prof. Dr. Thorsten Berger
Chair of Software Engineering

Faculty of Computer Science
Ruhr University Bochum, Germany

http://www.thorsten-berger.net
Tel.: +49 (0) 234 32 25975
Mob.: +49 (0) 160 926 878 10
Skype: tberger.work


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 0/3] kconfig: add support for conflict resolution
  2021-10-19 17:28 [RFC 0/3] kconfig: add support for conflict resolution Thorsten Berger
  2021-10-19 17:32 ` [RFC 3/3] Simplify dependencies for MODULE_SIG_KEY_TYPE_RSA &, MODULE_SIG_KEY_TYPE_ECDSA Thorsten Berger
  2021-10-20  1:32 ` [RFC 0/3] kconfig: add support for conflict resolution Randy Dunlap
@ 2021-10-20 12:25 ` Boris Kolpackov
  2021-10-20 14:37   ` Thorsten Berger
  2 siblings, 1 reply; 8+ messages in thread
From: Boris Kolpackov @ 2021-10-20 12:25 UTC (permalink / raw)
  To: Thorsten Berger
  Cc: linux-kbuild, Luis R. Rodriguez, deltaone, phayax,
	Eugene Groshev, Sarah Nadi, Mel Gorman, Luis R. Rodriguez

Thorsten Berger <thorsten.berger@rub.de> writes:

> New UI extensions are made to xconfig with panes and buttons to allow users
> to express new desired target options, calculate fixes, and apply any of
> found solutions.
>
> [...]
>
> You can see a YouTube video demonstrating this work [2].

While the demo looks impressive, I wonder if you ran into many cases
where the number of solution and/or the number of fixes in a solution
is large (and therefore would be hard for a human to make a decision
about)?

My closest experience with something like this is aptitude and the
few times I tried to use it to solve package dependency issues were
futile because of that (i.e., large number of alternative solutions
and large number of changes in each solution).

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 0/3] kconfig: add support for conflict resolution
  2021-10-20  8:06   ` Thorsten Berger
@ 2021-10-20 14:32     ` Randy Dunlap
  0 siblings, 0 replies; 8+ messages in thread
From: Randy Dunlap @ 2021-10-20 14:32 UTC (permalink / raw)
  To: Thorsten Berger, linux-kbuild
  Cc: Luis R. Rodriguez, deltaone, phayax, Eugene Groshev, Sarah Nadi,
	Mel Gorman, Luis R. Rodriguez

On 10/20/21 1:06 AM, Thorsten Berger wrote:

>> Hi,
>>
>> It looks like patches 1/3 and 2/3 didn't make it to the
>> mailing list.  My guess is that they are too large
>> (I don't know the limit -- it may be 100 KB per email).
>>
> Hi Randy,
> 
> Yes, they might have been too large. We'll send a more fine-grained patch set. Shall we create a new thread or reply to the first email I sent yesterday?
> 
> Best, Thorsten
> 


Hi,
A new thread, please.

thanks.
-- 
~Randy

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 0/3] kconfig: add support for conflict resolution
  2021-10-20 12:25 ` Boris Kolpackov
@ 2021-10-20 14:37   ` Thorsten Berger
  2021-10-20 15:57     ` Luis Chamberlain
  0 siblings, 1 reply; 8+ messages in thread
From: Thorsten Berger @ 2021-10-20 14:37 UTC (permalink / raw)
  To: Boris Kolpackov
  Cc: linux-kbuild, Luis R. Rodriguez, deltaone, phayax,
	Eugene Groshev, Sarah Nadi, Mel Gorman, Luis R. Rodriguez

On 20.10.2021 14:25, Boris Kolpackov wrote:
> Thorsten Berger <thorsten.berger@rub.de> writes:
>
>> New UI extensions are made to xconfig with panes and buttons to allow users
>> to express new desired target options, calculate fixes, and apply any of
>> found solutions.
>>
>> [...]
>>
>> You can see a YouTube video demonstrating this work [2].
> While the demo looks impressive, I wonder if you ran into many cases
> where the number of solution and/or the number of fixes in a solution
> is large (and therefore would be hard for a human to make a decision
> about)?
>
> My closest experience with something like this is aptitude and the
> few times I tried to use it to solve package dependency issues were
> futile because of that (i.e., large number of alternative solutions
> and large number of changes in each solution).
Thanks! BTW, I've opened a new thread, since the emails with the main 
patches didn't go through before (were too large) -- perhaps you can 
switch to that one.

For the user interface, we limit the number of fixes shown to three, 
which in our experience is a good compromise. A fix can require changing 
multiple symbols. However, it's not too many usually. Take a look at 
Fig. 5 in [0], which shows results from our large-scale experiments. For 
the probably most common case of asking for changing 1 symbol (conflict 
size of 1 on the x-axis) that the user wants to enable/disable, the 
median fix size is relatively small. So it should be easy for a user to 
understand most of the fixes. However, in many cases it might not even 
be necessary to understand the changes, or at least see which symbols 
would be changed, then the user can apply the fix.

Note that in Fig. 5 in [0], these statistics are even before Patrick 
Franz has done some rewriting of some internals, which lead to better 
numbers.

Best, Thorsten

[0] http://www.cse.chalmers.se/~bergert/paper/2021-icseseip-configfix.pdf


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 0/3] kconfig: add support for conflict resolution
  2021-10-20 14:37   ` Thorsten Berger
@ 2021-10-20 15:57     ` Luis Chamberlain
  0 siblings, 0 replies; 8+ messages in thread
From: Luis Chamberlain @ 2021-10-20 15:57 UTC (permalink / raw)
  To: Thorsten Berger
  Cc: Boris Kolpackov, linux-kbuild, Luis R. Rodriguez, deltaone,
	phayax, Eugene Groshev, Sarah Nadi, Mel Gorman

On Wed, Oct 20, 2021 at 04:37:49PM +0200, Thorsten Berger wrote:
> On 20.10.2021 14:25, Boris Kolpackov wrote:
> > Thorsten Berger <thorsten.berger@rub.de> writes:
> > 
> > > New UI extensions are made to xconfig with panes and buttons to allow users
> > > to express new desired target options, calculate fixes, and apply any of
> > > found solutions.
> > > 
> > > [...]
> > > 
> > > You can see a YouTube video demonstrating this work [2].
> > While the demo looks impressive, I wonder if you ran into many cases
> > where the number of solution and/or the number of fixes in a solution
> > is large (and therefore would be hard for a human to make a decision
> > about)?
> > 
> > My closest experience with something like this is aptitude and the
> > few times I tried to use it to solve package dependency issues were
> > futile because of that (i.e., large number of alternative solutions
> > and large number of changes in each solution).
> Thanks! BTW, I've opened a new thread, since the emails with the main
> patches didn't go through before (were too large) -- perhaps you can switch
> to that one.

Use git format-patch --subject-prefix="RFC v3" for your v3 series.

 Luis


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-10-20 15:57 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-19 17:28 [RFC 0/3] kconfig: add support for conflict resolution Thorsten Berger
2021-10-19 17:32 ` [RFC 3/3] Simplify dependencies for MODULE_SIG_KEY_TYPE_RSA &, MODULE_SIG_KEY_TYPE_ECDSA Thorsten Berger
2021-10-20  1:32 ` [RFC 0/3] kconfig: add support for conflict resolution Randy Dunlap
2021-10-20  8:06   ` Thorsten Berger
2021-10-20 14:32     ` Randy Dunlap
2021-10-20 12:25 ` Boris Kolpackov
2021-10-20 14:37   ` Thorsten Berger
2021-10-20 15:57     ` Luis Chamberlain

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.