All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2/5 V2] rteval: Construct a 'model name' on architectures that don't have one
@ 2021-09-12 15:45 John Kacur
  2021-09-13  2:53 ` Punit Agrawal
  0 siblings, 1 reply; 3+ messages in thread
From: John Kacur @ 2021-09-12 15:45 UTC (permalink / raw)
  To: Clark Williams; +Cc: RT, John Kacur, Punit Agrawal

This is based on an idea from Punit Agrawal <punit1.agrawal@toshiba.co.jp>

On architectures that lack 'model name' in /proc/cpuinfo
create 'model name' Unknown when creating the per core dictionaries
in cpuinfo

For arm, we can construct the 'model name' from the
'CPU implementer'
'CPU architecture'
'CPU variant'
'CPU part'
'CPU revision'

Suggested-by: Punit Agrawal <punit1.agrawal@toshiba.co.jp>
Signed-off-by: John Kacur <jkacur@redhat.com>
---
 rteval/misc.py | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/rteval/misc.py b/rteval/misc.py
index 0dd361ff19fd..c1d2a972430d 100644
--- a/rteval/misc.py
+++ b/rteval/misc.py
@@ -77,6 +77,27 @@ def cpuinfo():
             info[core] = {}
             continue
         info[core][key] = val
+
+    for (core, pcdict) in info.items():
+        if not 'model name' in pcdict:
+            # On Arm CPU implementer is present
+            # Construct the model_name from the following fields
+            if 'CPU implementer' in pcdict:
+                model_name = [pcdict.get('CPU implementer')]
+                model_name.append(pcdict.get('CPU architecture'))
+                model_name.append(pcdict.get('CPU variant'))
+                model_name.append(pcdict.get('CPU part'))
+                model_name.append(pcdict.get('CPU revision', ''))
+
+                # If a list item is None, remove it
+                model_name = [name for name in model_name if name]
+
+                # Convert the model_name list into a string
+                model_name = " ".join(model_name)
+                pcdict['model name'] = model_name
+            else:
+                pcdict['model name'] = 'Unknown'
+
     return info
 
 if __name__ == "__main__":
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 2/5 V2] rteval: Construct a 'model name' on architectures that don't have one
  2021-09-12 15:45 [PATCH 2/5 V2] rteval: Construct a 'model name' on architectures that don't have one John Kacur
@ 2021-09-13  2:53 ` Punit Agrawal
  2021-09-13 12:37   ` John Kacur
  0 siblings, 1 reply; 3+ messages in thread
From: Punit Agrawal @ 2021-09-13  2:53 UTC (permalink / raw)
  To: John Kacur; +Cc: Clark Williams, RT, Punit Agrawal

Hi John,

John Kacur <jkacur@redhat.com> writes:

> This is based on an idea from Punit Agrawal <punit1.agrawal@toshiba.co.jp>
>
> On architectures that lack 'model name' in /proc/cpuinfo
> create 'model name' Unknown when creating the per core dictionaries
> in cpuinfo
>
> For arm, we can construct the 'model name' from the
> 'CPU implementer'
> 'CPU architecture'
> 'CPU variant'
> 'CPU part'
> 'CPU revision'
>
> Suggested-by: Punit Agrawal <punit1.agrawal@toshiba.co.jp>
> Signed-off-by: John Kacur <jkacur@redhat.com>
> ---
>  rteval/misc.py | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/rteval/misc.py b/rteval/misc.py
> index 0dd361ff19fd..c1d2a972430d 100644
> --- a/rteval/misc.py
> +++ b/rteval/misc.py
> @@ -77,6 +77,27 @@ def cpuinfo():
>              info[core] = {}
>              continue
>          info[core][key] = val
> +
> +    for (core, pcdict) in info.items():
> +        if not 'model name' in pcdict:
> +            # On Arm CPU implementer is present
> +            # Construct the model_name from the following fields
> +            if 'CPU implementer' in pcdict:
> +                model_name = [pcdict.get('CPU implementer')]
> +                model_name.append(pcdict.get('CPU architecture'))
> +                model_name.append(pcdict.get('CPU variant'))
> +                model_name.append(pcdict.get('CPU part'))
> +                model_name.append(pcdict.get('CPU revision', ''))

Is there a reason to use an empty default for "CPU revision" but not for
the other components? Maybe a left-over from original patch.

> +
> +                # If a list item is None, remove it
> +                model_name = [name for name in model_name if name]
> +
> +                # Convert the model_name list into a string
> +                model_name = " ".join(model_name)
> +                pcdict['model name'] = model_name
> +            else:
> +                pcdict['model name'] = 'Unknown'
> +
>      return info
>  
>  if __name__ == "__main__":

With the above comment addressed, fwiw -

Reviewed-by: Punit Agrawal <punit1.agrawal@toshiba.co.jp>
Tested-by: Punit Agrawal <punit1.agrawal@toshiba.co.jp>

Thanks,
Punit

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 2/5 V2] rteval: Construct a 'model name' on architectures that don't have one
  2021-09-13  2:53 ` Punit Agrawal
@ 2021-09-13 12:37   ` John Kacur
  0 siblings, 0 replies; 3+ messages in thread
From: John Kacur @ 2021-09-13 12:37 UTC (permalink / raw)
  To: Punit Agrawal; +Cc: Clark Williams, RT, Punit Agrawal



On Mon, 13 Sep 2021, Punit Agrawal wrote:

> Hi John,
> 
> John Kacur <jkacur@redhat.com> writes:
> 
> > This is based on an idea from Punit Agrawal <punit1.agrawal@toshiba.co.jp>
> >
> > On architectures that lack 'model name' in /proc/cpuinfo
> > create 'model name' Unknown when creating the per core dictionaries
> > in cpuinfo
> >
> > For arm, we can construct the 'model name' from the
> > 'CPU implementer'
> > 'CPU architecture'
> > 'CPU variant'
> > 'CPU part'
> > 'CPU revision'
> >
> > Suggested-by: Punit Agrawal <punit1.agrawal@toshiba.co.jp>
> > Signed-off-by: John Kacur <jkacur@redhat.com>
> > ---
> >  rteval/misc.py | 21 +++++++++++++++++++++
> >  1 file changed, 21 insertions(+)
> >
> > diff --git a/rteval/misc.py b/rteval/misc.py
> > index 0dd361ff19fd..c1d2a972430d 100644
> > --- a/rteval/misc.py
> > +++ b/rteval/misc.py
> > @@ -77,6 +77,27 @@ def cpuinfo():
> >              info[core] = {}
> >              continue
> >          info[core][key] = val
> > +
> > +    for (core, pcdict) in info.items():
> > +        if not 'model name' in pcdict:
> > +            # On Arm CPU implementer is present
> > +            # Construct the model_name from the following fields
> > +            if 'CPU implementer' in pcdict:
> > +                model_name = [pcdict.get('CPU implementer')]
> > +                model_name.append(pcdict.get('CPU architecture'))
> > +                model_name.append(pcdict.get('CPU variant'))
> > +                model_name.append(pcdict.get('CPU part'))
> > +                model_name.append(pcdict.get('CPU revision', ''))
> 
> Is there a reason to use an empty default for "CPU revision" but not for
> the other components? Maybe a left-over from original patch.

Not sure of the origin of that typo, but thanks for catching it, removing.

> 
> > +
> > +                # If a list item is None, remove it
> > +                model_name = [name for name in model_name if name]
> > +
> > +                # Convert the model_name list into a string
> > +                model_name = " ".join(model_name)
> > +                pcdict['model name'] = model_name
> > +            else:
> > +                pcdict['model name'] = 'Unknown'
> > +
> >      return info
> >  
> >  if __name__ == "__main__":
> 
> With the above comment addressed, fwiw -
> 
> Reviewed-by: Punit Agrawal <punit1.agrawal@toshiba.co.jp>
> Tested-by: Punit Agrawal <punit1.agrawal@toshiba.co.jp>
> 
> Thanks,
> Punit
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-09-13 12:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-12 15:45 [PATCH 2/5 V2] rteval: Construct a 'model name' on architectures that don't have one John Kacur
2021-09-13  2:53 ` Punit Agrawal
2021-09-13 12:37   ` John Kacur

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.