Re: randconfig broken on choice

From: Arnaud Lacombe
Date: Tue Sep 06 2011 - 14:55:54 EST


Hi,

On Tue, Sep 6, 2011 at 11:32 AM, Arnaud Lacombe <lacombar@xxxxxxxxx> wrote:
> Hi,
>
> On Tue, Sep 6, 2011 at 11:13 AM, Matthieu CASTET
> <matthieu.castet@xxxxxxxxxx> wrote:
>> Hi,
>>
>> Arnaud Lacombe a écrit :
>>> Hi,
>>>
>>> On Tue, Sep 6, 2011 at 4:52 AM, Matthieu CASTET
>>> <matthieu.castet@xxxxxxxxxx> wrote:
>>>> Hi,
>>>>
>>>> I am using v3.1-rc4 and make randconfig look broken for choice.
>>>> The choice config is always the same or choice entry can have more than one entry.
>>>>
>>> Could you includes testcases showing that behavior, please ?
>> $ make randconfig
>>
>> $ grep -e SLUB -e SLAB -e SLOB .config
>> # CONFIG_SLAB is not set
>> CONFIG_SLUB=y
>> CONFIG_SLOB=y
>> # CONFIG_FAILSLAB is not set
>>
>> We have 2 choice selected (SLUB and SLOB). You may run randconfig (more than one
>> time to get this result).
>>
> ok, I reproduced it with:
>
> while true; do
>    make randconfig
>    CONFIG_SLAB=; CONFIG_SLOB=; CONFIG_SLUB=
>    source .config
>    if [ "${CONFIG_SLAB}${CONFIG_SLOB}${CONFIG_SLUB}" != "y" ]; then
>        break
>    fi
>    sleep 1
> done
>
> I wonder what set the flags originally...
>
This is interesting; I'm always getting the following:

CONFIG_SLUB=y
CONFIG_SLOB=y

never CONFIG_SLAB and another one. Actually, the default of the choice
ends up being selected along with the random one. Is this what you
mean by "we don't take "sym->def[S_DEF_USER].tri" but the "default
sym->cur.tri"" ? However, I do not see this behavior with the
following reduced testcase:

config EXPERT
bool
default y

choice
prompt "Choose SLAB allocator"
default SLUB

config SLAB
bool "SLAB"

config SLUB
bool "SLUB (Unqueued Allocator)"

config SLOB
depends on EXPERT
bool "SLOB (Simple Allocator)"

endchoice

Btw, you say that "we don't clean SYMBOL_VALID for choice entry", but
AFAIU the code, we explicitly set the not-randomly-chosen choice value
to 'no', so it's value should be valid.

 - Arnaud
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/