Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/8106/?format=api
https://patches.dpdk.org/api/patches/8106/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/1445973229-22058-18-git-send-email-viktorin@rehivetech.com/", "project": { "id": 1, "url": "https://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<1445973229-22058-18-git-send-email-viktorin@rehivetech.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1445973229-22058-18-git-send-email-viktorin@rehivetech.com", "date": "2015-10-27T19:13:49", "name": "[dpdk-dev,v3,17/17] acl: handle when SSE 4.1 is unsupported", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "ceb467c23a0621cc2639d1b6c6aa543e9a47cc14", "submitter": { "id": 292, "url": "https://patches.dpdk.org/api/people/292/?format=api", "name": "Jan Viktorin", "email": "viktorin@rehivetech.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dpdk/patch/1445973229-22058-18-git-send-email-viktorin@rehivetech.com/mbox/", "series": [], "comments": "https://patches.dpdk.org/api/patches/8106/comments/", "check": "pending", "checks": "https://patches.dpdk.org/api/patches/8106/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 925248E86;\n\tTue, 27 Oct 2015 20:16:43 +0100 (CET)", "from wes1-so1.wedos.net (wes1-so1.wedos.net [46.28.106.15])\n\tby dpdk.org (Postfix) with ESMTP id 3728A8D9E\n\tfor <dev@dpdk.org>; Tue, 27 Oct 2015 20:16:17 +0100 (CET)", "from pcviktorin.fit.vutbr.cz (pcviktorin.fit.vutbr.cz\n\t[147.229.13.147])\n\tby wes1-so1.wedos.net (Postfix) with ESMTPSA id 3nljSJ6Hfxz3qn;\n\tTue, 27 Oct 2015 20:16:16 +0100 (CET)" ], "From": "Jan Viktorin <viktorin@rehivetech.com>", "To": "dev@dpdk.org, David Hunt <david.hunt@intel.com>,\n\tDavid Marchand <david.marchand@6wind.com>,\n\t\"Ananyev, Konstantin\" <konstantin.ananyev@intel.com>", "Date": "Tue, 27 Oct 2015 20:13:49 +0100", "Message-Id": "<1445973229-22058-18-git-send-email-viktorin@rehivetech.com>", "X-Mailer": "git-send-email 2.6.1", "In-Reply-To": "<1445973229-22058-1-git-send-email-viktorin@rehivetech.com>", "References": "<1445877458-31052-1-git-send-email-viktorin@rehivetech.com>\n\t<1445973229-22058-1-git-send-email-viktorin@rehivetech.com>", "Subject": "[dpdk-dev] [PATCH v3 17/17] acl: handle when SSE 4.1 is unsupported", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "patches and discussions about DPDK <dev.dpdk.org>", "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://dpdk.org/ml/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "The main goal of this check is to avoid passing the -msse4.1\noption to the GCC that does not support it (like arm toolchains).\n\nThe ACL now builds for ARM.\n\nSigned-off-by: Jan Viktorin <viktorin@rehivetech.com>\n---\nv2 -> v3: handle missing SSE as suggested by K. Ananyev\n---\n lib/librte_acl/Makefile | 7 ++++++-\n lib/librte_acl/rte_acl.c | 19 +++++++++++++++++--\n 2 files changed, 23 insertions(+), 3 deletions(-)", "diff": "diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile\nindex 7a1cf8a..ed95f03 100644\n--- a/lib/librte_acl/Makefile\n+++ b/lib/librte_acl/Makefile\n@@ -48,9 +48,14 @@ SRCS-$(CONFIG_RTE_LIBRTE_ACL) += rte_acl.c\n SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_bld.c\n SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_gen.c\n SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_scalar.c\n-SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_sse.c\n \n+CC_SSE4_1_SUPPORT := $(shell $(CC) -msse4.1 -dM -E - < /dev/null >/dev/null 2>&1 && echo 1)\n+\n+ifeq ($(CC_SSE4_1_SUPPORT),1)\n+SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_sse.c\n+CFLAGS_rte_acl.o += -DCC_SSE41_SUPPORT\n CFLAGS_acl_run_sse.o += -msse4.1\n+endif\n \n #\n # If the compiler supports AVX2 instructions,\ndiff --git a/lib/librte_acl/rte_acl.c b/lib/librte_acl/rte_acl.c\nindex d60219f..e7822de 100644\n--- a/lib/librte_acl/rte_acl.c\n+++ b/lib/librte_acl/rte_acl.c\n@@ -42,6 +42,20 @@ static struct rte_tailq_elem rte_acl_tailq = {\n EAL_REGISTER_TAILQ(rte_acl_tailq)\n \n /*\n+ * If the compiler doesn't support SSE instructions,\n+ * then the dummy one would be used instead for SSE classify method.\n+ */\n+int __attribute__ ((weak))\n+rte_acl_classify_sse(__rte_unused const struct rte_acl_ctx *ctx,\n+\t__rte_unused const uint8_t **data,\n+\t__rte_unused uint32_t *results,\n+\t__rte_unused uint32_t num,\n+\t__rte_unused uint32_t categories)\n+{\n+\treturn -ENOTSUP;\n+}\n+\n+/*\n * If the compiler doesn't support AVX2 instructions,\n * then the dummy one would be used instead for AVX2 classify method.\n */\n@@ -97,10 +111,11 @@ rte_acl_init(void)\n \tif (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2))\n \t\talg = RTE_ACL_CLASSIFY_AVX2;\n \telse if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_SSE4_1))\n-#else\n+\t\talg = RTE_ACL_CLASSIFY_SSE;\n+#elif defined (CC_SSE41_SUPPORT)\n \tif (rte_cpu_get_flag_enabled(RTE_CPUFLAG_SSE4_1))\n-#endif\n \t\talg = RTE_ACL_CLASSIFY_SSE;\n+#endif\n \n \trte_acl_set_default_classify(alg);\n }\n", "prefixes": [ "dpdk-dev", "v3", "17/17" ] }{ "id": 8106, "url": "