From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id A7790968 for ; Thu, 7 Sep 2017 13:45:56 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20170907114553euoutp02eba004ecebbc4494fdfa694cedd87189~iEcLP9S1X0987909879euoutp02g; Thu, 7 Sep 2017 11:45:53 +0000 (GMT) Received: from eusmges5.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170907114553eucas1p25ddc73174c8e88e8d6ddea1a6c1a52c4~iEcKfhb-G3092930929eucas1p2G; Thu, 7 Sep 2017 11:45:53 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges5.samsung.com (EUCPMTA) with SMTP id F8.24.12743.07131B95; Thu, 7 Sep 2017 12:45:52 +0100 (BST) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170907114552eucas1p182c484310d70f1d52f64b9ea7fb96ed6~iEcJ4Iqzv2483724837eucas1p1P; Thu, 7 Sep 2017 11:45:52 +0000 (GMT) X-AuditID: cbfec7f5-f79d06d0000031c7-05-59b1317073a6 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 77.29.20118.07131B95; Thu, 7 Sep 2017 12:45:52 +0100 (BST) Received: from localhost.localdomain ([106.109.129.68]) by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OVW00ICURC91V90@eusync1.samsung.com>; Thu, 07 Sep 2017 12:45:52 +0100 (BST) From: Vladimir Kuramshin To: tomasz.kantecki@intel.com Cc: dev@dpdk.org, Vladimir Kuramshin Date: Thu, 07 Sep 2017 14:45:27 +0300 Message-id: <20170907114527.26649-1-v.kuramshin@samsung.com> X-Mailer: git-send-email 2.14.1 In-reply-to: <20170829095153.12627-1-v.kuramshin@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrEIsWRmVeSWpSXmKPExsWy7djPc7oFhhsjDR6/NbZ492k7k8W01b/Z LU7f3MzuwOzxa8FSVo/Fe14yefRtWcUYwBzFZZOSmpNZllqkb5fAlXGhZz9LwVHTim2rZ7E1 ME7Q6mLk5JAQMJFo/XSHEcIWk7hwbz1bFyMXh5DAUkaJOzubWCGcz4wS2/4/Y4TpmLv5ElRi GaPEkX97GCGc/4wSz1esYAGpYhMwkli1cT8biC0iICuxasdUMJtZwE7i9sN5zCC2sICXxNtZ M8HiLAKqEvP3vGYHsXkFbCQOHHzHBLFNXuLcg9tg9ZwCthIbv99gAVkmIfCUVeLdtNdARRxA jovEk3ZliHphiVfHt7BD2DISlyd3Q9V3M0qcbZ3DCuFMYZTYs+wJC0SVvcSpm1eZIK7jk5i0 bTozxFBeiY42IYgSD4mHU7cyQ9iOEpd3boT6eAKjxOQFq1gnMEovYGRYxSiSWlqcm55abKpX nJhbXJqXrpecn7uJERhzp/8d/7qDcekxq0OMAhyMSjy8DdIbIoVYE8uKK3MPMUpwMCuJ8F7W 3xgpxJuSWFmVWpQfX1Sak1p8iFGag0VJnNc2qi1SSCA9sSQ1OzW1ILUIJsvEwSnVwLifM4bv 96813+pWu0/zfXPBuMpvmbNP+Hr5E1ccd/VL2s/LtblzJ6WN3XI5j/ne078FGJY0T5pQ/k7G Tjx/8ex1wnYSuxMmnPtzPZX9VfqHf+lcJ3u79pQs9PNkPzo5hmlzreDDFysu/70/p+hz97lb H9p+WPUV8nbH5O9qfCHHPCtkgc6ErT5KLMUZiYZazEXFiQD9BkVktQIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGJMWRmVeSWpSXmKPExsVy+t/xy7oFhhsjDdoaJC3efdrOZDFt9W92 i9M3N7M7MHv8WrCU1WPxnpdMHn1bVjEGMEdx2aSk5mSWpRbp2yVwZVzo2c9ScNS0YtvqWWwN jBO0uhg5OSQETCTmbr7ECmGLSVy4t56ti5GLQ0hgCaPElAP72SGcRiaJHb8PMYFUsQkYSaza uJ8NxBYRkJVYtWMqmM0sYCdx++E8ZhBbWMBL4u2smWBxFgFVifl7XrOD2LwCNhIHDr5jgtgm L3HuwW2wek4BW4mN32+wgNhCQDWLXi1lnMDIu4CRYRWjSGppcW56brGRXnFibnFpXrpecn7u JkZgaGw79nPLDsaud8GHGAU4GJV4eBP+r48UYk0sK67MPcQowcGsJMJ7WX9jpBBvSmJlVWpR fnxRaU5q8SFGaQ4WJXHe3j2rI4UE0hNLUrNTUwtSi2CyTBycUg2MNSdccn49mb4gbH0Bt4bC ViMbkd1l053V245NiGb5u9eoPOFxh6DL9xhRqcbVh3bbSxQGrpW69XLzpj91N5/4d4n/tzm2 tVJNtevjR+bv8xZZ8re/6ay/3N9pdVgw5/mXfM/ot9Wp2/ez7lawylET9pKy+Xwk5YHy6v2K 52a//NRctix4mk+AEktxRqKhFnNRcSIAARTTtgkCAAA= X-CMS-MailID: 20170907114552eucas1p182c484310d70f1d52f64b9ea7fb96ed6 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?UTF-8?B?VmxhZGltaXIgS3VyYW1zaGluG1NSUi1WaXJ0dWFsaXphdGlv?= =?UTF-8?B?biBMYWIb7IK87ISx7KCE7J6QG0V4cGVydCBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?VmxhZGltaXIgS3VyYW1zaGluG1NSUi1WaXJ0dWFsaXphdGlv?= =?UTF-8?B?biBMYWIbU2Ftc3VuZyBFbGVjdHJvbmljcxtFeHBlcnQgRW5naW5lZXI=?= X-Sender-Code: =?UTF-8?B?QzEwG0NJU0hRG0MxMEdEMDFHRDAxMDE1NA==?= CMS-TYPE: 201P X-CMS-RootMailID: 20170907114552eucas1p182c484310d70f1d52f64b9ea7fb96ed6 X-RootMTR: 20170907114552eucas1p182c484310d70f1d52f64b9ea7fb96ed6 References: <20170829095153.12627-1-v.kuramshin@samsung.com> Subject: [dpdk-dev] [PATCH v2] examples/l2fwd-cat: fix build according to API changes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Sep 2017 11:45:56 -0000 Current version is compatible with PQOS version 1.3 but not compatible with higher versions. This change makes l2fwd-cat example compatible with versions since 1.4 Signed-off-by: Vladimir Kuramshin --- Version 2 changes: fixed checkpatch warnings "Prefer 'unsigned int *' to bare use of 'unsigned *'" examples/l2fwd-cat/Makefile | 5 +--- examples/l2fwd-cat/cat.c | 60 ++++++++++++++++++++++----------------------- 2 files changed, 30 insertions(+), 35 deletions(-) diff --git a/examples/l2fwd-cat/Makefile b/examples/l2fwd-cat/Makefile index ae921ade6..a7fe6d68e 100644 --- a/examples/l2fwd-cat/Makefile +++ b/examples/l2fwd-cat/Makefile @@ -40,9 +40,6 @@ endif # Default target, can be overridden by command line or environment RTE_TARGET ?= x86_64-native-linuxapp-gcc -# Location of PQoS library and includes, -PQOS_LIBRARY_PATH = $(PQOS_INSTALL_PATH)/libpqos.a - include $(RTE_SDK)/mk/rte.vars.mk # binary name @@ -65,6 +62,6 @@ CFLAGS += -I$(PQOS_INSTALL_PATH)/../include CFLAGS_cat.o := -D_GNU_SOURCE LDLIBS += -L$(PQOS_INSTALL_PATH) -LDLIBS += $(PQOS_LIBRARY_PATH) +LDLIBS += -lpqos include $(RTE_SDK)/mk/rte.extapp.mk diff --git a/examples/l2fwd-cat/cat.c b/examples/l2fwd-cat/cat.c index 6133bf5bb..6b464bffa 100644 --- a/examples/l2fwd-cat/cat.c +++ b/examples/l2fwd-cat/cat.c @@ -53,7 +53,7 @@ static const struct pqos_cap *m_cap; static const struct pqos_cpuinfo *m_cpu; static const struct pqos_capability *m_cap_l3ca; -static unsigned m_sockets[PQOS_MAX_SOCKETS]; +static unsigned int *m_sockets; static unsigned m_sock_count; static struct cat_config m_config[PQOS_MAX_CORES]; static unsigned m_config_count; @@ -271,16 +271,16 @@ parse_l3ca(const char *l3ca) /* scan the separator '@', ','(next) or '\0'(finish) */ l3ca += strcspn(l3ca, "@,"); - if (*l3ca == '@') { - /* explicit assign cpu_set */ - offset = parse_set(l3ca + 1, &cpuset); - if (offset < 0 || CPU_COUNT(&cpuset) == 0) - goto err; + if (*l3ca != '@') + goto err; - end = l3ca + 1 + offset; - } else + /* explicit assign cpu_set */ + offset = parse_set(l3ca + 1, &cpuset); + if (offset < 0 || CPU_COUNT(&cpuset) == 0) goto err; + end = l3ca + 1 + offset; + if (*end != ',' && *end != '\0') goto err; @@ -353,9 +353,6 @@ parse_l3ca(const char *l3ca) idx++; } while (*end != '\0' && idx < PQOS_MAX_CORES); - if (m_config_count == 0) - goto err; - return 0; err: @@ -408,7 +405,7 @@ check_cpus(void) goto exit; } - ret = pqos_l3ca_assoc_get(cpu_id, &cos_id); + ret = pqos_alloc_assoc_get(cpu_id, &cos_id); if (ret != PQOS_RETVAL_OK) { printf("PQOS: Failed to read COS " "associated to cpu %u.\n", @@ -512,7 +509,7 @@ check_and_select_classes(unsigned cos_id_map[][PQOS_MAX_SOCKETS]) for (j = 0; j < m_cpu->num_cores; j++) { cpu_id = m_cpu->cores[j].lcore; - ret = pqos_l3ca_assoc_get(cpu_id, &cos_id); + ret = pqos_alloc_assoc_get(cpu_id, &cos_id); if (ret != PQOS_RETVAL_OK) { printf("PQOS: Failed to read COS associated to " "cpu %u on phy_pkg %u.\n", cpu_id, phy_pkg_id); @@ -598,10 +595,10 @@ configure_cat(unsigned cos_id_map[][PQOS_MAX_SOCKETS]) l3ca.cdp = m_config[i].cdp; if (m_config[i].cdp == 1) { - l3ca.code_mask = m_config[i].code_mask; - l3ca.data_mask = m_config[i].data_mask; + l3ca.u.s.code_mask = m_config[i].code_mask; + l3ca.u.s.data_mask = m_config[i].data_mask; } else - l3ca.ways_mask = m_config[i].mask; + l3ca.u.ways_mask = m_config[i].mask; for (j = 0; j < m_sock_count; j++) { phy_pkg_id = m_sockets[j]; @@ -637,7 +634,7 @@ configure_cat(unsigned cos_id_map[][PQOS_MAX_SOCKETS]) cos_id = cos_id_map[i][phy_pkg_id]; - ret = pqos_l3ca_assoc_set(cpu_id, cos_id); + ret = pqos_alloc_assoc_set(cpu_id, cos_id); if (ret != PQOS_RETVAL_OK) { printf("PQOS: Failed to associate COS %u to " "cpu %u\n", cos_id, cpu_id); @@ -754,24 +751,24 @@ print_cat_config(void) if (tab[n].cdp == 1) { printf("PQOS: COS: %u, cMASK: 0x%llx, " "dMASK: 0x%llx\n", tab[n].class_id, - (unsigned long long)tab[n].code_mask, - (unsigned long long)tab[n].data_mask); + (unsigned long long)tab[n].u.s.code_mask, + (unsigned long long)tab[n].u.s.data_mask); } else { printf("PQOS: COS: %u, MASK: 0x%llx\n", tab[n].class_id, - (unsigned long long)tab[n].ways_mask); + (unsigned long long)tab[n].u.ways_mask); } } } for (i = 0; i < m_sock_count; i++) { - unsigned lcores[PQOS_MAX_SOCKET_CORES] = {0}; + unsigned int *lcores = NULL; unsigned lcount = 0; unsigned n = 0; - ret = pqos_cpu_get_cores(m_cpu, m_sockets[i], - PQOS_MAX_SOCKET_CORES, &lcount, &lcores[0]); - if (ret != PQOS_RETVAL_OK) { + lcores = pqos_cpu_get_cores(m_cpu, m_sockets[i], + &lcount); + if (lcores == NULL || lcount == 0) { printf("PQOS: Error retrieving core information!\n"); return; } @@ -780,13 +777,15 @@ print_cat_config(void) for (n = 0; n < lcount; n++) { unsigned class_id = 0; - ret = pqos_l3ca_assoc_get(lcores[n], &class_id); + ret = pqos_alloc_assoc_get(lcores[n], &class_id); if (ret == PQOS_RETVAL_OK) printf("PQOS: CPU: %u, COS: %u\n", lcores[n], class_id); else printf("PQOS: CPU: %u, ERROR\n", lcores[n]); } + + free(lcores); } } @@ -849,7 +848,8 @@ cat_fini(void) m_cap = NULL; m_cpu = NULL; m_cap_l3ca = NULL; - memset(m_sockets, 0, sizeof(m_sockets)); + if (m_sockets != NULL) + free(m_sockets); m_sock_count = 0; memset(m_config, 0, sizeof(m_config)); m_config_count = 0; @@ -875,7 +875,7 @@ cat_exit(void) if (CPU_ISSET(cpu_id, &m_config[i].cpumask) == 0) continue; - ret = pqos_l3ca_assoc_set(cpu_id, 0); + ret = pqos_alloc_assoc_set(cpu_id, 0); if (ret != PQOS_RETVAL_OK) { printf("PQOS: Failed to associate COS 0 to " "cpu %u\n", cpu_id); @@ -927,7 +927,6 @@ cat_init(int argc, char **argv) /* PQoS Initialization - Check and initialize CAT capability */ cfg.fd_log = STDOUT_FILENO; cfg.verbose = 0; - cfg.cdp_cfg = PQOS_REQUIRE_CDP_ANY; ret = pqos_init(&cfg); if (ret != PQOS_RETVAL_OK) { printf("PQOS: Error initializing PQoS library!\n"); @@ -953,9 +952,8 @@ cat_init(int argc, char **argv) } /* Get CPU socket information */ - ret = pqos_cpu_get_sockets(m_cpu, PQOS_MAX_SOCKETS, &m_sock_count, - m_sockets); - if (ret != PQOS_RETVAL_OK) { + m_sockets = pqos_cpu_get_sockets(m_cpu, &m_sock_count); + if (m_sockets == NULL) { printf("PQOS: Error retrieving CPU socket information!\n"); ret = -EFAULT; goto err; -- 2.14.1