merge_config.sh: Add option for allmodconfig
diff mbox series

Message ID 1575979754-184896-1-git-send-email-john.garry@huawei.com
State New
Headers show
Series
  • merge_config.sh: Add option for allmodconfig
Related show

Commit Message

John Garry Dec. 10, 2019, 12:09 p.m. UTC
Recently there has been some work in reporting and fixing bugs in booting
an allmodconfig kernel - here are a few examples:

https://lore.kernel.org/linux-edac/304df85b-8b56-b77e-1a11-aa23769f2e7c@huawei.com/T/#t
https://lore.kernel.org/linux-ide/bdf02e03-86a1-3d35-2908-28187f504495@huawei.com/T/#t
https://lore.kernel.org/netdev/CADYN=9LCPfbpwdTWKw03B22-y3Text=RWXW7XP7wJBHYsMOgrA@mail.gmail.com/
https://sourceforge.net/p/openipmi/mailman/message/36871567/

If we want to boot an allmodconfig kernel we may still want to force some
loadable modules built-in, like UART drivers. Or just still turn off some
configs.

So add an option to add add fragments to an allmodconfig kernel.

Signed-off-by: John Garry <john.garry@huawei.com>

Comments

John Garry Jan. 6, 2020, 9:18 a.m. UTC | #1
On 10/12/2019 12:09, John Garry wrote:

Hi Masahiro,

Could you please consider this patch?

Thanks,
John

> Recently there has been some work in reporting and fixing bugs in booting
> an allmodconfig kernel - here are a few examples:
> 
> https://lore.kernel.org/linux-edac/304df85b-8b56-b77e-1a11-aa23769f2e7c@huawei.com/T/#t
> https://lore.kernel.org/linux-ide/bdf02e03-86a1-3d35-2908-28187f504495@huawei.com/T/#t
> https://lore.kernel.org/netdev/CADYN=9LCPfbpwdTWKw03B22-y3Text=RWXW7XP7wJBHYsMOgrA@mail.gmail.com/
> https://sourceforge.net/p/openipmi/mailman/message/36871567/
> 
> If we want to boot an allmodconfig kernel we may still want to force some
> loadable modules built-in, like UART drivers. Or just still turn off some
> configs.
> 
> So add an option to add add fragments to an allmodconfig kernel.
> 
> Signed-off-by: John Garry <john.garry@huawei.com>
> 
> diff --git a/scripts/kconfig/merge_config.sh b/scripts/kconfig/merge_config.sh
> index 63c8565206a4..01697fb6dfbe 100755
> --- a/scripts/kconfig/merge_config.sh
> +++ b/scripts/kconfig/merge_config.sh
> @@ -23,6 +23,7 @@ clean_up() {
>   usage() {
>   	echo "Usage: $0 [OPTIONS] [CONFIG [...]]"
>   	echo "  -h    display this help text"
> +	echo "  -a    use allmodconfig instead of alldefconfig"
>   	echo "  -m    only merge the fragments, do not execute the make command"
>   	echo "  -n    use allnoconfig instead of alldefconfig"
>   	echo "  -r    list redundant entries when merging fragments"
> @@ -41,6 +42,11 @@ CONFIG_PREFIX=${CONFIG_-CONFIG_}
>   
>   while true; do
>   	case $1 in
> +	"-a")
> +		ALLTARGET=allmodconfig
> +		shift
> +		continue
> +		;;
>   	"-n")
>   		ALLTARGET=allnoconfig
>   		shift
> @@ -171,6 +177,7 @@ fi
>   
>   # Use the merged file as the starting point for:
>   # alldefconfig: Fills in any missing symbols with Kconfig default
> +# allmodconfig: Fills in any missing symbols with =m when loadable
>   # allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
>   make KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET
>   
>
Masahiro Yamada Jan. 6, 2020, 6:04 p.m. UTC | #2
On Mon, Jan 6, 2020 at 6:18 PM John Garry <john.garry@huawei.com> wrote:
>
> On 10/12/2019 12:09, John Garry wrote:
>
> Hi Masahiro,
>
> Could you please consider this patch?
>
> Thanks,
> John
>
> > Recently there has been some work in reporting and fixing bugs in booting
> > an allmodconfig kernel - here are a few examples:
> >
> > https://lore.kernel.org/linux-edac/304df85b-8b56-b77e-1a11-aa23769f2e7c@huawei.com/T/#t
> > https://lore.kernel.org/linux-ide/bdf02e03-86a1-3d35-2908-28187f504495@huawei.com/T/#t
> > https://lore.kernel.org/netdev/CADYN=9LCPfbpwdTWKw03B22-y3Text=RWXW7XP7wJBHYsMOgrA@mail.gmail.com/
> > https://sourceforge.net/p/openipmi/mailman/message/36871567/
> >
> > If we want to boot an allmodconfig kernel we may still want to force some
> > loadable modules built-in, like UART drivers. Or just still turn off some
> > configs.


I do not understand why you need to use merge_config.sh
for this purpose.

KCONFIG_ALLCONFIG=<path-to-your-config-fragment> make allmodconfig

should work.
John Garry Jan. 7, 2020, 9:19 a.m. UTC | #3
On 06/01/2020 18:04, Masahiro Yamada wrote:
> On Mon, Jan 6, 2020 at 6:18 PM John Garry <john.garry@huawei.com> wrote:
>>
>> On 10/12/2019 12:09, John Garry wrote:
>>
>> Hi Masahiro,
>>
>> Could you please consider this patch?
>>
>> Thanks,
>> John
>>
>>> Recently there has been some work in reporting and fixing bugs in booting
>>> an allmodconfig kernel - here are a few examples:
>>>
>>> https://lore.kernel.org/linux-edac/304df85b-8b56-b77e-1a11-aa23769f2e7c@huawei.com/T/#t
>>> https://lore.kernel.org/linux-ide/bdf02e03-86a1-3d35-2908-28187f504495@huawei.com/T/#t
>>> https://lore.kernel.org/netdev/CADYN=9LCPfbpwdTWKw03B22-y3Text=RWXW7XP7wJBHYsMOgrA@mail.gmail.com/
>>> https://sourceforge.net/p/openipmi/mailman/message/36871567/
>>>
>>> If we want to boot an allmodconfig kernel we may still want to force some
>>> loadable modules built-in, like UART drivers. Or just still turn off some
>>> configs.
> 
> 
> I do not understand why you need to use merge_config.sh
> for this purpose.
> 
> KCONFIG_ALLCONFIG=<path-to-your-config-fragment> make allmodconfig
> 
> should work.
> 
> 

Right, I could use that. But generally some people like to use 
merge_config.sh directly:

./scripts/kconfig/merge_config.sh [-a] fragment

so nice to have -a option for completeness.

Thanks,
john
Masahiro Yamada Jan. 9, 2020, 4:21 p.m. UTC | #4
On Tue, Jan 7, 2020 at 6:19 PM John Garry <john.garry@huawei.com> wrote:
>
> On 06/01/2020 18:04, Masahiro Yamada wrote:
> > On Mon, Jan 6, 2020 at 6:18 PM John Garry <john.garry@huawei.com> wrote:
> >>
> >> On 10/12/2019 12:09, John Garry wrote:
> >>
> >> Hi Masahiro,
> >>
> >> Could you please consider this patch?
> >>
> >> Thanks,
> >> John
> >>
> >>> Recently there has been some work in reporting and fixing bugs in booting
> >>> an allmodconfig kernel - here are a few examples:
> >>>
> >>> https://lore.kernel.org/linux-edac/304df85b-8b56-b77e-1a11-aa23769f2e7c@huawei.com/T/#t
> >>> https://lore.kernel.org/linux-ide/bdf02e03-86a1-3d35-2908-28187f504495@huawei.com/T/#t
> >>> https://lore.kernel.org/netdev/CADYN=9LCPfbpwdTWKw03B22-y3Text=RWXW7XP7wJBHYsMOgrA@mail.gmail.com/
> >>> https://sourceforge.net/p/openipmi/mailman/message/36871567/
> >>>
> >>> If we want to boot an allmodconfig kernel we may still want to force some
> >>> loadable modules built-in, like UART drivers. Or just still turn off some
> >>> configs.
> >
> >
> > I do not understand why you need to use merge_config.sh
> > for this purpose.
> >
> > KCONFIG_ALLCONFIG=<path-to-your-config-fragment> make allmodconfig
> >
> > should work.
> >
> >
>
> Right, I could use that. But generally some people like to use
> merge_config.sh directly:
>
> ./scripts/kconfig/merge_config.sh [-a] fragment
>
> so nice to have -a option for completeness.
>


Honestly, I am getting scared
about people extending this script more and more
to do what they want.

Since allmodconfig works enough for this usecase,
I do not see a good reason to add the new option.
John Garry Jan. 9, 2020, 4:23 p.m. UTC | #5
On 09/01/2020 16:21, Masahiro Yamada wrote:
> On Tue, Jan 7, 2020 at 6:19 PM John Garry <john.garry@huawei.com> wrote:
>>
>> On 06/01/2020 18:04, Masahiro Yamada wrote:
>>> On Mon, Jan 6, 2020 at 6:18 PM John Garry <john.garry@huawei.com> wrote:
>>>>
>>>> On 10/12/2019 12:09, John Garry wrote:
>>>>
>>>> Hi Masahiro,
>>>>
>>>> Could you please consider this patch?
>>>>
>>>> Thanks,
>>>> John
>>>>
>>>>> Recently there has been some work in reporting and fixing bugs in booting
>>>>> an allmodconfig kernel - here are a few examples:
>>>>>
>>>>> https://lore.kernel.org/linux-edac/304df85b-8b56-b77e-1a11-aa23769f2e7c@huawei.com/T/#t
>>>>> https://lore.kernel.org/linux-ide/bdf02e03-86a1-3d35-2908-28187f504495@huawei.com/T/#t
>>>>> https://lore.kernel.org/netdev/CADYN=9LCPfbpwdTWKw03B22-y3Text=RWXW7XP7wJBHYsMOgrA@mail.gmail.com/
>>>>> https://sourceforge.net/p/openipmi/mailman/message/36871567/
>>>>>
>>>>> If we want to boot an allmodconfig kernel we may still want to force some
>>>>> loadable modules built-in, like UART drivers. Or just still turn off some
>>>>> configs.
>>>
>>>
>>> I do not understand why you need to use merge_config.sh
>>> for this purpose.
>>>
>>> KCONFIG_ALLCONFIG=<path-to-your-config-fragment> make allmodconfig
>>>
>>> should work.
>>>
>>>
>>
>> Right, I could use that. But generally some people like to use
>> merge_config.sh directly:
>>
>> ./scripts/kconfig/merge_config.sh [-a] fragment
>>
>> so nice to have -a option for completeness.
>>
> 
> 
> Honestly, I am getting scared
> about people extending this script more and more
> to do what they want.
> 
> Since allmodconfig works enough for this usecase,
> I do not see a good reason to add the new option.
> 

ok, fine.

cheers

Patch
diff mbox series

diff --git a/scripts/kconfig/merge_config.sh b/scripts/kconfig/merge_config.sh
index 63c8565206a4..01697fb6dfbe 100755
--- a/scripts/kconfig/merge_config.sh
+++ b/scripts/kconfig/merge_config.sh
@@ -23,6 +23,7 @@  clean_up() {
 usage() {
 	echo "Usage: $0 [OPTIONS] [CONFIG [...]]"
 	echo "  -h    display this help text"
+	echo "  -a    use allmodconfig instead of alldefconfig"
 	echo "  -m    only merge the fragments, do not execute the make command"
 	echo "  -n    use allnoconfig instead of alldefconfig"
 	echo "  -r    list redundant entries when merging fragments"
@@ -41,6 +42,11 @@  CONFIG_PREFIX=${CONFIG_-CONFIG_}
 
 while true; do
 	case $1 in
+	"-a")
+		ALLTARGET=allmodconfig
+		shift
+		continue
+		;;
 	"-n")
 		ALLTARGET=allnoconfig
 		shift
@@ -171,6 +177,7 @@  fi
 
 # Use the merged file as the starting point for:
 # alldefconfig: Fills in any missing symbols with Kconfig default
+# allmodconfig: Fills in any missing symbols with =m when loadable
 # allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
 make KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET