From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by dpdk.org (Postfix) with ESMTP id A6A0269F9 for ; Tue, 16 Aug 2016 12:28:28 +0200 (CEST) Received: from pps.filterd (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id u7GAOuZw023644 for ; Tue, 16 Aug 2016 06:28:27 -0400 Received: from e28smtp07.in.ibm.com (e28smtp07.in.ibm.com [125.16.236.7]) by mx0a-001b2d01.pphosted.com with ESMTP id 24syq3m5v5-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Tue, 16 Aug 2016 06:28:27 -0400 Received: from localhost by e28smtp07.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 16 Aug 2016 15:58:24 +0530 Received: from d28dlp01.in.ibm.com (9.184.220.126) by e28smtp07.in.ibm.com (192.168.1.137) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 16 Aug 2016 15:58:20 +0530 X-IBM-Helo: d28dlp01.in.ibm.com X-IBM-MailFrom: gowrishankar.m@linux.vnet.ibm.com X-IBM-RcptTo: dev@dpdk.org Received: from d28relay04.in.ibm.com (d28relay04.in.ibm.com [9.184.220.61]) by d28dlp01.in.ibm.com (Postfix) with ESMTP id 68BEAE005A for ; Tue, 16 Aug 2016 16:02:50 +0530 (IST) Received: from d28av03.in.ibm.com (d28av03.in.ibm.com [9.184.220.65]) by d28relay04.in.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u7GAQMGk44761100 for ; Tue, 16 Aug 2016 15:56:22 +0530 Received: from d28av03.in.ibm.com (localhost [127.0.0.1]) by d28av03.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u7GASGjE021164 for ; Tue, 16 Aug 2016 15:58:17 +0530 Received: from localhost.localdomain ([9.193.77.130]) by d28av03.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id u7GAS1ov020395; Tue, 16 Aug 2016 15:58:16 +0530 From: Gowrishankar Muthukrishnan To: dev@dpdk.org Cc: Chao Zhu , Bruce Richardson , Konstantin Ananyev , Thomas Monjalon , Cristian Dumitrescu , Pradeep Date: Tue, 16 Aug 2016 15:57:58 +0530 X-Mailer: git-send-email 1.9.1 In-Reply-To: <1471343279-24014-1-git-send-email-gowrishankar.m@linux.vnet.ibm.com> References: <1471343279-24014-1-git-send-email-gowrishankar.m@linux.vnet.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16081610-0052-0000-0000-000002C4D593 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 16081610-0053-0000-0000-00000E09BAC4 Message-Id: <1471343279-24014-9-git-send-email-gowrishankar.m@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-08-16_07:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1604210000 definitions=main-1608160134 Subject: [dpdk-dev] [PATCH v6 8/9] ip_pipeline: fix lcore mapping for varying SMT threads as in ppc64 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Aug 2016 10:28:29 -0000 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/topology/physical_package_id /sys/devices/system/cpu/cpu/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 --- examples/ip_pipeline/cpu_core_map.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/examples/ip_pipeline/cpu_core_map.c b/examples/ip_pipeline/cpu_core_map.c index cb088b1..dd8f678 100644 --- a/examples/ip_pipeline/cpu_core_map.c +++ b/examples/ip_pipeline/cpu_core_map.c @@ -351,8 +351,10 @@ cpu_core_map_compute_linux(struct cpu_core_map *map) int lcore_socket_id = cpu_core_map_get_socket_id_linux(lcore_id); +#if !defined(RTE_ARCH_PPC_64) if (lcore_socket_id < 0) return -1; +#endif if (((uint32_t) lcore_socket_id) == socket_id) n_detected++; @@ -368,6 +370,7 @@ cpu_core_map_compute_linux(struct cpu_core_map *map) cpu_core_map_get_socket_id_linux( lcore_id); +#if !defined(RTE_ARCH_PPC_64) if (lcore_socket_id < 0) return -1; @@ -377,9 +380,14 @@ cpu_core_map_compute_linux(struct cpu_core_map *map) if (lcore_core_id < 0) return -1; +#endif +#if !defined(RTE_ARCH_PPC_64) if (((uint32_t) lcore_socket_id == socket_id) && ((uint32_t) lcore_core_id == core_id)) { +#else + if (((uint32_t) lcore_socket_id == socket_id)) { +#endif uint32_t pos = cpu_core_map_pos(map, socket_id, core_id_contig, -- 1.9.1