Pardon me if I am a bit un-informed or something
D. Hugh Redelmeier
hugh-pmF8o41NoarQT0dZR+AlfA at public.gmane.org
Sun Jan 15 18:39:58 UTC 2006
| From: Christopher Browne <cbbrowne-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org>
| randconfig means that random things get tried so that you have some
| chances of noticing conflicting options.
Yes.
I think that the combinatorics of this is a little surprising and so
worth a look.
Too often options have unexpected relationships. Sometimes they show
up in building, sometimes only at runtime. randconfig helps one find
unexpected build relationships.
A systematic approach would be most thorough. If there are a hundred
binary options (and I think that there are more and not all are
binary), then testing all different configs would take 2**100 kernel
compiles. Too long to try.
If there is a conflict between two arbitrary binary choices, then
there is 1/2 * 1/2 chance that the conflict would be noticed by a
randconfig compile. Or, to put it another way, 3/4 chance that it
won't be found.
Now do another randconfig compile, and the chance of the problem not
being detected either time is 3/4 * 3/4 == 9/16. Better odds.
If you try 10 randconfig builds, then the chances of missing a
pairwise problem is 3**10 / 4**10 or about 5.63%. After 20, about
0.317%.
This same kind of logic applies in more complex cases such as three
options interacting badly or non-binary options. The confidence
building advances a bit more slowly -- more randconfig builds are
required to achieve the same probability of detection.
In any case, 20 is a lot smaller than 2**100.
--
The Toronto Linux Users Group. Meetings: http://tlug.ss.org
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://tlug.ss.org/subscribe.shtml
More information about the Legacy
mailing list