From patchwork Fri Mar 3 17:27:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 21372 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 281A3FA83; Fri, 3 Mar 2017 18:29:55 +0100 (CET) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0062.outbound.protection.outlook.com [104.47.33.62]) by dpdk.org (Postfix) with ESMTP id A12B4FA7E for ; Fri, 3 Mar 2017 18:29:53 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=heiqLgqMJK/gyLTvDND2XnclOR1X6pxSJ4WhX6pjyFo=; b=CdPg3J2YNuG1ckDOHarT3nff7Z975mRMDFM8l9izqRo9F3+fD8OGedQXPKwo0KrCIJM+5esdOIJyNp2VGnrhj9R63k56ynEaZ4+SI3U55CtkI1KAFRxxh19Nf7LWQAR2mmb+/f6YXYe+SYBjOZ3Bp9kbMIigWvNgriDwj7rB5F0= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost.localdomain.localdomain (14.140.2.178) by BN3PR0701MB1719.namprd07.prod.outlook.com (10.163.39.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.933.12; Fri, 3 Mar 2017 17:29:48 +0000 From: Jerin Jacob To: dev@dpdk.org Cc: thomas.monjalon@6wind.com, bruce.richardson@intel.com, harry.van.haaren@intel.com, hemant.agrawal@nxp.com, gage.eads@intel.com, nipun.gupta@nxp.com, santosh.shukla@caviumnetworks.com, Jerin Jacob Date: Fri, 3 Mar 2017 22:57:56 +0530 Message-Id: <1488562101-6658-15-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1488562101-6658-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1488562101-6658-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: BMXPR01CA0021.INDPRD01.PROD.OUTLOOK.COM (10.174.214.159) To BN3PR0701MB1719.namprd07.prod.outlook.com (10.163.39.18) X-MS-Office365-Filtering-Correlation-Id: e722316e-4b7b-4e2b-ff61-08d4625ae6a1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BN3PR0701MB1719; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 3:CLA0dyUVZCJ6aws2pWNjNnfvM8hx0CGuquOOktLD/I671k199XOBKJkhTmwJMWnGVqEZVtMuUpRt/jwETlvMYkekw/UUduvSN+O+uC8TfA5gBS4wnx2ttwoKG8z4CK5aE/oxBkMt4DXsoSH+kJ/ZzqYro1NGjcqFvRvImdD2z/In+GFd6IH6dRhz3OWOJWa+v6Ya+fgxZ87xUZfZ1kjU3kwjqpFqG4QcfSeTEL0hPP1+1DjLX3NESOmJ2ghSDAVBGXUZYFyz5HBqunU9Xwz++w==; 25:JKibNchJkMwpd/2QFeyJvnIDubQg/+fe3aYiQKhDJDJIhPhUDyMJzFSh24gS+jq6KoGzd95eLujQ0KgogKUyVz0gwts+m7minBCAoWjHemGyV0BWChMtQy6yn57N52efY2qjRO7U9VxPcVvOjOOr1F6ZiWLjc/wof3VfqBoB/9EbiBXivXLsmohMqvrNRiEO4uhKr9vXKDrC6kh8maErvCYdGMHGuUkxs+10D1mm7eDwN56WinOGO6R6M2Hwuo8v1dOPOWE4DKszUeZhuWckzeUwA3ERmgvi6o+mm/Z/FWjNhb4EH5iuGBsCqbHw/cp7zNIxDhlh8pfBiDkt/0FU6iuLWRgjoWDE3uZzikzYWYtWjzUmeWFCfLIfUfsY7PSRjDTg4wOaVcElfXMfwp8GtGtAtXLkP1IOo1vnLHPzBofPlskU+Bv9zraxyH5BSGkl4/l38MXp+VnGxVR2WyL27g== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 31:qSB7FEE52tTLJZmZgEHZRgwnBoU3EZ3UfYpSkoMa/Tbm6SKIdlpziezA043qQEO+hYLNq8zdu6Fi7cVPJGkMP8R9y1H5jQfQgzKWDCBa4C+2+WJBZ3S5JACUsoqkisbM9j9W2L7De0XrDAHOWiK1tjq5c0qdae1yBj2xfC+ui4nEOQcSihYGjcqeiUAfQ/P0YGXrmC7AVgwLBcRvEJSQz4es5EIPNzB6o3DuDUDQLcgkqZaqA4dThPMP3JULwDi6; 20:at+SIfZCvoCFAL0bF3lINz1KYpHZvmw+43INrhE4XMr2uEX2NBpzcUU/xczf8SpTAt5ubfB9gsPfEJnVQKMF2twgDfjSx7Gu8jPgn2nzLK2mW0cI/VE2N2R+20b6tHuJHEcB+1s9PnH7IyVYXz1ktNaN+V6UEHo1qXpZPZy98AaTtQGjji9/tLxEQ9AwQTSj0R0zRqD3qLnZ5W92u5vlbkmnpSCJAxv5Xf9dTNeCdGve7OTSv0W8mYNboh+7dyEX22S9JvJ16bHrF6ky9mQ4vsjttt3EWIPA2lgO6wqRmsNyKw+axP6sNCO9LyZ74ZKrnDF2NE9jn4p4LomDqPQd+wm8d6l2Op7Z6StFZR16nOZpa0SqCQjyoLdI2UhDgCG62tyWMvOaaIwiq/zKVyfw9Nynk1C1/zlA0abS4SgykYv0hrOZ/3cQjOxDpuJIVcWnP03ovq16p/RN3YtxKInAsx5RFJYfJuFhuP/rZGRq1no+9krSmG0qNtkqkPYiukNNeZ6onjKBTOEtOpmox7nRhEBQnA8I4/7LMZga7IdrJXHXBGz+8xYQXePX+67SLINr+6RxE6EVXGLukTTRxr4EvEo4qsaWr5OV8GSrXpqCHYM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123555025)(20161123560025)(20161123562025)(20161123558025)(20161123564025)(6072148); SRVR:BN3PR0701MB1719; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0701MB1719; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 4:YCEmg23R5mwr2FHsEiftdr9CbBLihQU7n4tJziETdXQhiTIFAjM7yKcYw5fp7+FCuMvxCRf4DyMKrUkw7kIAKIAjadKzT9ynIG8N9WyoZfem0wrNB/UthcCpJJC4IxdH6uVT6f16e72MsO7SXok7WUfLtkz5aTZlOOSE3bVpl9PiIy+Yu3+s972j6LI2qMuMLhYRiK25E7a+N3C2vmstmAqNK0jOfJCTEJJSjljocO71+DS7PBS8KeXSOIq/ogHeoAobAf7rWSl+YR23M3Sa48ALHBNPNhK8zvSykkfg44YtThyWfKOYPKXXS2g2YPM23Q+raYTLtS8lU/HzUeUrxIBBjuGVt21yqOjhRylo8PbQfDlxSWyq/CgceHoH54mWmZickzReCBXaQXlclPf+3zr4RcIEJ+80cf3Wv3ODMvRHLGv6pnwJLWJb1pq0Z51oAL9rBnNtj3K6py48KQfrYp/rWa+PJw1Z1XzZUpahO4Hmz23gDxHbkbjj8oBg1nvIfovGY7LPDAkr76+kyPChh8Uja8Tl3aM17bXchZNEANWhBs9Sz4h9pTfi+j/FvKC00K4cOFiDvybT/kxBd0EkwyCuln2DxjUawx8ChOeSsf0= X-Forefront-PRVS: 0235CBE7D0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(39450400003)(3846002)(50986999)(6116002)(36756003)(81166006)(6512007)(97736004)(2361001)(2351001)(6506006)(575784001)(5660300001)(42186005)(50226002)(8676002)(6666003)(106356001)(8656002)(2950100002)(2906002)(25786008)(47776003)(6486002)(76176999)(33646002)(7736002)(107886003)(42882006)(66066001)(110136004)(4326008)(38730400002)(6916009)(305945005)(48376002)(92566002)(5009440100003)(5003940100001)(50466002)(189998001)(53936002)(7099028)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1719; H:localhost.localdomain.localdomain; FPR:; SPF:None; MLV:nov; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1719; 23:Hc9KVecOpj5Py3KffRgDO3EKasWsbpgJoJpFdhq?= 8zAqwE9A11OKZppwnXv8UzLb2mXt5c3dKUZwG9X4C0nhhf6gTlsF2/7Xh1mqCuj2ticRM+0L0HkRqY3b8q2DwLDQp2CwryngndlvubGjgpDdG+Pis7M1tEv2fBr/vUHG1sQIDgXJBqpa02Qu9gm7cRXhNNqElXBRLfvyviTmR/LxCemtbD8q+65jY4jBUNt5m46P3FKXncTPlWXWglYUJhY9EkIHfCRf2t8mu/m/kdElftQAAqO0w5XsHaDxdf4OKAJOEBaxF+4hkSVK6Lc2G/wQCMOni6E14IJjYW59Cd1r9UYD7Xmit9iqUCXKEw0+tMWSgSiJfqPwbItgPPVDtIEG94lk0ar/6xZ47NAGPW7J/RvMOvAQhve+gn4oSVX1zHz2nqFEUcFiRL2FPEV2KVI3W3wl1aaVrWKAEnXOYeDWI2Oa4RIONqqZylJQ3t3QrRm9BIKnEfzIvPw36Wf8Y45vEGrwX7VVVAbTqrAOhp+gnNquBiIeFDsxQAXEF8vaBdfEcM+LNQS1IAb2Kw2i0lVym8e3Vlo86XFuiSxIc9tNZq7rgSXJfc5aqZvxY6/XKKR4nd2/kSzQcc25WWYLvueW+SWII76CSpRs0FNtnyJYwwoZ8aZIJlfl721Tk2xvI7SXc+4aUMMDGXBPLoUsm8KWBsHBImXMocQRjRlosNZ//G73TlFN//eDI+kSOR67IE5mvIVsFpsM+FzsBVIpd+C3CkVYZNs2F+ZAqcFJGWkue+EbJxOKGjPoLT63onSmnoFoVgeRJbi32Fr5y6HxHe0BhLp7BmwxMWJ8w3LDK49E21GJpPdHfk1ZpHiRUyVnd2nrS+wxOhoYBv1E2+Zy3k32l5atlgBl7G1xyu4v0thi2rtw90tqX8WBsYutAqqjvMYsqGaAnNKPuwisxEphdKQaTgFpfLdLVxaJ+ezRtfqHzz5+ekZ6tT9pmaWI04MPaYVZiDyCcG3zZtU0NH8FM34T3CJsJWkt7cocS3wULlbPlFEiTfYaIVe663eMjOA0VTKfGLI1Ku8F26cK13/ctp42q7sZQB+IU4KmUY599cQOqqa1BvZIjXMzZpXLuO5fnpWt+P10YqjpgvDMExpa1rtK3g58D5Ua3Zb2ZM3WmSpFQaLF3uaP+vz4SxR5C0nDndEk= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 6:ickNmbdfXKxaFGlO265oc0uhaHFtP/ynX/2+veHGp9KOz+P+M+5Ak9AOcSZ45lLzz1iKsK1tHVSGDBhP3ZczUvk7wf2hUcAETD0xqFBno/T8vLmzpbtdb8jhxya+ZS63zTsrU/oom8VD8mHTbmdJd0D7ELtrAOgNCK9VsrP2mRhT90sCmNA6WXBxpLJtIL7BdNTelZwArDUxXT6lhBW8O32kRY9pONs/Bs+6kHiM1y3tw1tUXIDIYkI2zQY+BSV6Qvrpf8UoswYHV6M65piFDc/S8bISfSRtlmZnZd4Xd4LfUTeyxT7wUI76iYCvvCG0awkl9w/3NlZ8tg9NnJbHlRs/yvD6nmwvqJoLdViKknfVqlx91a+ZBfg6xMtlzNWiy2zmucwY60+b/lU+zfKcdA==; 5:Wg6ogsXCp1VyILvhtz1+sTcjrs4JTOP/6sqfEIZv4gVxu5doNxhDQqPWJjcq3gFf6fUZWNlRXiO5TdD8ojIElllHfbVUH+q0QqV0C66z6+5727TjNHQsTDmmFDbE2cDJQ5WCEOQxA51UePh6gLXltQ==; 24:p7OBeZSzSIYbgmoUi4dhbvOlS2tuyAOAGA022x/PECvJVp6SlXntoW4eV/j7EABg6dpTCIcD4Y2Cu1FysapTsx5x+yJrjZyAEqN+RQemS0c= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 7:ZyNB9KwIS6GnI6IVFVMvkKhDd20fVNwIn5hORWaQxEactPklLci+AF+kpy5T7lu+2ALl2KLrrhwMqV9XgnWje3WZdwUO30HP14CQvKhzVtnFDzSYR+6De0WVRxLN8LasNeI6PyZV+ZTo8bgL36UC3rpTq6IngEioH3BGndIYJ0NVkaTmblre0VGd9qzAiEGsed48J3jROYxsS4R9xtF6eEdpLRlzgwR0jEwOrfYT3UlBqlO2ohcAcssIGl8WpYB6F4FmquMwrfGQrkN7vVLyxoHvCiQrclyZeW0FLa87wuwDJ7YU584slteZ7BAybF4fYSFlSv7EEkJRpvYnhIWzKA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 17:29:48.9224 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1719 Subject: [dpdk-dev] [PATCH 14/39] event/octeontx: add support for linking queues to ports 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" queues to port link and unlink establishment is through setting/resetting the queue/group membership in SSOW_VHWS_GRPMSK_CHGX Signed-off-by: Jerin Jacob Signed-off-by: Santosh Shukla Acked-by: Gage Eads --- drivers/event/octeontx/ssovf_evdev.c | 42 ++++++++++++++++++++++++++++++++++++ drivers/event/octeontx/ssovf_evdev.h | 8 +++++++ 2 files changed, 50 insertions(+) diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c index 84868f0..dccadb6 100644 --- a/drivers/event/octeontx/ssovf_evdev.c +++ b/drivers/event/octeontx/ssovf_evdev.c @@ -255,6 +255,46 @@ ssovf_port_setup(struct rte_eventdev *dev, uint8_t port_id, ssovf_log_dbg("port=%d ws=%p", port_id, ws); return 0; } + +static int +ssovf_port_link(struct rte_eventdev *dev, void *port, const uint8_t queues[], + const uint8_t priorities[], uint16_t nb_links) +{ + uint16_t link; + uint64_t val; + struct ssows *ws = port; + + ssovf_func_trace("port=%d nb_links=%d", ws->port, nb_links); + RTE_SET_USED(dev); + RTE_SET_USED(priorities); + + for (link = 0; link < nb_links; link++) { + val = queues[link]; + val |= (1ULL << 24); /* Set membership */ + ssovf_write64(val, ws->base + SSOW_VHWS_GRPMSK_CHGX(0)); + } + return (int)nb_links; +} + +static int +ssovf_port_unlink(struct rte_eventdev *dev, void *port, uint8_t queues[], + uint16_t nb_unlinks) +{ + uint16_t unlink; + uint64_t val; + struct ssows *ws = port; + + ssovf_func_trace("port=%d nb_links=%d", ws->port, nb_unlinks); + RTE_SET_USED(dev); + + for (unlink = 0; unlink < nb_unlinks; unlink++) { + val = queues[unlink]; + val &= ~(1ULL << 24); /* Clear membership */ + ssovf_write64(val, ws->base + SSOW_VHWS_GRPMSK_CHGX(0)); + } + return (int)nb_unlinks; +} + /* Initialize and register event driver with DPDK Application */ static const struct rte_eventdev_ops ssovf_ops = { .dev_infos_get = ssovf_info_get, @@ -265,6 +305,8 @@ static const struct rte_eventdev_ops ssovf_ops = { .port_def_conf = ssovf_port_def_conf, .port_setup = ssovf_port_setup, .port_release = ssovf_port_release, + .port_link = ssovf_port_link, + .port_unlink = ssovf_port_unlink, }; static int diff --git a/drivers/event/octeontx/ssovf_evdev.h b/drivers/event/octeontx/ssovf_evdev.h index eda0e37..9a6bac5 100644 --- a/drivers/event/octeontx/ssovf_evdev.h +++ b/drivers/event/octeontx/ssovf_evdev.h @@ -120,6 +120,14 @@ #define SSO_GRP_GET_PRIORITY 0x7 #define SSO_GRP_SET_PRIORITY 0x8 +/* + * In Cavium OcteonTX SoC, all accesses to the device registers are + * implictly strongly ordered. So, The relaxed version of IO operation is + * safe to use with out any IO memory barriers. + */ +#define ssovf_read64 rte_read64_relaxed +#define ssovf_write64 rte_write64_relaxed + struct ssovf_evdev { uint8_t max_event_queues; uint8_t max_event_ports;