[dts] [PATCH 2/9] framework: platform independent cpu info parsing
Xu, HuilongX
huilongx.xu at intel.com
Mon Feb 29 03:13:37 CET 2016
Hi Gowrishankar,
Lscpu cmdline not default in yocto os.
Thanks a lot
> -----Original Message-----
> From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of Gowrishankar
> Sent: Friday, February 26, 2016 6:17 PM
> To: dts
> Subject: [dts] [PATCH 2/9] framework: platform independent cpu info
> parsing
>
> To collect thread/core/socket, /proc/cpuinfo would not help in case of
> powerpc.
> Instead, lscpu seems to be a better alternative and platform neutral
> approach.
>
> Signed-off-by: Gowrishankar <gowrishankar.m at linux.vnet.ibm.com>
> ---
> framework/crb.py | 40 ++++++++++++----------------------------
> 1 file changed, 12 insertions(+), 28 deletions(-)
>
> diff --git a/framework/crb.py b/framework/crb.py
> index c6fd9fb..1711f37 100644
> --- a/framework/crb.py
> +++ b/framework/crb.py
> @@ -495,41 +495,25 @@ class Crb(object):
>
> cpuinfo = \
> self.send_expect(
> - "grep --color=never \"processor\\|physical id\\|core
> id\\|^$\" /proc/cpuinfo",
> + "lscpu -p|grep -v \#",
> "#", alt_session=True)
>
> - if "processor" not in cpuinfo:
> - # yocto not support --color=never, but ubuntu must need --
> color=never,
> - # so check cpuinfo, before parsing cpuinfo, if cpuifo get
> error, delete --color=never
> - # and get cpuinfo again
> - cpuinfo = \
> - self.send_expect(
> - r'grep "processor\|physical id\|core id\|^$"
> /proc/cpuinfo',
> - "#", alt_session=True)
> -
> - cpuinfo = cpuinfo.split('\r\n\r\n')
> + cpuinfo = cpuinfo.split()
> # haswell cpu on cottonwood core id not correct
> # need addtional coremap for haswell cpu
> core_id = 0
> coremap = {}
> for line in cpuinfo:
> - m = re.search("processor\t: (\d+)\r\n" +
> - "physical id\t: (\d+)\r\n" +
> - "core id\t\t: (\d+)", line)
> -
> - if m:
> - thread = m.group(1)
> - socket = m.group(2)
> - core = m.group(3)
> -
> - if core not in coremap.keys():
> - coremap[core] = core_id
> - core_id += 1
> -
> - if self.crb['bypass core0'] and core == '0' and socket ==
> '0':
> - self.logger.info("Core0 bypassed")
> - continue
> - self.cores.append(
> + (thread, core, socket) = line.split(',')[0:3]
> +
> + if core not in coremap.keys():
> + coremap[core] = core_id
> + core_id += 1
> +
> + if self.crb['bypass core0'] and core == '0' and socket == '0':
> + self.logger.info("Core0 bypassed")
> + continue
> + self.cores.append(
> {'thread': thread, 'socket': socket, 'core':
> coremap[core]})
>
> self.number_of_cores = len(self.cores)
> --
> 1.7.10.4
More information about the dts
mailing list