Re: [PATCH] kconfig: untangle EXPERT and EMBEDDED

From: Andrew Jones
Date: Wed Jan 18 2012 - 06:10:27 EST




----- Original Message -----
> Commit 6a108a14fa35 renamed CONFIG_EMBEDDED to CONFIG_EXPERT with the
> justification that EMBEDDED was being used with a broader scope. It
> was
> no longer just being used to expose standard options to embedded
> kernel
> configs for tweaking, but rather for all "non-standard" kernel
> configs.
> This is nice, because now developers have a way to clean up the
> config
> menu by adding 'if EXPERT' to all entries in their Kconfig files that
> should rarely have a non-default value selected (hint1: it would be
> nice
> if developers would do this, hint2: it would also be nice if
> developers
> would do this rather than making these types of options silent, and
> thus
> impossible to override).
>
> Unfortunately, EMBEDDED was also being used to modify the defaults of
> some of these options to selections more appropriate for embedded
> kernels. Since the renaming was a simple global search-replace, if
> developers were to follow hints 1 and 2 above for non-embedded
> kernels,
> then they may find unexpected changes in their configs after turning
> on
> EXPERT.
>
> This patch attempts to untangle these two, making EXPERT true to its
> purpose, which is to only expose standard options for tweaking, and
> EMBEDDED to resume use as a default option modifier. The patch was
> made
> with the following four steps, which could not be split into separate
> patches without breaking configs
>
> 1. Make sure EMBEDDED does nothing, i.e. s/EMBEDDED/EXPERT/. There
> were
> only three places EMBEDDED was used.
>
> 2. Add CONFIG_EXPERT=y to all configs that had CONFIG_EMBEDDED=y (and
> not CONFIG_EXPERT=y already) to make sure step1 has no effect. This
> step
> isn't strictly necessary since EMBEDDED selects EXPERT, but I wanted
> the
> configs expressing the new need explicitly. Only 13 *_defconfig
> files.
>
> 3. Move all side effects (default changes) from EXPERT to EMBEDDED
>
> 4. Add CONFIG_EMBEDDED=y to all configs that had CONFIG_EXPERT=y (and
> not CONFIG_EMBEDDED=y already) to make sure step3 has no effect.
>
> I certainly didn't test this for every touched config. However, I did
> test it for one config and got the expected results;
> Before patch:
> 1. diff config.orig orig.EXPERT -- shows many changes
> 2. diff config.orig orig.EMBEDDED -- shows same changes as
> (1)
> plus EMBEDDED on
> After patch:
> 3. diff config.orig config.new -- no change
> 4. diff config.orig new.EXPERT -- only 1 change, EXPERT on
> 5. diff config.orig new.EMBEDDED -- shows same changes as
> (2)
>
> Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx>
> ---

This patch is effectively a partial revert of 6a108a14fa35, and has now
been nacked by David Rientjes (author of 6a108a14fa35). However, IMO,
there hasn't been a sufficient technical explanation for why. I've now
added Ingo Molnar and David Woodhouse to the 'To:', in order to try and
bring the patch to their attention. Both are listed as having reviewed or
acked 6a108a14fa35, so I would appreciate their opinions on this patch as
well.

Drew
--
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/