lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ