[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1a2a885b-d408-0426-8e8c-ad1c56f4c215@linux.ibm.com>
Date: Fri, 1 Jul 2022 12:10:18 +0200
From: Christian Borntraeger <borntraeger@...ux.ibm.com>
To: Steffen Eiden <seiden@...ux.ibm.com>,
Heiko Carstens <hca@...ux.ibm.com>,
Alexander Gordeev <agordeev@...ux.ibm.com>,
Janosch Frank <frankja@...ux.ibm.com>,
Claudio Imbrenda <imbrenda@...ux.ibm.com>,
Vasily Gorbik <gor@...ux.ibm.com>, linux-s390@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-mm@...ck.org
Cc: nrb@...ux.ibm.com
Subject: Re: [PATCH 1/2] s390/hwcaps: Add HWCAP_UV
Am 01.07.22 um 12:02 schrieb Steffen Eiden:
> This patch adds a hardware capability for the Ultravisor.
> This capability will be present if facility 158 is enabled.
>
> Signed-off-by: Steffen Eiden <seiden@...ux.ibm.com>
> ---
> arch/s390/include/asm/elf.h | 2 ++
> arch/s390/kernel/processor.c | 5 +++++
> 2 files changed, 7 insertions(+)
>
> diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
> index 70a30ae258b7..3a5e89ce4fd0 100644
> --- a/arch/s390/include/asm/elf.h
> +++ b/arch/s390/include/asm/elf.h
> @@ -115,6 +115,7 @@ enum {
> HWCAP_NR_NNPA = 20,
> HWCAP_NR_PCI_MIO = 21,
> HWCAP_NR_SIE = 22,
> + HWCAP_NR_UV = 23,
> HWCAP_NR_MAX
> };
question for Heiko, Vasily, Alexander. This certainly works.
An alternative implementation would be to separate module_cpu_feature_match
from HWCAP. (so uv would not be shown in /proc/cpuinfo and it would be
seen in the aux vector). I would imagine that we might have more drivers
in the future that depend on a facility but this facility is not really
useful for userspace to know.
See arch/s390/include/asm/cpufeature.h
* Restrict the set of exposed CPU features to ELF hardware capabilities for
* now. Additional machine flags can be indicated by values larger than
* MAX_ELF_HWCAP_FEATURES.
Any preference from your side?
>
> @@ -142,6 +143,7 @@ enum {
> #define HWCAP_NNPA BIT(HWCAP_NR_NNPA)
> #define HWCAP_PCI_MIO BIT(HWCAP_NR_PCI_MIO)
> #define HWCAP_SIE BIT(HWCAP_NR_SIE)
> +#define HWCAP_UV BIT(HWCAP_NR_UV)
>
> /*
> * These are used to set parameters in the core dumps.
> diff --git a/arch/s390/kernel/processor.c b/arch/s390/kernel/processor.c
> index aa0e0e7fc773..80ccd57a2b00 100644
> --- a/arch/s390/kernel/processor.c
> +++ b/arch/s390/kernel/processor.c
> @@ -141,6 +141,7 @@ static void show_cpu_summary(struct seq_file *m, void *v)
> [HWCAP_NR_NNPA] = "nnpa",
> [HWCAP_NR_PCI_MIO] = "pcimio",
> [HWCAP_NR_SIE] = "sie",
> + [HWCAP_NR_UV] = "uv",
> };
> int i, cpu;
>
> @@ -249,6 +250,10 @@ static int __init setup_hwcaps(void)
> if (sclp.has_sief2)
> elf_hwcap |= HWCAP_SIE;
>
> + /* ultravisor-call (secure execution) */
> + if (test_facility(158))
> + elf_hwcap |= HWCAP_UV;
> +
> return 0;
> }
> arch_initcall(setup_hwcaps);
Powered by blists - more mailing lists