Chi, can you describe you recent finding you sent me in private
regarding previous GSoC work ?
[0] http://kernelnewbies.org/KernelProjects/kconfig-sat
I'd be able to do actual work on this in February at the earliest, but can until then participate in preliminary discussions.
--
Jesper
Project details:
http://kernelnewbies.org/KernelProjects/kconfig-sat
---
You received this message because you are subscribed to the Google Groups "kconfig-sat" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kconfig-sat...@googlegroups.com.
Visit this group at http://groups.google.com/group/kconfig-sat.
To view this discussion on the web visit https://groups.google.com/d/msgid/kconfig-sat/2ece26f1-9fcf-42ad-a837-58b50b715875%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
-- Dr. Thorsten Berger Assistant Professor Department of Computer Science and Engineering University of Gothenburg & Chalmers University of Technology Hörselgången 5 41756 Göteborg, Sweden http://gsd.uwaterloo.ca/tberger Tel.: +46 (0) 31 772 6075 Mob.: +49 177 6225422 Skype: tberger.work
On 08/10/2015 9:03 AM, Jesper Andersen wrote:
In our experience it is not. In addition to this text file, we needed to study actual models and the behavior of xconfig in depth in order to come up with our formal semantics: http://gsd.uwaterloo.ca/sites/default/files/kconfig_semantics.pdfOn Thursday, October 8, 2015 at 2:49:56 AM UTC+2, Chi Pham wrote:
I'd be able to do actual work on this in February at the earliest, but can until then participate in preliminary discussions.
I am able to commit time to help on this work now.
From the wiki it seems like one of the first tasks to consider is to find a way to convert Kconfig data to a format usable by (e.g.) PicoSAT? Is the documentation at https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt sufficient for describing the Kconfig data?
Jesper
On 08/10/2015 9:21 PM, Jesper Andersen wrote:
On Thursday, October 8, 2015 at 2:57:14 PM UTC+2, Thorsten Berger wrote:Yes. We had worked on two different encodings (both implemented in our tool LVAT), one using two Boolean variables to represent tristate configs, and another one using just one variable (which is, thus, an abstraction). The last section in the document describes the latter.On 08/10/2015 9:03 AM, Jesper Andersen wrote:
In our experience it is not. In addition to this text file, we needed to study actual models and the behavior of xconfig in depth in order to come up with our formal semantics: http://gsd.uwaterloo.ca/sites/default/files/kconfig_semantics.pdfOn Thursday, October 8, 2015 at 2:49:56 AM UTC+2, Chi Pham wrote:
I'd be able to do actual work on this in February at the earliest, but can until then participate in preliminary discussions.
I am able to commit time to help on this work now.
From the wiki it seems like one of the first tasks to consider is to find a way to convert Kconfig data to a format usable by (e.g.) PicoSAT? Is the documentation at https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt sufficient for describing the Kconfig data?
Thanks for providing the link to you document. I have not read it yet, but will do so. Is it correct that the document ends with the section titled: "1-Var Propositional Semantics"?
But I should also point you to a more recent work by a PhD student from Hildesheim, who also analyzed the Kconfig semantics: http://sse.uni-hildesheim.de/media/fb4/informatik/AG_SSE/PDFs/publications/Kconfig/Report.pdf
Both documents should be a good start to consolidate the formal semantics for Kconfig.
As was discussed before, there are more tools in addition to our implementation (e.g., Undertaker from Erlangen) that can transform Kconfig models into propositional formulas, each probably using slightly different encodings and abstractions. However, the two documents above are the only that formally define/document the Kconfig semantics. It would actually be interesting to know whether our semantics (or those from Hildesheim) match the original intentions behind Kconfig.
That used PicoSAT, and has code changes for integration, I have just given this
a cursory overview. It'd be interesting to learn why the student, Vegard
(cc'd), did not try to prupose the changes upstream in the end.
Expected challenges I've been hinted might exist is that SAT solvers might
be too slow to use for all kconfig evaluations, I do wonder if that hindered
the original motivation for using PicoSAT in kconfig through Vegard's work,
but note that Vegard's work dates back to 2011 and over time SAT sovlers have
gotten much better. Another thing to consider is that if at evaluation time
it is determined a SAT solver used on kconfig for all things is too slow we
could at least consider its use for only a few key things such as select
resolution lookup (a kconfig symbol using select doesn't check if dependencies
match today), for example, another example may be to just use it to help
give more verbose details upon error of causes of an error through the use
of MUS.
I would find it quite surprising if a SAT solver found the Kconfig
prolem space challenging to solve quickly; while it contains a huge
*number* of symbols, the interactions between them seem fairly
straightforward in the majority of cases, and only a small number of
symbols get involved in complex logic.
My concern about applying a SAT solver comes from solution (or
especially non-solution) comprehensibility and explainability: how well
can we translate the output of a SAT solver into a clear, meaningful
explanation? We can't just say "no such kernel configuration exists";
ideally, we want the simplest possible explanation of why your desired
set of config symbols can't work, or the solution closest to what the
user asked for if one exists, for some sensible values of "simplest" and
"closest".
-- Dr. Thorsten Berger Assistant Professor Department of Computer Science and Engineering University of Gothenburg & Chalmers University of Technology Hörselgången 5 41756 Göteborg, Sweden
Hi everyone,
I just received an email from a student interested in this topic for a Master's thesis. I'm currently trying to figure out a bit more about his background (e.g., whether he can do C programming, as this seems to be a core requirement, right?).
Now, I lost a bit of overview here. Is there already someone else actively implementing a solution, or could the student pretty much start implementing (possibly on top of existing work, such as kconfig-sat)? If there's already a developer, could there a be a specific reasoning task (e.g., improving choice propagation, controlling visibility of subtrees, etc.) the student could be working on?
In case the student would not be efficient in implementing, I could also imagine some more empirical study about the use of configuration symbols in the code, or the impact of any migration efforts (there was a discussion about that by Luis a while ago) in case the Kconfig semantics would be changed.
To view this discussion on the web visit https://groups.google.com/d/msgid/kconfig-sat/3d216b07-1b0a-46be-80a0-bbf2942d25ab%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
-- Dr. Thorsten Berger Assistant Professor Department of Computer Science and Engineering University of Gothenburg & Chalmers University of Technology Göteborg, Swedenhttp://www.thorsten-berger.netTel.: +46 (0) 31 772 6075
Mob.: +49 177 6225422 Skype: tberger.work
--
Project details:
http://kernelnewbies.org/KernelProjects/kconfig-sat
---
You received this message because you are subscribed to a topic in the Google Groups "kconfig-sat" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kconfig-sat/G6HA_3ecAQI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kconfig-sat...@googlegroups.com.
Visit this group at http://groups.google.com/group/kconfig-sat.
To view this discussion on the web visit https://groups.google.com/d/msgid/kconfig-sat/564EE090.7070809%40chalmers.se.
> send an email to kconfig-sat+unsub...@googlegroups.com.
> Visit this group at http://groups.google.com/group/kconfig-sat.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/kconfig-sat/3d216b07-1b0a-46be-80a0-bbf2942d25ab%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
>
>
>
> --
> Dr. Thorsten Berger
> Assistant Professor
> Department of Computer Science and Engineering
> University of Gothenburg & Chalmers University of Technology
> Göteborg, Swedenhttp://www.thorsten-berger.netTel.: +46 (0) 31 772 6075
> Mob.: +49 177 6225422
> Skype: tberger.work
>
>
>
> --
> Project details:
>
> http://kernelnewbies.org/KernelProjects/kconfig-sat
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "kconfig-sat" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/kconfig-sat/G6HA_3ecAQI/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> kconfig-sat+unsub...@googlegroups.com.
> Visit this group at http://groups.google.com/group/kconfig-sat.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/kconfig-sat/564EE090.7070809%40chalmers.se.
> For more options, visit https://groups.google.com/d/optout.
>
> --
> Project details:
>
> http://kernelnewbies.org/KernelProjects/kconfig-sat
> ---
> You received this message because you are subscribed to the Google Groups
> "kconfig-sat" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to kconfig-sat+unsub...@googlegroups.com.
> Visit this group at http://groups.google.com/group/kconfig-sat.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/kconfig-sat/29e5292f.1a7.15124411dcb.Coremail.xiongyf%40pku.edu.cn.
>
> For more options, visit https://groups.google.com/d/optout.
--
Project details:
http://kernelnewbies.org/KernelProjects/kconfig-sat
---
You received this message because you are subscribed to a topic in the Google Groups "kconfig-sat" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kconfig-sat/G6HA_3ecAQI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kconfig-sat+unsub...@googlegroups.com.
Visit this group at http://groups.google.com/group/kconfig-sat.
To view this discussion on the web visit https://groups.google.com/d/msgid/kconfig-sat/CANp8Ba0x0p0Axx7t0-Z_rn7ZjVPwd6sjKkQnS-tnbg6GTiqGHg%40mail.gmail.com.
I strongly believe that in the interest of maximizing maintainability and chance of adoption it would be good to consider ignoring non-boolean/non-tristate configs.
This can be done in several ways (ignoring constraints, or the substituting terms like B > 100 with ture, or best, substituting them with fresh Boolean variables). This will of course introduce imprecision, but I doubt the imprecision will be significant. It is important that we offer a good solution with respect to what the kernel has now, not with respect to what is in the cutting egde papers, IMHO. Of course, without trying the approximations, we do not really know whether they are problematic or not. If constraints involving numerals are not interdependent, an SMT solver will give little additional value.
Andrzej
To unsubscribe from this group and all its topics, send an email to kconfig-sat...@googlegroups.com.
Visit this group at http://groups.google.com/group/kconfig-sat.
To view this discussion on the web visit https://groups.google.com/d/msgid/kconfig-sat/DB4PR02MB0333648BA9C6267177351871BF1A0%40DB4PR02MB0333.eurprd02.prod.outlook.com.