All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Renninger <trenn@suse.de>
To: Mark Rutland <mark.rutland@arm.com>
Cc: linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org,
	linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux@armlinux.org.uk, will.deacon@arm.com, x86@kernel.org,
	fschnitzlein@suse.de
Subject: Re: [PATCH v5 0/3] sysfs: add sysfs based cpuinfo
Date: Fri, 06 Dec 2019 18:29:39 +0100	[thread overview]
Message-ID: <2898795.Dnvf4huJ59@skinner.arch.suse.de> (raw)
In-Reply-To: <20191206165803.GD21671@lakrids.cambridge.arm.com>

On Friday, December 6, 2019 5:58:03 PM CET Mark Rutland wrote:
> Hi Thomas,
> 
> On Fri, Dec 06, 2019 at 05:24:18PM +0100, Thomas Renninger wrote:
> > I picked up Felix Schnizlein's work from 2017.
> > 
> > It was already reviewed by Greg-KH at this time and even
> > pushed into linux-next tree, when it came out that the mails
> > never reached lkml, even the list was added to CC.
> > 
> > ARM people then correctly complained that this needs more review
> > by ARCH people. It got reverted, Felix had no time anymore and this
> > nice patcheset was hanging around nowhere...
> 
> Can you please provide a rationale for this?

/proc moves to /sys. For years already, some data needs longer...

If you compare /proc/cpuinfo between different archs, you realize
that it is rather different and a huge mess of arbitrary info.

It would be great if people think a bit more about this...
What else could show up on which architecture to avoid different
interfaces (sys files) with the same info across architectures.

I'd like to have general CPU identification, and other info like
bugs, flags or whatever info that exists across architectures in one
sysfs file/directory.

arch=$(uname -m)
case $arch in
   x86_64)
      cat /sys/devices/system/cpu/cpu0/info/name
      ;;
   aarch64)
      cat /sys/devices/system/cpu/cpu0/regs/identification
      ::
   ...
esac

This is better than grepping on different identifiers in huge /proc/cpuinfo,
but it still is lame.

Ideal would be:
/sys/devices/system/cpu/cpu0/info/{name,vendor,flags,bugs,base_freq,...}
being avail for all CPUs on all archs.

if it does not exist yet..., it should at least show up there if it gets
implemented at some point of time.

> there's some data in /proc/cpuinfo that I think makes no sense to try to
> export export in a structured way (e.g. bogomips).

I'd be happy to remove bogomips if nobody needs this.

> 
> > Tested on aarch64:
> > 
> > /sys/devices/system/cpu/cpu1/info/:[0]# ls
> > architecture  bogomips  flags  implementer  part  revision  variant
> > 
> > ------------------------------------------------------------
> > 
> > for file in *;do echo $file; cat $file;echo;done
> > architecture
> > 8
> > 
> > bogomips
> > 40.00
> > 
> > flags
> > fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid asimdrdm
> > 
> > implementer
> > 0x51
> > 
> > part
> > 0xc00
> > 
> > revision
> > 1
> > 
> > variant
> > 0x0
> 
> For arm64 we already expose the MIDR and REVIDR register values under
> /sys/devices/system/cpu/cpu*/regs/identification, and that's the bulk of
> the useful information above

I'd like to come up with an extra CONFIG which parses:

arch/arm64/include/asm/cputype.h:

#define ARM_CPU_PART_AEM_V8             0xD0F
#define ARM_CPU_PART_FOUNDATION         0xD00
#define ARM_CPU_PART_CORTEX_A57         0xD07
#define ARM_CPU_PART_CORTEX_A72         0xD08

and

#define ARM_CPU_IMP_ARM                 0x41
#define ARM_CPU_IMP_APM                 0x50
#define ARM_CPU_IMP_CAVIUM              0x43
#define ARM_CPU_IMP_BRCM                0x42
#define ARM_CPU_IMP_QCOM                0x51
#define ARM_CPU_IMP_NVIDIA              0x4E

and converts the defines to strings, same as here:

arch/x86/include/asm/intel-family.h

#define INTEL_FAM6_SKYLAKE_L            0x4E
#define INTEL_FAM6_SKYLAKE              0x5E
#define INTEL_FAM6_SKYLAKE_X            0x55
#define INTEL_FAM6_KABYLAKE_L           0x8E
#define INTEL_FAM6_KABYLAKE             0x9E

and provide the model name (and for ARM the vendor name)
compiled in a module.

At least for aarch64 and x86 it seem to be possible
to get a vendor/model string from the same defined file:
/sys/devices/system/cpu/cpu0/info/{model_name,vendor}


> (aside from the flags/hwcaps).

which make sense to add there, right?

Thanks,

      Thomas




WARNING: multiple messages have this Message-ID (diff)
From: Thomas Renninger <trenn@suse.de>
To: Mark Rutland <mark.rutland@arm.com>
Cc: linux-arch@vger.kernel.org, gregkh@linuxfoundation.org,
	x86@kernel.org, will.deacon@arm.com,
	linux-kernel@vger.kernel.org, linux@armlinux.org.uk,
	fschnitzlein@suse.de, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v5 0/3] sysfs: add sysfs based cpuinfo
Date: Fri, 06 Dec 2019 18:29:39 +0100	[thread overview]
Message-ID: <2898795.Dnvf4huJ59@skinner.arch.suse.de> (raw)
In-Reply-To: <20191206165803.GD21671@lakrids.cambridge.arm.com>

On Friday, December 6, 2019 5:58:03 PM CET Mark Rutland wrote:
> Hi Thomas,
> 
> On Fri, Dec 06, 2019 at 05:24:18PM +0100, Thomas Renninger wrote:
> > I picked up Felix Schnizlein's work from 2017.
> > 
> > It was already reviewed by Greg-KH at this time and even
> > pushed into linux-next tree, when it came out that the mails
> > never reached lkml, even the list was added to CC.
> > 
> > ARM people then correctly complained that this needs more review
> > by ARCH people. It got reverted, Felix had no time anymore and this
> > nice patcheset was hanging around nowhere...
> 
> Can you please provide a rationale for this?

/proc moves to /sys. For years already, some data needs longer...

If you compare /proc/cpuinfo between different archs, you realize
that it is rather different and a huge mess of arbitrary info.

It would be great if people think a bit more about this...
What else could show up on which architecture to avoid different
interfaces (sys files) with the same info across architectures.

I'd like to have general CPU identification, and other info like
bugs, flags or whatever info that exists across architectures in one
sysfs file/directory.

arch=$(uname -m)
case $arch in
   x86_64)
      cat /sys/devices/system/cpu/cpu0/info/name
      ;;
   aarch64)
      cat /sys/devices/system/cpu/cpu0/regs/identification
      ::
   ...
esac

This is better than grepping on different identifiers in huge /proc/cpuinfo,
but it still is lame.

Ideal would be:
/sys/devices/system/cpu/cpu0/info/{name,vendor,flags,bugs,base_freq,...}
being avail for all CPUs on all archs.

if it does not exist yet..., it should at least show up there if it gets
implemented at some point of time.

> there's some data in /proc/cpuinfo that I think makes no sense to try to
> export export in a structured way (e.g. bogomips).

I'd be happy to remove bogomips if nobody needs this.

> 
> > Tested on aarch64:
> > 
> > /sys/devices/system/cpu/cpu1/info/:[0]# ls
> > architecture  bogomips  flags  implementer  part  revision  variant
> > 
> > ------------------------------------------------------------
> > 
> > for file in *;do echo $file; cat $file;echo;done
> > architecture
> > 8
> > 
> > bogomips
> > 40.00
> > 
> > flags
> > fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid asimdrdm
> > 
> > implementer
> > 0x51
> > 
> > part
> > 0xc00
> > 
> > revision
> > 1
> > 
> > variant
> > 0x0
> 
> For arm64 we already expose the MIDR and REVIDR register values under
> /sys/devices/system/cpu/cpu*/regs/identification, and that's the bulk of
> the useful information above

I'd like to come up with an extra CONFIG which parses:

arch/arm64/include/asm/cputype.h:

#define ARM_CPU_PART_AEM_V8             0xD0F
#define ARM_CPU_PART_FOUNDATION         0xD00
#define ARM_CPU_PART_CORTEX_A57         0xD07
#define ARM_CPU_PART_CORTEX_A72         0xD08

and

#define ARM_CPU_IMP_ARM                 0x41
#define ARM_CPU_IMP_APM                 0x50
#define ARM_CPU_IMP_CAVIUM              0x43
#define ARM_CPU_IMP_BRCM                0x42
#define ARM_CPU_IMP_QCOM                0x51
#define ARM_CPU_IMP_NVIDIA              0x4E

and converts the defines to strings, same as here:

arch/x86/include/asm/intel-family.h

#define INTEL_FAM6_SKYLAKE_L            0x4E
#define INTEL_FAM6_SKYLAKE              0x5E
#define INTEL_FAM6_SKYLAKE_X            0x55
#define INTEL_FAM6_KABYLAKE_L           0x8E
#define INTEL_FAM6_KABYLAKE             0x9E

and provide the model name (and for ARM the vendor name)
compiled in a module.

At least for aarch64 and x86 it seem to be possible
to get a vendor/model string from the same defined file:
/sys/devices/system/cpu/cpu0/info/{model_name,vendor}


> (aside from the flags/hwcaps).

which make sense to add there, right?

Thanks,

      Thomas




_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-12-06 17:29 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-06 16:24 [PATCH v5 0/3] sysfs: add sysfs based cpuinfo Thomas Renninger
2019-12-06 16:24 ` Thomas Renninger
2019-12-06 16:24 ` [PATCH 1/3] cpuinfo: add sysfs based arch independent cpuinfo framework Thomas Renninger
2019-12-06 16:24   ` Thomas Renninger
2019-12-06 16:33   ` Greg KH
2019-12-06 16:33     ` Greg KH
2019-12-06 16:33     ` Greg KH
2019-12-06 16:56   ` Randy Dunlap
2019-12-06 16:56     ` Randy Dunlap
2019-12-06 16:56     ` Randy Dunlap
2019-12-06 16:24 ` [PATCH 2/3] x86 cpuinfo: implement sysfs nodes for x86 Thomas Renninger
2019-12-06 16:24   ` Thomas Renninger
2019-12-06 16:36   ` Greg KH
2019-12-06 16:36     ` Greg KH
2019-12-10 20:48     ` Thomas Gleixner
2019-12-10 20:48       ` Thomas Gleixner
2019-12-10 20:53       ` Greg KH
2019-12-10 20:53         ` Greg KH
2019-12-11 10:42       ` Thomas Renninger
2019-12-11 10:42         ` Thomas Renninger
2019-12-11 13:56         ` Greg KH
2019-12-11 13:56           ` Greg KH
2019-12-11 14:12           ` Thomas Renninger
2019-12-11 14:12             ` Thomas Renninger
2019-12-11 14:26             ` Greg KH
2019-12-11 14:26               ` Greg KH
2019-12-11 14:52               ` Thomas Renninger
2019-12-11 14:52                 ` Thomas Renninger
2019-12-11 14:57                 ` Greg KH
2019-12-11 14:57                   ` Greg KH
2019-12-06 16:24 ` [PATCH 3/3] arm64 cpuinfo: implement sysfs nodes for arm64 Thomas Renninger
2019-12-06 16:24   ` Thomas Renninger
2019-12-06 16:37   ` Greg KH
2019-12-06 16:37     ` Greg KH
2019-12-09 10:31   ` Will Deacon
2019-12-09 10:31     ` Will Deacon
2019-12-09 11:28     ` Thomas Renninger
2019-12-09 11:28       ` Thomas Renninger
2019-12-09 17:38       ` Will Deacon
2019-12-09 17:38         ` Will Deacon
2019-12-10 13:33         ` Thomas Renninger
2019-12-10 13:33           ` Thomas Renninger
2019-12-10 14:47           ` Greg KH
2019-12-10 14:47             ` Greg KH
2019-12-10 16:24             ` Thomas Renninger
2019-12-10 16:24               ` Thomas Renninger
2019-12-06 16:58 ` [PATCH v5 0/3] sysfs: add sysfs based cpuinfo Mark Rutland
2019-12-06 16:58   ` Mark Rutland
2019-12-06 17:29   ` Thomas Renninger [this message]
2019-12-06 17:29     ` Thomas Renninger
2019-12-06 18:16     ` Mark Rutland
2019-12-06 18:16       ` Mark Rutland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2898795.Dnvf4huJ59@skinner.arch.suse.de \
    --to=trenn@suse.de \
    --cc=fschnitzlein@suse.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=will.deacon@arm.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.