diff mbox series

[RESENT] arm64: cpuinfo: Add "model name" in /proc/cpuinfo for 64bit tasks also

Message ID 20210201235809.401-1-cnsztl@gmail.com (mailing list archive)
State New, archived
Headers show
Series [RESENT] arm64: cpuinfo: Add "model name" in /proc/cpuinfo for 64bit tasks also | expand

Commit Message

Tianling Shen Feb. 1, 2021, 11:58 p.m. UTC
From: Sumit Gupta <sumitg@nvidia.com>

Removed restriction of displaying model name for 32 bit tasks only.
This can be used for 64 bit tasks as well, and it's useful for some
tools that already parse this, such as coreutils `uname -p`, Ubuntu
model name display etc.

It should be like this:
```
$ cat '/proc/cpuinfo' | grep 'model name' | head -n 1
model name : ARMv8 Processor rev X (v8l)
```

Link: https://lore.kernel.org/lkml/1472461345-28219-1-git-send-email-sumitg@nvidia.com/

Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
---
 arch/arm64/kernel/cpuinfo.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Catalin Marinas Feb. 2, 2021, 11:39 a.m. UTC | #1
On Tue, Feb 02, 2021 at 07:58:09AM +0800, Tianling Shen wrote:
> From: Sumit Gupta <sumitg@nvidia.com>
> 
> Removed restriction of displaying model name for 32 bit tasks only.
> This can be used for 64 bit tasks as well, and it's useful for some
> tools that already parse this, such as coreutils `uname -p`, Ubuntu
> model name display etc.
> 
> It should be like this:
> ```
> $ cat '/proc/cpuinfo' | grep 'model name' | head -n 1
> model name : ARMv8 Processor rev X (v8l)
> ```
> 
> Link: https://lore.kernel.org/lkml/1472461345-28219-1-git-send-email-sumitg@nvidia.com/

The thread above already has arguments against this patch. Has anything
changed since?
Tianling Shen Feb. 2, 2021, 1:06 p.m. UTC | #2
From reply of the upstream patch:
https://lore.kernel.org/linux-arm-kernel/20160629195137.GA142854@google.com/

Brian Norris wrote:
```
What's the status on this patch? The previous patch (which was accepted
already) is indeed confusing, because ARM32 processes on an ARM64 system
are not necessarily setting PER_LINUX32.

I'm also curious, why was 'model name' removed from ARM64 in the first
place? Plenty of other architectures support a similar property, and
it's useful for some tools that already parse this, such as coreutils
`uname -p` on Gentoo (and presumably others -- my Ubuntu machine must be
similarly patched, as it supports `uname -p` on x86_64).
```

However, the restriction seems not so fairly:
Firstly, the ARM32, which is the purpose of the author making the code
works for,
with this restriction, even doesn't work in some cases.
Secondly, as the code works for both ARM32 and ARM64, what's the
significance of setting
such a restriction?
Thirdly, there're many tools and systems which parse this, so the
field actually makes sense.
For example, like what we have written in cpuinfo.c#L148, "Give glibc
what it expects".

So, in my option, it's fine to remove the restriction and let it work
for both architectures.


Catalin Marinas <catalin.marinas@arm.com> 于2021年2月2日周二 下午7:39写道:
>
> On Tue, Feb 02, 2021 at 07:58:09AM +0800, Tianling Shen wrote:
> > From: Sumit Gupta <sumitg@nvidia.com>
> >
> > Removed restriction of displaying model name for 32 bit tasks only.
> > This can be used for 64 bit tasks as well, and it's useful for some
> > tools that already parse this, such as coreutils `uname -p`, Ubuntu
> > model name display etc.
> >
> > It should be like this:
> > ```
> > $ cat '/proc/cpuinfo' | grep 'model name' | head -n 1
> > model name : ARMv8 Processor rev X (v8l)
> > ```
> >
> > Link: https://lore.kernel.org/lkml/1472461345-28219-1-git-send-email-sumitg@nvidia.com/
>
> The thread above already has arguments against this patch. Has anything
> changed since?
>
> --
> Catalin
Robin Murphy Feb. 2, 2021, 1:09 p.m. UTC | #3
On 2021-02-01 23:58, Tianling Shen wrote:
> From: Sumit Gupta <sumitg@nvidia.com>
> 
> Removed restriction of displaying model name for 32 bit tasks only.
> This can be used for 64 bit tasks as well, and it's useful for some
> tools that already parse this, such as coreutils `uname -p`, Ubuntu
> model name display etc.

How exactly is it useful? It clearly isn't necessary for compatibility, 
since AArch64 userspace has apparently been running quite happily for 8 
years without it. It also doesn't convey anything meaningful to the 
user, since they already know they're on an Armv8-compatible processor 
by the fact that they're running AArch64 userspace at all.

Robin.

> It should be like this:
> ```
> $ cat '/proc/cpuinfo' | grep 'model name' | head -n 1
> model name : ARMv8 Processor rev X (v8l)
> ```
> 
> Link: https://lore.kernel.org/lkml/1472461345-28219-1-git-send-email-sumitg@nvidia.com/
> 
> Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
> Signed-off-by: Tianling Shen <cnsztl@gmail.com>
> ---
>   arch/arm64/kernel/cpuinfo.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c
> index 77605aec25fe..d69b4e486098 100644
> --- a/arch/arm64/kernel/cpuinfo.c
> +++ b/arch/arm64/kernel/cpuinfo.c
> @@ -148,8 +148,7 @@ static int c_show(struct seq_file *m, void *v)
>   		 * "processor".  Give glibc what it expects.
>   		 */
>   		seq_printf(m, "processor\t: %d\n", i);
> -		if (compat)
> -			seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n",
> +		seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n",
>   				   MIDR_REVISION(midr), COMPAT_ELF_PLATFORM);
>   
>   		seq_printf(m, "BogoMIPS\t: %lu.%02lu\n",
>
diff mbox series

Patch

diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c
index 77605aec25fe..d69b4e486098 100644
--- a/arch/arm64/kernel/cpuinfo.c
+++ b/arch/arm64/kernel/cpuinfo.c
@@ -148,8 +148,7 @@  static int c_show(struct seq_file *m, void *v)
 		 * "processor".  Give glibc what it expects.
 		 */
 		seq_printf(m, "processor\t: %d\n", i);
-		if (compat)
-			seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n",
+		seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n",
 				   MIDR_REVISION(midr), COMPAT_ELF_PLATFORM);
 
 		seq_printf(m, "BogoMIPS\t: %lu.%02lu\n",