From: Philipp Rudo on gitlab.com Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144
This series aims to update the Architecture Level Set on s390 for ark to Z14. Unfortunately this collides with a workaround introduced with f88717cf44eb ("Temporarily switch TUNE_DEFAULT to y") to solve configuration problems due to cc-options checks failing on the configuration system. Thus the series was extended to solve that as well by using the scripts/dummy-tools in process_configs.sh.
v1 -> v2: * Move the new configs introduced by using the dummy-tools from pending-common/ to common/ and split them to separate commits to simplify review.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1876435 Signed-off-by: Philipp Rudo prudo@redhat.com
From: Philipp Rudo prudo@redhat.com
configs/common/aarch64: enable CONFIG_RELR
Using scripts/dummy-tools disables cc-option checks by always returning 'y'. This reveals config options usually hidden on typical developer systems (x86 + gcc), which again causes process_configs.sh to fail due to new, unset options. Fix this by explicitely setting these config options to their defaults.
Signed-off-by: Philipp Rudo prudo@redhat.com Cc: Mark Salter msalter@redhat.com Cc: Mark Langsdorf mlangsdo@redhat.com Cc: Jeremy Linton jlinton@redhat.com
diff a/redhat/configs/common/generic/arm/aarch64/CONFIG_RELR b/redhat/configs/common/generic/arm/aarch64/CONFIG_RELR --- /dev/null +++ b/redhat/configs/common/generic/arm/aarch64/CONFIG_RELR @@ -0,0 +1 @@ +CONFIG_RELR=y
-- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144
From: Philipp Rudo prudo@redhat.com
configs/common: disable CONFIG_INIT_STACK_ALL_{PATTERN,ZERO}
Using scripts/dummy-tools disables cc-option checks by always returning 'y'. This reveals config options usually hidden on typical developer systems (x86 + gcc), which again causes process_configs.sh to fail due to new, unset options. Fix this by explicitely setting these config options their defaults.
Signed-off-by: Philipp Rudo prudo@redhat.com Cc: Ondrej Mosnacek omosnace@redhat.com
diff a/redhat/configs/common/generic/CONFIG_INIT_STACK_ALL_PATTERN b/redhat/configs/common/generic/CONFIG_INIT_STACK_ALL_PATTERN --- /dev/null +++ b/redhat/configs/common/generic/CONFIG_INIT_STACK_ALL_PATTERN @@ -0,0 +1 @@ +# CONFIG_INIT_STACK_ALL_PATTERN is not set diff a/redhat/configs/common/generic/CONFIG_INIT_STACK_ALL_ZERO b/redhat/configs/common/generic/CONFIG_INIT_STACK_ALL_ZERO --- /dev/null +++ b/redhat/configs/common/generic/CONFIG_INIT_STACK_ALL_ZERO @@ -0,0 +1 @@ +# CONFIG_INIT_STACK_ALL_ZERO is not set
-- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144
From: Philipp Rudo prudo@redhat.com
configs/process_configs.sh: make use of dummy-tools
Using cc-option adds a dependency on the compiler in the configuration environment. This usually breaks the config creation when the target architecture is not the host architecture. As a remedy f88717cf44eb ("Temporarily switch TUNE_DEFAULT to y") unset failing configs to their defaults. In the meantime upstream introduced the scripts/dummy-tools, which are meant to disable cc-option checks by always returning 'y'. Make use of the dummy-tools and revert the workaround.
Signed-off-by: Philipp Rudo prudo@redhat.com
diff a/redhat/configs/pending-common/generic/s390x/CONFIG_TUNE_DEFAULT b/redhat/configs/pending-common/generic/s390x/CONFIG_TUNE_DEFAULT --- a/redhat/configs/pending-common/generic/s390x/CONFIG_TUNE_DEFAULT +++ /dev/null @@ -1,4 +0,0 @@ -# Broken in commit 5474080a3a0a ("s390/Kconfig: make use of 'depends on -# cc-option'"); refer to -# https://lore.kernel.org/lkml/20191209164155.GA78160@dev.jcline.org/ -CONFIG_TUNE_DEFAULT=y diff a/redhat/configs/pending-common/generic/s390x/CONFIG_TUNE_Z14 b/redhat/configs/pending-common/generic/s390x/CONFIG_TUNE_Z14 --- a/redhat/configs/pending-common/generic/s390x/CONFIG_TUNE_Z14 +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_TUNE_Z14 is not set diff a/redhat/configs/process_configs.sh b/redhat/configs/process_configs.sh --- a/redhat/configs/process_configs.sh +++ b/redhat/configs/process_configs.sh @@ -193,11 +193,11 @@ function commit_new_configs() fi echo -n "Checking for new configs in $cfg ... "
- make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig + make ARCH="$arch" CROSS_COMPILE=scripts/dummy-tools/ KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig grep -E 'CONFIG_' .listnewconfig > .newoptions if test -s .newoptions then - make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" helpnewconfig >& .helpnewconfig + make ARCH="$arch" CROSS_COMPILE=scripts/dummy-tools/ KCONFIG_CONFIG="$cfgorig" helpnewconfig >& .helpnewconfig parsenewconfigs fi rm .newoptions @@ -227,7 +227,7 @@ function process_configs() fi echo -n "Processing $cfg ... "
- make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig + make ARCH="$arch" CROSS_COMPILE=scripts/dummy-tools/ KCONFIG_CONFIG="$cfgorig" listnewconfig >& .listnewconfig grep -E 'CONFIG_' .listnewconfig > .newoptions if test -n "$NEWOPTIONS" && test -s .newoptions then @@ -252,7 +252,7 @@ function process_configs()
rm .listnewconfig
- make ARCH="$arch" KCONFIG_CONFIG="$cfgorig" olddefconfig > /dev/null || exit 1 + make ARCH="$arch" CROSS_COMPILE=scripts/dummy-tools/ KCONFIG_CONFIG="$cfgorig" olddefconfig > /dev/null || exit 1 echo "# $arch" > "$cfgtmp" cat "$cfgorig" >> "$cfgtmp" if test -n "$CHECKOPTIONS"
-- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144
From: Philipp Rudo prudo@redhat.com
configs/common/s390: Clean up CONFIG_{MARCH,TUNE}_Z*
Most of the configs are identical for fedora and ark so move them to common/generic/s390x.
While at it move the remaining configs in fedora/generic to fedora/generic/s390x.
Signed-off-by: Philipp Rudo prudo@redhat.com
diff a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z10 b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z10 --- a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z10 +++ b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z10 diff a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z14 b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z14 --- a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z14 +++ b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z14 diff a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z196 b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z196 --- a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z196 +++ b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z196 diff a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z900 b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z900 --- a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z900 +++ b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z900 diff a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z990 b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z990 --- a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z990 +++ b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z990 diff a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z9_109 b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z9_109 --- a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z9_109 +++ b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z9_109 diff a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z10 b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z10 --- a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z10 +++ b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z10 diff a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z13 b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z13 --- a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z13 +++ b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z13 diff a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z196 b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z196 --- a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z196 +++ b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z196 diff a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z900 b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z900 --- a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z900 +++ b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z900 diff a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z990 b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z990 --- a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z990 +++ b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z990 diff a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z9_109 b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z9_109 --- a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z9_109 +++ b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z9_109 diff a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_ZEC12 b/redhat/configs/common/generic/s390x/CONFIG_TUNE_ZEC12 --- a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_ZEC12 +++ b/redhat/configs/common/generic/s390x/CONFIG_TUNE_ZEC12 diff a/redhat/configs/fedora/generic/CONFIG_MARCH_Z10 b/redhat/configs/fedora/generic/CONFIG_MARCH_Z10 --- a/redhat/configs/fedora/generic/CONFIG_MARCH_Z10 +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_MARCH_Z10 is not set diff a/redhat/configs/fedora/generic/CONFIG_MARCH_Z14 b/redhat/configs/fedora/generic/CONFIG_MARCH_Z14 --- a/redhat/configs/fedora/generic/CONFIG_MARCH_Z14 +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_MARCH_Z14 is not set diff a/redhat/configs/fedora/generic/CONFIG_MARCH_Z196 b/redhat/configs/fedora/generic/CONFIG_MARCH_Z196 --- a/redhat/configs/fedora/generic/CONFIG_MARCH_Z196 +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_MARCH_Z196 is not set diff a/redhat/configs/fedora/generic/CONFIG_MARCH_Z900 b/redhat/configs/fedora/generic/CONFIG_MARCH_Z900 --- a/redhat/configs/fedora/generic/CONFIG_MARCH_Z900 +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_MARCH_Z900 is not set diff a/redhat/configs/fedora/generic/CONFIG_MARCH_Z990 b/redhat/configs/fedora/generic/CONFIG_MARCH_Z990 --- a/redhat/configs/fedora/generic/CONFIG_MARCH_Z990 +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_MARCH_Z990 is not set diff a/redhat/configs/fedora/generic/CONFIG_MARCH_Z9_109 b/redhat/configs/fedora/generic/CONFIG_MARCH_Z9_109 --- a/redhat/configs/fedora/generic/CONFIG_MARCH_Z9_109 +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_MARCH_Z9_109 is not set diff a/redhat/configs/fedora/generic/CONFIG_TUNE_Z10 b/redhat/configs/fedora/generic/CONFIG_TUNE_Z10 --- a/redhat/configs/fedora/generic/CONFIG_TUNE_Z10 +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_TUNE_Z10 is not set
-- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144
From: Philipp Rudo prudo@redhat.com
configs/ark/s390: set CONFIG_MARCH_Z14 and CONFIG_TUNE_Z15
Optimize ark for newer machines.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1876435 Signed-off-by: Philipp Rudo prudo@redhat.com
diff a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z13 b/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z13 --- a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z13 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_MARCH_Z13=y diff a/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z14 b/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z14 --- /dev/null +++ b/redhat/configs/ark/generic/s390x/CONFIG_MARCH_Z14 @@ -0,0 +1 @@ +CONFIG_MARCH_Z14=y diff a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z14 b/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z14 --- a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z14 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_TUNE_Z14=y diff a/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z15 b/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z15 --- /dev/null +++ b/redhat/configs/ark/generic/s390x/CONFIG_TUNE_Z15 @@ -0,0 +1 @@ +CONFIG_TUNE_Z15=y diff a/redhat/configs/fedora/generic/s390x/CONFIG_MARCH_Z13 b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z13 --- a/redhat/configs/fedora/generic/s390x/CONFIG_MARCH_Z13 +++ b/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z13 diff a/redhat/configs/fedora/generic/s390x/CONFIG_TUNE_Z14 b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z14 --- a/redhat/configs/fedora/generic/s390x/CONFIG_TUNE_Z14 +++ b/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z14 diff a/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z14 b/redhat/configs/fedora/generic/s390x/CONFIG_MARCH_Z14 --- a/redhat/configs/common/generic/s390x/CONFIG_MARCH_Z14 +++ b/redhat/configs/fedora/generic/s390x/CONFIG_MARCH_Z14 diff a/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z15 b/redhat/configs/fedora/generic/s390x/CONFIG_TUNE_Z15 --- a/redhat/configs/common/generic/s390x/CONFIG_TUNE_Z15 +++ b/redhat/configs/fedora/generic/s390x/CONFIG_TUNE_Z15
-- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144
From: Justin Forbes on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5836991...
Acked-by: Justin Forbes jforbes@fedoraproject.org (via approve button)
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5849121...
@prudo1 - nitpick. the second commit changelog seems off, "configs/common: disable CONFIG_INIT_STACK_ALL_{PATTERN,ZERO}". It doesn't really describe the change. Is that fallout from using dummy-tools?
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5849136...
@sfbest - who can review s390x configs changes?
From: Philipp Rudo on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5852247...
@dzickusrh yes, that's a fallout from using the dummy-tools. These two configs only work with clang and thus are usually hidden. Plus they are part of a choice from which CONFIG_INIT_STACK_NONE is set. Do you want me to improve the wording in the commit message?
From: Philipp Rudo on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5852394...
best choice would be @dhorak1, @cohuck or @thuth
From: Daniel Horak on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5853552...
@prudo1 - I have couple comments - the Fedora config has been switched to CONFIG_TUNE_DEFAULT while it should be CONFIG_TUNE_Z13 (to "match" the CONFIG_MARCH_ZEC12). But looking further this change happened even before your MR. Lets fix it later (and move to CONFIG_MARCH_Z13). - could the `common/generic/s390x` directory contain the "not set" entries for all MARCH/TUNE options and then let ark and fedora override only their specific settings? Right now it's missing CONFIG_MARCH_ZEC12 and CONFIG_MARCH_Z14, adding a slight inconsistency.
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5855159...
Yes please. Just indicate those config changes are the result of dummy-tool. Right now it looks like a copy-n-paste error from the previous commit, so I can't tell if it was intentional (which in this case it is) or accident. I just wanted some extra wording to indicate the copy-n-pasted changelog was on purpose.
From: Philipp Rudo on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5856405...
Hi Dan,
1. If I need to push an other version I can add the Fedora update as well. This MR already got way bigger than I expected. So I don't see a problem in adding one more commit.
2. I did a quick test and this should indeed work. However I'm not sure if it's the intended behavior. My understanding so far was that common/ should contain configs that are shared between ark and fedora and not that common/ contains the defaults which can be overwritten in ark/ and fedora/. Anyway, if the maintainers agree with your suggestion I'm happy to change it.
From: Justin Forbes on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5856981...
If I need to push an other version I can add the Fedora update as well. This
MR already got way bigger than I expected. So I don't see a problem in adding one more commit.
Either way, if you do it in this request, I am happy to take it. If it goes in as a separate MR, fedora specific changes do not require the same ack structure. I review/ack/merge, though with s390x I tend to take whatever you folks recommend.
My understanding so far was that common/ should contain configs that are
shared between ark and fedora and not that common/ contains the defaults which can be overwritten in ark/ and fedora/.
This is indeed the case in theory, if an entry is in common, it should ideally be the same, with no corresponding entry in fedora or ark directory. In practice, the scripts tend to generate a bit differently. The intention is to run a clean up script on a regular interval which consolidates entries in fedora and ark if they are the same, and removes common if they are different.
For this particular case I don't think an entry is necessary in common if they are going to be different, but I do have to ask if we really need them to be different. Does Fedora need to support older hardware here? I am fine with either answer, I really don't know what hardware people are running Fedora on for s390x.
From: Daniel Horak on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5857219...
Fedora can move to z13 as it's the lowest hardware in the infrastructure, which can't be easily changed. But for the change from the current zEC12 to z13 we should follow the processes (a formal Change, touches multiple packages). Thus I would leave changing the Fedora options for a later time.
For the correct use of the common/ark/fedora dirs I leave it on the kernel maintainers :-)
From: Cornelia Huck on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5857328...
FWIW, z13 is currently the highest architecture level that QEMU can emulate, and I don't think Fedora should target a level higher than that without some really pressing need. (z14 support for QEMU tcg is in the works.)
From: Patrick Talbert on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5952041...
What is the status here? Is this good as-is?
From: Cornelia Huck on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5952456...
Looking at the s390-related parts only, it seems good to me. The other changes also seem reasonable, but it is not my area of expertise.
From: Cornelia Huck on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5952465...
Acked-by: Cornelia Huck cohuck@redhat.com
From: Florian Weimer on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5952588...
As far as I know, Fedora infrastructure is not ready for this because it's still z13. Is this going to a problem for ARK or Fedora? Thanks.
From: Cornelia Huck on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5952672...
Unless I'm confused, Fedora stays at the z12 level. If ARK is relying on the Fedora infrastructure, we have a problem.
From: Daniel Horak on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1144#note_5953058...
The move to z14 is an ARK specific change, so it's safe from the Fedora point of view. I want to change the Fedora baseline (to z13) in a separate step.
kernel@lists.fedoraproject.org