[SRU,B,D,E,1/1] s390: add support for IBM z15 machines
diff mbox series

Message ID 1569240879-9834-2-git-send-email-frank.heimes@canonical.com
State New
Headers show
Series
  • Enhanced Hardware Support - Finalize Naming (LP: 1842774)
Related show

Commit Message

Frank Heimes Sept. 23, 2019, 12:14 p.m. UTC
From: Martin Schwidefsky <schwidefsky@de.ibm.com>

BugLink: https://bugs.launchpad.net/bugs/1842774

Add detection for machine types 0x8562 and 8x8561 and set the ELF platform
name to z15. Add the miscellaneous-instruction-extension 3 facility to
the list of facilities for z15.

And allow to generate code that only runs on a z15 machine.

Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
(cherry picked from commit a0e2251132995b962281aa80ab54a9288f9e0b6b)
Signed-off-by: Frank Heimes <frank.heimes@canonical.com>
---
 arch/s390/Kconfig                | 18 ++++++++++++++++++
 arch/s390/Makefile               |  2 ++
 arch/s390/kernel/setup.c         |  4 ++++
 arch/s390/tools/gen_facilities.c |  3 +++
 4 files changed, 27 insertions(+)

Comments

Stefan Bader Sept. 25, 2019, 9:55 a.m. UTC | #1
On 23.09.19 14:14, frank.heimes@canonical.com wrote:
> From: Martin Schwidefsky <schwidefsky@de.ibm.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1842774
> 
> Add detection for machine types 0x8562 and 8x8561 and set the ELF platform
> name to z15. Add the miscellaneous-instruction-extension 3 facility to
> the list of facilities for z15.
> 
> And allow to generate code that only runs on a z15 machine.
> 
> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
> (cherry picked from commit a0e2251132995b962281aa80ab54a9288f9e0b6b)
> Signed-off-by: Frank Heimes <frank.heimes@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
> ---

A very weak ack. The only change I really would like to see in B/D is the hunk
with the two additional case statements in setup.c. The rest adds a config
option and related code which never will be allowed to be turned on in the older
releases as it reads like breaking the kernel for users with old hardware.

-Stefan

>  arch/s390/Kconfig                | 18 ++++++++++++++++++
>  arch/s390/Makefile               |  2 ++
>  arch/s390/kernel/setup.c         |  4 ++++
>  arch/s390/tools/gen_facilities.c |  3 +++
>  4 files changed, 27 insertions(+)
> 
> diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
> index c27cac3..0f08abc 100644
> --- a/arch/s390/Kconfig
> +++ b/arch/s390/Kconfig
> @@ -231,6 +231,10 @@ config HAVE_MARCH_Z14_FEATURES
>  	def_bool n
>  	select HAVE_MARCH_Z13_FEATURES
>  
> +config HAVE_MARCH_Z15_FEATURES
> +	def_bool n
> +	select HAVE_MARCH_Z14_FEATURES
> +
>  choice
>  	prompt "Processor type"
>  	default MARCH_Z196
> @@ -299,6 +303,14 @@ config MARCH_Z14
>  	  and 3906 series). The kernel will be slightly faster but will not
>  	  work on older machines.
>  
> +config MARCH_Z15
> +	bool "IBM z15"
> +	select HAVE_MARCH_Z15_FEATURES
> +	help
> +	  Select this to enable optimizations for IBM z15 (8562
> +	  and 8561 series). The kernel will be slightly faster but will not
> +	  work on older machines.
> +
>  endchoice
>  
>  config MARCH_Z900_TUNE
> @@ -325,6 +337,9 @@ config MARCH_Z13_TUNE
>  config MARCH_Z14_TUNE
>  	def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
>  
> +config MARCH_Z15_TUNE
> +	def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT
> +
>  choice
>  	prompt "Tune code generation"
>  	default TUNE_DEFAULT
> @@ -366,6 +381,9 @@ config TUNE_Z13
>  config TUNE_Z14
>  	bool "IBM z14"
>  
> +config TUNE_Z15
> +	bool "IBM z15"
> +
>  endchoice
>  
>  config 64BIT
> diff --git a/arch/s390/Makefile b/arch/s390/Makefile
> index b34bf2d..83ea3ef 100644
> --- a/arch/s390/Makefile
> +++ b/arch/s390/Makefile
> @@ -30,6 +30,7 @@ mflags-$(CONFIG_MARCH_Z196)   := -march=z196
>  mflags-$(CONFIG_MARCH_ZEC12)  := -march=zEC12
>  mflags-$(CONFIG_MARCH_Z13)    := -march=z13
>  mflags-$(CONFIG_MARCH_Z14)    := -march=z14
> +mflags-$(CONFIG_MARCH_Z15)    := -march=z15
>  
>  export CC_FLAGS_MARCH := $(mflags-y)
>  
> @@ -44,6 +45,7 @@ cflags-$(CONFIG_MARCH_Z196_TUNE)	+= -mtune=z196
>  cflags-$(CONFIG_MARCH_ZEC12_TUNE)	+= -mtune=zEC12
>  cflags-$(CONFIG_MARCH_Z13_TUNE)		+= -mtune=z13
>  cflags-$(CONFIG_MARCH_Z14_TUNE)		+= -mtune=z14
> +cflags-$(CONFIG_MARCH_Z15_TUNE)		+= -mtune=z15
>  
>  cflags-y += -Wa,-I$(srctree)/arch/$(ARCH)/include
>  
> diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
> index 077d160..23315cb 100644
> --- a/arch/s390/kernel/setup.c
> +++ b/arch/s390/kernel/setup.c
> @@ -837,6 +837,10 @@ static int __init setup_hwcaps(void)
>  	case 0x3907:
>  		strcpy(elf_platform, "z14");
>  		break;
> +	case 0x8561:
> +	case 0x8562:
> +		strcpy(elf_platform, "z15");
> +		break;
>  	}
>  
>  	/*
> diff --git a/arch/s390/tools/gen_facilities.c b/arch/s390/tools/gen_facilities.c
> index d7c8c10..9a42fd5 100644
> --- a/arch/s390/tools/gen_facilities.c
> +++ b/arch/s390/tools/gen_facilities.c
> @@ -58,6 +58,9 @@ static struct facility_def facility_defs[] = {
>  #ifdef CONFIG_HAVE_MARCH_Z14_FEATURES
>  			58, /* miscellaneous-instruction-extension 2 */
>  #endif
> +#ifdef CONFIG_HAVE_MARCH_Z15_FEATURES
> +			61, /* miscellaneous-instruction-extension 3 */
> +#endif
>  			-1 /* END */
>  		}
>  	},
>
Sultan Alsawaf Sept. 25, 2019, 3:13 p.m. UTC | #2
On Mon, Sep 23, 2019 at 02:14:39PM +0200, frank.heimes@canonical.com wrote:
> From: Martin Schwidefsky <schwidefsky@de.ibm.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1842774
> 
> Add detection for machine types 0x8562 and 8x8561 and set the ELF platform
> name to z15. Add the miscellaneous-instruction-extension 3 facility to
> the list of facilities for z15.
> 
> And allow to generate code that only runs on a z15 machine.
> 
> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
> (cherry picked from commit a0e2251132995b962281aa80ab54a9288f9e0b6b)
> Signed-off-by: Frank Heimes <frank.heimes@canonical.com>
> ---
>  arch/s390/Kconfig                | 18 ++++++++++++++++++
>  arch/s390/Makefile               |  2 ++
>  arch/s390/kernel/setup.c         |  4 ++++
>  arch/s390/tools/gen_facilities.c |  3 +++
>  4 files changed, 27 insertions(+)
> 
> diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
> index c27cac3..0f08abc 100644
> --- a/arch/s390/Kconfig
> +++ b/arch/s390/Kconfig
> @@ -231,6 +231,10 @@ config HAVE_MARCH_Z14_FEATURES
>  	def_bool n
>  	select HAVE_MARCH_Z13_FEATURES
>  
> +config HAVE_MARCH_Z15_FEATURES
> +	def_bool n
> +	select HAVE_MARCH_Z14_FEATURES
> +
>  choice
>  	prompt "Processor type"
>  	default MARCH_Z196
> @@ -299,6 +303,14 @@ config MARCH_Z14
>  	  and 3906 series). The kernel will be slightly faster but will not
>  	  work on older machines.
>  
> +config MARCH_Z15
> +	bool "IBM z15"
> +	select HAVE_MARCH_Z15_FEATURES
> +	help
> +	  Select this to enable optimizations for IBM z15 (8562
> +	  and 8561 series). The kernel will be slightly faster but will not
> +	  work on older machines.
> +
>  endchoice
>  
>  config MARCH_Z900_TUNE
> @@ -325,6 +337,9 @@ config MARCH_Z13_TUNE
>  config MARCH_Z14_TUNE
>  	def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
>  
> +config MARCH_Z15_TUNE
> +	def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT
> +
>  choice
>  	prompt "Tune code generation"
>  	default TUNE_DEFAULT
> @@ -366,6 +381,9 @@ config TUNE_Z13
>  config TUNE_Z14
>  	bool "IBM z14"
>  
> +config TUNE_Z15
> +	bool "IBM z15"
> +
>  endchoice
>  
>  config 64BIT
> diff --git a/arch/s390/Makefile b/arch/s390/Makefile
> index b34bf2d..83ea3ef 100644
> --- a/arch/s390/Makefile
> +++ b/arch/s390/Makefile
> @@ -30,6 +30,7 @@ mflags-$(CONFIG_MARCH_Z196)   := -march=z196
>  mflags-$(CONFIG_MARCH_ZEC12)  := -march=zEC12
>  mflags-$(CONFIG_MARCH_Z13)    := -march=z13
>  mflags-$(CONFIG_MARCH_Z14)    := -march=z14
> +mflags-$(CONFIG_MARCH_Z15)    := -march=z15
>  
>  export CC_FLAGS_MARCH := $(mflags-y)
>  
> @@ -44,6 +45,7 @@ cflags-$(CONFIG_MARCH_Z196_TUNE)	+= -mtune=z196
>  cflags-$(CONFIG_MARCH_ZEC12_TUNE)	+= -mtune=zEC12
>  cflags-$(CONFIG_MARCH_Z13_TUNE)		+= -mtune=z13
>  cflags-$(CONFIG_MARCH_Z14_TUNE)		+= -mtune=z14
> +cflags-$(CONFIG_MARCH_Z15_TUNE)		+= -mtune=z15
>  
>  cflags-y += -Wa,-I$(srctree)/arch/$(ARCH)/include
>  
> diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
> index 077d160..23315cb 100644
> --- a/arch/s390/kernel/setup.c
> +++ b/arch/s390/kernel/setup.c
> @@ -837,6 +837,10 @@ static int __init setup_hwcaps(void)
>  	case 0x3907:
>  		strcpy(elf_platform, "z14");
>  		break;
> +	case 0x8561:
> +	case 0x8562:
> +		strcpy(elf_platform, "z15");
> +		break;
>  	}
>  
>  	/*
> diff --git a/arch/s390/tools/gen_facilities.c b/arch/s390/tools/gen_facilities.c
> index d7c8c10..9a42fd5 100644
> --- a/arch/s390/tools/gen_facilities.c
> +++ b/arch/s390/tools/gen_facilities.c
> @@ -58,6 +58,9 @@ static struct facility_def facility_defs[] = {
>  #ifdef CONFIG_HAVE_MARCH_Z14_FEATURES
>  			58, /* miscellaneous-instruction-extension 2 */
>  #endif
> +#ifdef CONFIG_HAVE_MARCH_Z15_FEATURES
> +			61, /* miscellaneous-instruction-extension 3 */
> +#endif
>  			-1 /* END */
>  		}
>  	},
> -- 
> 2.7.4
> 
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

Acked-by: Sultan Alsawaf <sultan.alsawaf@canonical.com>

Patch
diff mbox series

diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index c27cac3..0f08abc 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -231,6 +231,10 @@  config HAVE_MARCH_Z14_FEATURES
 	def_bool n
 	select HAVE_MARCH_Z13_FEATURES
 
+config HAVE_MARCH_Z15_FEATURES
+	def_bool n
+	select HAVE_MARCH_Z14_FEATURES
+
 choice
 	prompt "Processor type"
 	default MARCH_Z196
@@ -299,6 +303,14 @@  config MARCH_Z14
 	  and 3906 series). The kernel will be slightly faster but will not
 	  work on older machines.
 
+config MARCH_Z15
+	bool "IBM z15"
+	select HAVE_MARCH_Z15_FEATURES
+	help
+	  Select this to enable optimizations for IBM z15 (8562
+	  and 8561 series). The kernel will be slightly faster but will not
+	  work on older machines.
+
 endchoice
 
 config MARCH_Z900_TUNE
@@ -325,6 +337,9 @@  config MARCH_Z13_TUNE
 config MARCH_Z14_TUNE
 	def_bool TUNE_Z14 || MARCH_Z14 && TUNE_DEFAULT
 
+config MARCH_Z15_TUNE
+	def_bool TUNE_Z15 || MARCH_Z15 && TUNE_DEFAULT
+
 choice
 	prompt "Tune code generation"
 	default TUNE_DEFAULT
@@ -366,6 +381,9 @@  config TUNE_Z13
 config TUNE_Z14
 	bool "IBM z14"
 
+config TUNE_Z15
+	bool "IBM z15"
+
 endchoice
 
 config 64BIT
diff --git a/arch/s390/Makefile b/arch/s390/Makefile
index b34bf2d..83ea3ef 100644
--- a/arch/s390/Makefile
+++ b/arch/s390/Makefile
@@ -30,6 +30,7 @@  mflags-$(CONFIG_MARCH_Z196)   := -march=z196
 mflags-$(CONFIG_MARCH_ZEC12)  := -march=zEC12
 mflags-$(CONFIG_MARCH_Z13)    := -march=z13
 mflags-$(CONFIG_MARCH_Z14)    := -march=z14
+mflags-$(CONFIG_MARCH_Z15)    := -march=z15
 
 export CC_FLAGS_MARCH := $(mflags-y)
 
@@ -44,6 +45,7 @@  cflags-$(CONFIG_MARCH_Z196_TUNE)	+= -mtune=z196
 cflags-$(CONFIG_MARCH_ZEC12_TUNE)	+= -mtune=zEC12
 cflags-$(CONFIG_MARCH_Z13_TUNE)		+= -mtune=z13
 cflags-$(CONFIG_MARCH_Z14_TUNE)		+= -mtune=z14
+cflags-$(CONFIG_MARCH_Z15_TUNE)		+= -mtune=z15
 
 cflags-y += -Wa,-I$(srctree)/arch/$(ARCH)/include
 
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index 077d160..23315cb 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -837,6 +837,10 @@  static int __init setup_hwcaps(void)
 	case 0x3907:
 		strcpy(elf_platform, "z14");
 		break;
+	case 0x8561:
+	case 0x8562:
+		strcpy(elf_platform, "z15");
+		break;
 	}
 
 	/*
diff --git a/arch/s390/tools/gen_facilities.c b/arch/s390/tools/gen_facilities.c
index d7c8c10..9a42fd5 100644
--- a/arch/s390/tools/gen_facilities.c
+++ b/arch/s390/tools/gen_facilities.c
@@ -58,6 +58,9 @@  static struct facility_def facility_defs[] = {
 #ifdef CONFIG_HAVE_MARCH_Z14_FEATURES
 			58, /* miscellaneous-instruction-extension 2 */
 #endif
+#ifdef CONFIG_HAVE_MARCH_Z15_FEATURES
+			61, /* miscellaneous-instruction-extension 3 */
+#endif
 			-1 /* END */
 		}
 	},