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