From: Matthieu CASTET <matthieu.castet@parrot.com>
To: Arnaud Lacombe <lacombar@gmail.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-kbuild@vger.kernel.org" <linux-kbuild@vger.kernel.org>
Subject: Re: randconfig broken on choice
Date: Fri, 9 Sep 2011 11:04:19 +0200 [thread overview]
Message-ID: <4E69D693.6030300@parrot.com> (raw)
In-Reply-To: <CACqU3MUL0t6RYDRDQuiyco-ME=ccW6p+_pEkuRm_e=VAZa5HzA@mail.gmail.com>
Hi Arnaud,
Arnaud Lacombe a écrit :
> Hi,
>
> On Tue, Sep 6, 2011 at 11:32 AM, Arnaud Lacombe <lacombar@gmail.com> wrote:
>> Hi,
>>
>> On Tue, Sep 6, 2011 at 11:13 AM, Matthieu CASTET
>> <matthieu.castet@parrot.com> wrote:
>>> Hi,
>>>
>>> Arnaud Lacombe a écrit :
>>>> Hi,
>>>>
>> 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"" ?
Yes, what I mean is that we don't take the value set by randomize_choice_values,
but some default values.
I wonder why the other one is random (I don't search who set cur value).
You can see the problem with the attached patch
and do make randconfig | grep -e "SL[UAO]B,"
However, I do not see this behavior with the
> following reduced testcase:
>
>
Yes that's weird.
> 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.
>
I don't understand what you mean.
What I saw is that randomize_choice_values modify sym->def[S_DEF_USER],
but because it is already marked valid, we never use sym->def[S_DEF_USER] in the
code writing the .config.
Matthieu
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
index b633bdb..eecb7af 100644
--- a/scripts/kconfig/lkc.h
+++ b/scripts/kconfig/lkc.h
@@ -147,6 +147,9 @@ struct property *sym_get_env_prop(struct symbol *sym);
static inline tristate sym_get_tristate_value(struct symbol *sym)
{
+ printf("name %s, cur=%d(%s) user=%d(%s)\n", sym->name,
+ sym->curr.tri, sym->flags & SYMBOL_VALID?"valid":"invalid",
+ sym->def[S_DEF_USER].tri, sym->flags & SYMBOL_DEF_USER?"valid":"invalid");
return sym->curr.tri;
}
next prev parent reply other threads:[~2011-09-09 9:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-06 8:52 randconfig broken on choice Matthieu CASTET
2011-09-06 8:52 ` Matthieu CASTET
2011-09-06 15:04 ` Arnaud Lacombe
2011-09-06 15:13 ` Matthieu CASTET
2011-09-06 15:32 ` Arnaud Lacombe
2011-09-06 18:55 ` Arnaud Lacombe
2011-09-09 9:04 ` Matthieu CASTET [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-10-20 9:25 Alexander Kriegisch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E69D693.6030300@parrot.com \
--to=matthieu.castet@parrot.com \
--cc=lacombar@gmail.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.