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 2358C1F5 for ; Tue, 19 Sep 2017 10:18:05 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20170919081804euoutp0221a545310e19fb0416b4a9cca0adf695~ltWJkBzVP1294612946euoutp02H; Tue, 19 Sep 2017 08:18:04 +0000 (GMT) Received: from eusmges1.samsung.com (unknown [203.254.199.239]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170919081803eucas1p1bca6142545de7a12e00243d50e14c9e7~ltWIx-inE0978209782eucas1p1y; Tue, 19 Sep 2017 08:18:03 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1.samsung.com (EUCPMTA) with SMTP id 54.5A.12576.BB2D0C95; Tue, 19 Sep 2017 09:18:03 +0100 (BST) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170919081803eucas1p255aac78e316693ea52c85e31bbfcc81b~ltWII3uXg2752627526eucas1p25; Tue, 19 Sep 2017 08:18:03 +0000 (GMT) X-AuditID: cbfec7ef-f79ee6d000003120-e8-59c0d2bb7fbb Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 2F.DF.18832.BB2D0C95; Tue, 19 Sep 2017 09:18:03 +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 <0OWI00DHHPPTFU90@eusync1.samsung.com>; Tue, 19 Sep 2017 09:18:03 +0100 (BST) From: Vladimir Kuramshin To: tomasz.kantecki@intel.com, bruce.richardson@intel.com Cc: dev@dpdk.org, Vladimir Kuramshin Date: Tue, 19 Sep 2017 11:17:31 +0300 Message-id: <20170919081731.23970-1-v.kuramshin@samsung.com> X-Mailer: git-send-email 2.14.1 In-reply-to: <20170907114527.26649-1-v.kuramshin@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrGIsWRmVeSWpSXmKPExsWy7djP87q7Lx2INDi8UtHixip7i3eftjNZ TFv9m93i9M3N7A4sHr8WLGX1WLznJZNH35ZVjAHMUVw2Kak5mWWpRfp2CVwZ+772sxYssapY eKyBqYHxkW4XIyeHhICJRHPLSVYIW0ziwr31bF2MXBxCAssYJe7en80O4XxmlDh5/wobTMeH 948Z4apWP1wK1fKfUeLg65tgVWwCRhKrNu4Hs0UELCXWPL7EBGIzC9hJ3H44jxnEFhbwkti3 s40FxGYRUJVYP/8RWD2vgI3E26uzmCG2yUuce3AbzOYUsJVYu/ccC0T8JavE4S16ELaLxMOt l6GuE5Z4dXwLO4QtI9HZcZAJ5DgJgW5GibOtc1ghnCmMEnuWPYGaZC9x6uZVqOv4JCZtmw60 jQMozivR0SYEUeIh8e5sJ9RQR4lFrfeYID6ewCixqHEd6wRG6QWMDKsYRVJLi3PTU4sN9YoT c4tL89L1kvNzNzECY+/0v+PvdzA+bQ45xCjAwajEwytwbX+kEGtiWXFl7iFGCQ5mJRHeQ4sO RArxpiRWVqUW5ccXleakFh9ilOZgURLntY1qixQSSE8sSc1OTS1ILYLJMnFwSjUwVkwOt1n7 7sG8uV1HRPgCRUwsFA1yZkW0TlwW88a3yePi52sJSVZfujN6GsIt0zjK7j6KNfxwzULvfe3L XQ6rhTZkMfXzysed1Xgvu7rmn81zMecXWdc3Jtu2Ltxu9Y37CMdtuVNBj9a9zOfZGPduwyR7 r0NeV95/6VEo2cz9Ukn3j8LWnaX/lViKMxINtZiLihMBxP1FErkCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFJMWRmVeSWpSXmKPExsVy+t/xy7q7Lx2INFjwhcXixip7i3eftjNZ TFv9m93i9M3N7A4sHr8WLGX1WLznJZNH35ZVjAHMUVw2Kak5mWWpRfp2CVwZ+772sxYssapY eKyBqYHxkW4XIyeHhICJxIf3jxkhbDGJC/fWs3UxcnEICSxhlDjcvZUFwmlkkph4axcTSBWb gJHEqo372UBsEQFLiTWPL4HFmQXsJG4/nMcMYgsLeEns29nGAmKzCKhKrJ//CKyeV8BG4u3V WcwQ2+Qlzj24DWZzCthKrN17DqxeCKjm9+PVLBMYeRcwMqxiFEktLc5Nzy021CtOzC0uzUvX S87P3cQIDJFtx35u3sF4aWPwIUYBDkYlHl6Ba/sjhVgTy4orcw8xSnAwK4nwHlp0IFKINyWx siq1KD++qDQntfgQozQHi5I4b++e1ZFCAumJJanZqakFqUUwWSYOTqkGRuWgO11lVywPGW2X sKw+xiwqfey/xIV3Arf/fHpoJMQzh6s34aDYF+VPsh43T4R2FW6R8Ms8GVbr5pLz+WXYbuPt G6t2am132y65XERaff7jyqCt8t0FekJOk3f33fso5hf+dcdlo8rNeT6nIoMqoquDn/y9nPD0 602Ftp9Hy5al/r+otsbvgxJLcUaioRZzUXEiAL21MX0NAgAA X-CMS-MailID: 20170919081803eucas1p255aac78e316693ea52c85e31bbfcc81b X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 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: 20170919081803eucas1p255aac78e316693ea52c85e31bbfcc81b X-RootMTR: 20170919081803eucas1p255aac78e316693ea52c85e31bbfcc81b References: <20170907114527.26649-1-v.kuramshin@samsung.com> Subject: [dpdk-dev] [PATCH v3] 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: Tue, 19 Sep 2017 08:18:06 -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 --- examples/l2fwd-cat/Makefile | 5 +-- examples/l2fwd-cat/cat.c | 85 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 76 insertions(+), 14 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..9330b2d26 100644 --- a/examples/l2fwd-cat/cat.c +++ b/examples/l2fwd-cat/cat.c @@ -53,7 +53,11 @@ static const struct pqos_cap *m_cap; static const struct pqos_cpuinfo *m_cpu; static const struct pqos_capability *m_cap_l3ca; +#if PQOS_VERSION <= 10300 static unsigned m_sockets[PQOS_MAX_SOCKETS]; +#else +static unsigned int *m_sockets; +#endif static unsigned m_sock_count; static struct cat_config m_config[PQOS_MAX_CORES]; static unsigned m_config_count; @@ -271,16 +275,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 +357,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 +409,11 @@ check_cpus(void) goto exit; } +#if PQOS_VERSION <= 10300 ret = pqos_l3ca_assoc_get(cpu_id, &cos_id); +#else + ret = pqos_alloc_assoc_get(cpu_id, &cos_id); +#endif if (ret != PQOS_RETVAL_OK) { printf("PQOS: Failed to read COS " "associated to cpu %u.\n", @@ -512,7 +517,11 @@ 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; +#if PQOS_VERSION <= 10300 ret = pqos_l3ca_assoc_get(cpu_id, &cos_id); +#else + ret = pqos_alloc_assoc_get(cpu_id, &cos_id); +#endif 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 +607,19 @@ configure_cat(unsigned cos_id_map[][PQOS_MAX_SOCKETS]) l3ca.cdp = m_config[i].cdp; if (m_config[i].cdp == 1) { +#if PQOS_VERSION <= 10300 l3ca.code_mask = m_config[i].code_mask; l3ca.data_mask = m_config[i].data_mask; +#else + l3ca.u.s.code_mask = m_config[i].code_mask; + l3ca.u.s.data_mask = m_config[i].data_mask; +#endif } else +#if PQOS_VERSION <= 10300 l3ca.ways_mask = m_config[i].mask; +#else + l3ca.u.ways_mask = m_config[i].mask; +#endif for (j = 0; j < m_sock_count; j++) { phy_pkg_id = m_sockets[j]; @@ -637,7 +655,11 @@ configure_cat(unsigned cos_id_map[][PQOS_MAX_SOCKETS]) cos_id = cos_id_map[i][phy_pkg_id]; +#if PQOS_VERSION <= 10300 ret = pqos_l3ca_assoc_set(cpu_id, cos_id); +#else + ret = pqos_alloc_assoc_set(cpu_id, cos_id); +#endif if (ret != PQOS_RETVAL_OK) { printf("PQOS: Failed to associate COS %u to " "cpu %u\n", cos_id, cpu_id); @@ -754,24 +776,43 @@ print_cat_config(void) if (tab[n].cdp == 1) { printf("PQOS: COS: %u, cMASK: 0x%llx, " "dMASK: 0x%llx\n", tab[n].class_id, +#if PQOS_VERSION <= 10300 (unsigned long long)tab[n].code_mask, (unsigned long long)tab[n].data_mask); +#else + (unsigned long long)tab[n].u.s.code_mask, + (unsigned long long)tab[n].u.s.data_mask); +#endif } else { printf("PQOS: COS: %u, MASK: 0x%llx\n", tab[n].class_id, +#if PQOS_VERSION <= 10300 (unsigned long long)tab[n].ways_mask); +#else + (unsigned long long)tab[n].u.ways_mask); +#endif } } } for (i = 0; i < m_sock_count; i++) { +#if PQOS_VERSION <= 10300 unsigned lcores[PQOS_MAX_SOCKET_CORES] = {0}; +#else + unsigned int *lcores = NULL; +#endif unsigned lcount = 0; unsigned n = 0; +#if PQOS_VERSION <= 10300 ret = pqos_cpu_get_cores(m_cpu, m_sockets[i], PQOS_MAX_SOCKET_CORES, &lcount, &lcores[0]); if (ret != PQOS_RETVAL_OK) { +#else + lcores = pqos_cpu_get_cores(m_cpu, m_sockets[i], + &lcount); + if (lcores == NULL || lcount == 0) { +#endif printf("PQOS: Error retrieving core information!\n"); return; } @@ -780,13 +821,21 @@ print_cat_config(void) for (n = 0; n < lcount; n++) { unsigned class_id = 0; +#if PQOS_VERSION <= 10300 ret = pqos_l3ca_assoc_get(lcores[n], &class_id); +#else + ret = pqos_alloc_assoc_get(lcores[n], &class_id); +#endif 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]); } + +#if PQOS_VERSION > 10300 + free(lcores); +#endif } } @@ -849,7 +898,12 @@ cat_fini(void) m_cap = NULL; m_cpu = NULL; m_cap_l3ca = NULL; +#if PQOS_VERSION <= 10300 memset(m_sockets, 0, sizeof(m_sockets)); +#else + if (m_sockets != NULL) + free(m_sockets); +#endif m_sock_count = 0; memset(m_config, 0, sizeof(m_config)); m_config_count = 0; @@ -875,7 +929,11 @@ cat_exit(void) if (CPU_ISSET(cpu_id, &m_config[i].cpumask) == 0) continue; +#if PQOS_VERSION <= 10300 ret = pqos_l3ca_assoc_set(cpu_id, 0); +#else + ret = pqos_alloc_assoc_set(cpu_id, 0); +#endif if (ret != PQOS_RETVAL_OK) { printf("PQOS: Failed to associate COS 0 to " "cpu %u\n", cpu_id); @@ -927,7 +985,9 @@ cat_init(int argc, char **argv) /* PQoS Initialization - Check and initialize CAT capability */ cfg.fd_log = STDOUT_FILENO; cfg.verbose = 0; +#if PQOS_VERSION <= 10300 cfg.cdp_cfg = PQOS_REQUIRE_CDP_ANY; +#endif ret = pqos_init(&cfg); if (ret != PQOS_RETVAL_OK) { printf("PQOS: Error initializing PQoS library!\n"); @@ -953,9 +1013,14 @@ cat_init(int argc, char **argv) } /* Get CPU socket information */ +#if PQOS_VERSION <= 10300 ret = pqos_cpu_get_sockets(m_cpu, PQOS_MAX_SOCKETS, &m_sock_count, m_sockets); if (ret != PQOS_RETVAL_OK) { +#else + m_sockets = pqos_cpu_get_sockets(m_cpu, &m_sock_count); + if (m_sockets == NULL) { +#endif printf("PQOS: Error retrieving CPU socket information!\n"); ret = -EFAULT; goto err; -- 2.14.1