examples/ip_pipeline: fix lcore mapping for ppc64
authorGowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Thu, 8 Sep 2016 16:48:10 +0000 (22:18 +0530)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 9 Sep 2016 15:56:25 +0000 (17:56 +0200)
commit58d55fd279dc6f8f8d92fcab3362e24e19c9fbea
treedbb8022ea55e4d48f405fd87b7901ae7506adf70
parent81f713ee7bac66221a11f07c8a437e40c1891f70
examples/ip_pipeline: fix lcore mapping for ppc64

This patch fixes ip_pipeline panic in app_init_core_map while preparing cpu
core map in powerpc with SMT off. cpu_core_map_compute_linux currently prepares
core mapping based on file existence in sysfs ie.

/sys/devices/system/cpu/cpu<LCORE_NUM>/topology/physical_package_id
  /sys/devices/system/cpu/cpu<LCORE_NUM>/topology/core_id

These files do not exist for lcores which are offline for any reason (as in
powerpc, while SMT is off). In this situation, this function should further
continue preparing map for other online lcores instead of returning with -1
for a first unavailable lcore.

Also, in SMT=off scenario for powerpc, lcore ids can not be always indexed from
0 upto 'number of cores present' (/sys/devices/system/cpu/present). For eg, for
an online lcore 32, core_id returned in sysfs is 112 where online lcores are
10 (as in one configuration), hence sysfs lcore id can not be checked with
indexing lcore number before positioning lcore map array.

Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
examples/ip_pipeline/cpu_core_map.c