From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0072.outbound.protection.outlook.com [104.47.42.72]) by dpdk.org (Postfix) with ESMTP id 47E3E106A for ; Sat, 21 Jan 2017 18:58:08 +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=oZWN90Qa6ZV/WDivFowZ2zbEko/U3ZxbpPC4SAD8KxE=; b=Gmy+Ixx5FhwvesAJBXYXmyA2w1v9pqbk3+Nf5B6udzaWVUEPXH1/Ll6vu3rJbqUoXfrSOschnGVnyDpgemGlHOFbbBahe+Sue2A1/v9G+G3HIftEjxyiklWMw9JBHN9/ATi6f9iSB3WPRo49KJzlsnT4GVU6qiFxN3+qgz1/DS4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.localdomain (122.171.62.83) by CY1PR0701MB1727.namprd07.prod.outlook.com (10.163.21.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13; Sat, 21 Jan 2017 17:58:02 +0000 Date: Sat, 21 Jan 2017 23:27:41 +0530 From: Jerin Jacob To: Harry van Haaren CC: Message-ID: <20170121175740.GA13156@localhost.localdomain> References: <1484581255-148720-1-git-send-email-harry.van.haaren@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1484581255-148720-1-git-send-email-harry.van.haaren@intel.com> User-Agent: Mutt/1.7.1 (2016-10-04) X-Originating-IP: [122.171.62.83] X-ClientProxiedBy: PN1PR01CA0064.INDPRD01.PROD.OUTLOOK.COM (10.164.136.164) To CY1PR0701MB1727.namprd07.prod.outlook.com (10.163.21.141) X-MS-Office365-Filtering-Correlation-Id: 9a7061cb-bb68-4ba8-0ca2-08d442270c3a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY1PR0701MB1727; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1727; 3:p0KgPE1NnFvAJhyubBhTzExFGpISHTMdfBYDkQlN/pl2uOo2L6nb0Pe+xeCEHGWKPmvergWaLEXQLiroIV1j0BYQzWsoY3uaPhRMpEuw/f8EHUtsjGvSsWQaz4X93F7HCTDl/LGc/8tHnEm5Nfn5EMo6c8rIQFnVc42EzRPOQel3iyc28Kt2KC1ej7PuR4bW+EXcjeSBx8RgH2FZ5SsgmpLgflx/CTdNAFV5lB/0ba23GUqsXtMzNc3u9Xv9SPz2vM/ThgCkNVrOCHjovClsHw==; 25:IvYi2kX11zIrNdqSqF9lU352A+DbIV3puXC6tTubOueAk4ah7RgM/5b1J/R+23mNJ0Hh5xcqWidlkokr4fbK+7QaTucLvCIzEN21tw8wJ000teyKdrNgftjwFmoTYJDapYX5CYsDcZ0WDOqj3vYFstCJMoWPrwlPVR/rS+q4yRbtHcCclwpHlF/TkffmgrUmV4YxfveVT1FiGnqwPDog4dwPv20Gv6VljtnKgLqLAuK2KNwsU2p4JEoEbFoEYS6+pV7ZQtLxxpSKvSvI8A8nYNQOcYJjy9nyTC8WjQyLImmBYp4GNEymQ7bUaY1EvSA1Ti9UHWSHlq008ggiEBMR2Q3C2Xxu3MZa7EbNr3wGwlSm4+NVQ56Z2SVYHTTAH/wfPnwEHc8dAZ66EHddt4l0Nnn+UmDTB92C8jLG8UwexrNnYvL4t9c8X5iWj+WYXCpAvEux1Dn4CNsBwOxerAJOVg== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1727; 31:IGmpIrTUx4h0T6SlsC98+NEGYPquExf+iescA99m5lIwBtQ7/y8ATlxbiT4FuwMmAW1AGsD9HX+YpVamTRnf99rUmbaCeRoIN8p4tpOeXupU4Dwly2PYtQUqsaRhjyxD4PeNrczMX1OcsyoZp5SaHlTGaTGPGw8Rcyd2EaxBq+iAmCzqG0iNRjO2GigJpK5vR9IF5SzEzVvyBdoVLkKKccf6HTxfnwm4eqVjR8KXROpiz8motPKDp4Z2YRL6Elqi2G9f9DeSOzDHlLtWFwTdWA==; 20:5gvsI87B2AR4RUTL+Md9CD+PBxaWx5ZegH47q/gDx58raBS1HokN9YHeZBMeAati0XDJZZDe+f5v+7N6miJsBd14A7rCpohVLWTchGKgjN3uE7l9p6XvvbJpGkbyT7HL8cAaAyLu5HeqYBkbFOLJ2NPhR+i8b8r5UE1uPXsn+cwKNaRKHdswBOk2ARTcWARRojIUrd9Yt06oT0vcW92C121EwXzvSxvzSTOejzT2P6ps3e5C72tCcJKNijSRueySGtQxnu8+Rifr/q7v24IrDEClr2O44YQdeANwRIq6Ouxy7QPNRTCjKOtkJkfIzRtrsxavyjueV0oPDpi2RSvKaPIUtx4gq0ZEF7GKZQdJEvqTFNQFk7a6pywsZj6CLajAqynD5wldS6YnbvtPXMW0quRKiS9Owr0zR9Hu5o5Rcn/gqof96tANce3j8QpKiDZbpqzR50Dx7LvgWzLMZGdK0z53tG0H9ZP6NRtxqH/hN63TXUkhnqRRGJ+14zDjf+TtpUVBtd9u44oKvfkGH6k0tBmOOCuzB3jHbSwz6s7iO7Vy3actTL2YGy9JuihAn8m/DZswohjFMtjTiaQ3kgpsdRS3hMeWn+9mBG1RmBGgCIc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123560025)(20161123558021)(20161123555025)(20161123562025)(20161123564025)(6072148); SRVR:CY1PR0701MB1727; BCL:0; PCL:0; RULEID:; SRVR:CY1PR0701MB1727; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1727; 4:J3XcLCV7OE+L1YBSmZyn31NmrR3TTu72OQRTCz8FBrS+qSkAHXYgx9P+nny0FtVsKgyu1hlvq0ych+bvX9u5yYVLceGmBGKNW0MwYM1ZkJcV3NPHOTOsmyEBYACwIvJ0hjqhuR+EATuOpoSuPS8u/YYZgYogKmmEClTe287JEe8/Er7e2auNmPmMYvuFohkBBtq5OzRZFoqOEttEhLB2b8rK9tlaxpJQ+lNHiRLQJFU8yEfLz+Hub0oDS0j6p/d/53K/b5YNhs1J5Er2Rc++AGk/SPOVQeTi+CtnKkvvD6etvppkEs3YE3aATb0m9MT7Z96/wzn7MkWUuYlEwvP4y24bnYQj7Of86gteYU47X35sQewr0zeZkCcOBfAetszZpvdL00qHlqkfWKzHLpwz8tFVPAgDLxMCe5VvoDf/7YiVz2BdwW7iBRl5a+xCPA+FTbyfv54E5mDSDWDxLdm6CT4WrVuBZMz3EvhBdmhHWAgSKRwOOC63LrTRj7gap0/Fx6qaHhClEDZYAyi0OKzUKrttz/jBzri4qyS0b8R2R+6yC/zYM+o68QHCziGOCtY6KYBWYnKN1vJLgGzcxLOmkBnbukHka2B9x0T9iseQIrHz1XwxXQiL/dXsX/2tp+4gq7s8oGjziahM906Cx1fsAg== X-Forefront-PRVS: 01949FE337 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(39450400003)(24454002)(50944005)(199003)(189002)(8676002)(81156014)(81166006)(6506006)(38730400001)(15395725005)(106356001)(33656002)(105586002)(42186005)(92566002)(54356999)(50986999)(76176999)(97756001)(101416001)(7736002)(305945005)(50466002)(1076002)(61506002)(68736007)(23726003)(6306002)(9686003)(110136003)(53936002)(6666003)(25786008)(46406003)(2950100002)(6916009)(229853002)(55016002)(66066001)(2906002)(83506001)(4001350100001)(47776003)(6116002)(4326007)(189998001)(3846002)(97736004)(5660300001)(42882006)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB1727; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0701MB1727; 23:QY1UMYbKUXXocc3ouQgG7BdKsorYUMU8IaW6Yck?= =?us-ascii?Q?wqaMwv+6sY1JirNmNfvWi/5tithm1IuYqGvjxxbv7R1zr/LHORBy9IVz7Q5V?= =?us-ascii?Q?JIEVNqBwLWIiUou3xqZ9tHoZF3g8FrMU/i+TfGU4Nb0EEJrCdqVsYPJuLLtY?= =?us-ascii?Q?w0A0sxzIyXtYwXQp1IVhac78RntrcZD+AVknMU5eKmH0UC33n3DHBiQySJbN?= =?us-ascii?Q?r+9eDp6iCiHYR2HoiZ6pCgl3SpOimje2Kl8Vd7HZFlfJK9bbggsUi63Zwmk4?= =?us-ascii?Q?hZGC187Bem5YAr8aH/AKX4XCAztDh83ak2WNyc9pfgCDJ0Z7loJPjg3vcxFm?= =?us-ascii?Q?sAMZuFpHFXcVLfXCbrp7Pr7FAKIwzyKXsl7gbU93olFLrKcKiBXGUggorTVH?= =?us-ascii?Q?P8xoZaCA/25b6T6r8tfQcg//noTCN5SmCeuzJFBUGfX/laJ5ZoXSLGwZjNE1?= =?us-ascii?Q?D7zFcSLfE748StU+EjP9IitgIFfmg6dRozZlkdVUE5mrlSzvTI5uu9yLJqSU?= =?us-ascii?Q?ZKqnm9JOan08UscUrqjXETUhErJLcnR964zrthjfcgQzd4Lw9Jhg0YGxmlMV?= =?us-ascii?Q?lrWi8/yazbLW0JlhqBxBmC1x9v49nFEnuEiUQLhsjS5iZER6GNFR2oU5QnWo?= =?us-ascii?Q?Mgm974DRpbxjyp9K5tA2K9s+osZUwgWTMrWnrhqKrYCdQ6bDxHaPTqiv/4mu?= =?us-ascii?Q?MqqS7rCTO5yGgQ147uvey0qlev4ji2ViizGkpkgf22ZQvvlvsTVoqSkDmFwi?= =?us-ascii?Q?x/RJ8rQXxz13I7m1ZrTumDrNRm7ULrDq2toteZMtUn0KzzOtG2115bReYqrR?= =?us-ascii?Q?z5Usw1mtMxphqa6zDLlnnLrKZofD/s6TjCdPwaoQPdvnlU4tlsPAqsZRPUNX?= =?us-ascii?Q?UUyONaizYxv2f1i4Sj/xooKtE6xU9rc2xnfiYzGrjZ8hNumlRGSf/19BRIfW?= =?us-ascii?Q?EmGC0tNNuR0gEoK2v2B7/L2PWXf2VShiepGSLPKRrs9ZlljhH9MhotVeVjaN?= =?us-ascii?Q?hXxtjLYWHD5I1DtPxTC5zYla1uAOshQ0olWLQuH3Mf3o2Q7e3/THN5rwDM2I?= =?us-ascii?Q?3DZJ8uh/Trh5W+1yVg93cGbwyzu8FshzzgsdxqLAOxXzJyLbvhbYiz/nyULP?= =?us-ascii?Q?dNuyYlY5p6zQwiqjrq152NbWm4HcPvmwIAGNj9nHNUfvTOkprPoMevb5X4nf?= =?us-ascii?Q?NmTqASdggsR/HsN8SAQ0UZiuSbOgUv0MatCj60crIJlGE5uLSDI+rh2Bn2iI?= =?us-ascii?Q?rbUoVAR+k7lAmuVLvcYzZOiynSG6fYP8BLrj4RBlr9jMM2yQS010MWW2x5X9?= =?us-ascii?Q?hYjj2NkzYUZQFPn/9UrOw9vd+lG33JasGVl15BLLuixyt?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1727; 6:crCDhvBHi2XAfvt9rEjvO1XSF91uU4mH8zsLiZLoPlytSwrs1H4kDixhO5JVIf4XuBfFcbogVkjYAwounJl/U84hO5punD7hKprqdXy1EpF6gefU8NR5eKm4m5kPISPtTeGiWLgqSQsLhw5wiDm9j0mS7MlkeWgiKGl29Y6b11ZWsqbKljHmgY0kthJGsZJoHFzsr+0cvU2xl6rLXSkFh6Y/wqsWpjpGw/f0Jdo9YAVQjZ0swNpnn4v/McWpR5AgGRtdX+9lhvaP7gSEudZjw6tEj65u3c2kQvUUcP73avsA4Q1GEoq1IOLIKaAu7kgwo0RNP+/YqFAH/6k4yX0t2cnNrdcYdry9G74n+RDw4yyADwKZEjXCY63jz7gCvvCaZPaAO9OFpgiui8r4T7c+eOr2xDFDu11izmrY5dv7Yik=; 5:cCKdBC1iNkgHE59ZZ2xDh2gkZeDSDX7R443RucN1QjuxJr764eQheB1oBLYw7R0uElecNMOjgao6JQwc3hyjkfRpHA+rcmAFbyQkKBbw/oafFfpo34NGXX3yQ6jLEXWb+ArpZSCmc8SsfRhWXaQj/rTd4H+NY/aDy1rhXRwtYdQ=; 24:aS2LxyB6ZqbupMwTXj1ikuKmIXHln3+k0uTxmWeH+1y78+M9ThwYm2pKyxSjy6jgZyTEDwEe6OAWgMZ7Rjptyy0WPZXgc8sfZSusCebGdCA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1727; 7:GIU4jSwNuBVqhWbq84vDdFDVnQ+jen+VKnw3yx7+9zFcAaqOinZJaK0GzKB4x7fpG9NtyNpCJZ+wKfnBTvHnpNlJaOWW4qTzYBWCL9ymtS/iTG+UFRvgR3YVZKhnZf7T9cvPIKAkoy2T61ztFRmfLADodcnOvugucLWIxgsy427aF6mKglKJQmBpOsEH4W1IN36qeuD55PHiuCGqnDfPYBLrq9z6LLVt9JCHn1DQeyRqMkKPaQpAWWt1lOhDHh5StuR5LC5vzKDqMsraYh8c4ohz/IVqJFRjep3rYtzXFs+4QCjyDIybdXYG0HXM3BCUFym3J/6wgV9EOUiF7qJQrSDuAyEpGRVFtYjXshrMrnorsuSxtxQX8sXDopOrW96YJpVmmnwAbGR6wjNjOQ3xP9/W9LJUqgQbGndidvdft2hmbEUmKZU75fCONRo9U9VkU3G19GeTBMcVF+66H+JgMw== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2017 17:58:02.3584 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0701MB1727 Subject: Re: [dpdk-dev] [PATCH 00/15] next-eventdev: event/sw Software Eventdev 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: Sat, 21 Jan 2017 17:58:09 -0000 On Mon, Jan 16, 2017 at 03:40:40PM +0000, Harry van Haaren wrote: > The following patchset adds software eventdev implementation > to the next-eventdev tree, and applies to current git HEAD. > > This implementation is based on the previous software eventdev > RFC patchset[1], updated to integrate with the latest rte_eventdev.h > API. > > The first two patches make changes to the eventdev API, > then the software implementation is added, and finally > tests are added for the sw eventdev implementation. > > This patchset contains the work of multiple developers, > please see signoffs on each patch. > > Signed-off-by: Harry van Haaren > > [1] http://dpdk.org/ml/archives/dev/2016-November/050285.html > A few git-am, check-git-log.sh and checkpatches.sh errors in the patch series. 1) [dpdk-next-eventdev-review] $ pwclient git-am 19436 Applying patch #19436 using 'git am' Description: [dpdk-dev,03/15] event/sw: add new software-only eventdev driver Applying: event/sw: add new software-only eventdev driver /export/dpdk-next-eventdev-review/.git/rebase-apply/patch:114: new blank line at EOF. + warning: 1 line adds whitespace errors. 2) [dpdk-next-eventdev-review] $ ./devtools/check-git-log.sh Wrong headline format: event/sw: add start, stop and close functions 3) [dpdk-next-eventdev-review] $ ./devtools/checkpatches.sh *.patch ### [PATCH 03/12] event/sw: add support for event queues ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses #83: FILE: drivers/event/sw/iq_ring.h:60: +#define force_inline inline __attribute__((always_inline)) ERROR:SPACING: spaces required around that '>' (ctx:OxW) #163: FILE: drivers/event/sw/iq_ring.h:140: + for (i = nb_qes; i --> 0; ) ^ WARNING:LONG_LINE_STRING: line over 80 characters #257: FILE: drivers/event/sw/sw_evdev.c:90: + SW_LOG_DBG("invalid reorder_window_size for ordered queue\n"); WARNING:LONG_LINE_COMMENT: line over 80 characters #454: FILE: drivers/event/sw/sw_evdev.h:116: + struct reorder_buffer_entry *reorder_buffer; /* packets awaiting reordering */ total: 2 errors, 2 warnings, 437 lines checked ### [PATCH 04/12] event/sw: add support for event ports ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses #89: FILE: drivers/event/sw/event_ring.h:65: +#define force_inline inline __attribute__((always_inline)) WARNING:LONG_LINE: line over 80 characters #235: FILE: drivers/event/sw/sw_evdev.c:65: + uint8_t enq_oversize = conf->enqueue_depth > info.max_event_port_enqueue_depth; WARNING:LONG_LINE: line over 80 characters #236: FILE: drivers/event/sw/sw_evdev.c:66: + uint8_t deq_oversize = conf->dequeue_depth > info.max_event_port_dequeue_depth; WARNING:LONG_LINE_STRING: line over 80 characters #244: FILE: drivers/event/sw/sw_evdev.c:74: + snprintf(buf, sizeof(buf), "sw%d_%s", dev->data->dev_id, "rx_worker_ring"); WARNING:LONG_LINE_STRING: line over 80 characters #255: FILE: drivers/event/sw/sw_evdev.c:85: + snprintf(buf, sizeof(buf), "sw%d_%s", dev->data->dev_id, "cq_worker_ring"); WARNING:LONG_LINE_COMMENT: line over 80 characters #309: FILE: drivers/event/sw/sw_evdev.h:53: +#define SCHED_DEQUEUE_BURST_SIZE 32 /* how many packets pulled from port by sched */ WARNING:LONG_LINE_COMMENT: line over 80 characters #360: FILE: drivers/event/sw/sw_evdev.h:169: + uint64_t avg_pkt_ticks; /* tracks average over NUM_SAMPLES bursts */ total: 1 errors, 6 warnings, 368 lines checked ### [PATCH 05/12] event/sw: add support for linking queues to ports WARNING:LONG_LINE: line over 80 characters #74: FILE: drivers/event/sw/sw_evdev.c:108: + q->cq_map[j] = q->cq_map[q->cq_num_mapped_cqs - 1]; total: 0 errors, 1 warnings, 79 lines checked ### [PATCH 06/12] event/sw: add worker core functions WARNING:LONG_LINE_COMMENT: line over 80 characters #73: FILE: drivers/event/sw/sw_evdev.h:67: +#define QE_FLAG_VALID (1 << QE_FLAG_VALID_SHIFT) /* set for NEW, FWD, FRAG */ WARNING:LONG_LINE: line over 80 characters #191: FILE: drivers/event/sw/sw_evdev_worker.c:80: + int failed_to_get = rte_atomic32_dec_and_test(&sw->inflight_quanta); WARNING:LONG_LINE: line over 80 characters #217: FILE: drivers/event/sw/sw_evdev_worker.c:106: + uint64_t burst_pkt_ticks = burst_ticks / p->last_dequeue_burst_sz; total: 0 errors, 3 warnings, 233 lines checked ### [PATCH 07/12] event/sw: add scheduling logic WARNING:LONG_LINE_COMMENT: line over 80 characters #156: FILE: drivers/event/sw/sw_evdev_scheduler.c:76: + /* use cheap bit mixing, since we only need to lose a few bits */ WARNING:LONG_LINE: line over 80 characters #170: FILE: drivers/event/sw/sw_evdev_scheduler.c:90: + for (cq_idx = 0; cq_idx < qid->cq_num_mapped_cqs; cq_idx++) { WARNING:LONG_LINE: line over 80 characters #174: FILE: drivers/event/sw/sw_evdev_scheduler.c:94: + cq = test_cq, cq_free_cnt = test_cq_free; WARNING:LONG_LINE: line over 80 characters #204: FILE: drivers/event/sw/sw_evdev_scheduler.c:124: + qe_ring_enqueue_burst(worker, p->cq_buf, p->cq_buf_count, WARNING:LONG_LINE: line over 80 characters #231: FILE: drivers/event/sw/sw_evdev_scheduler.c:151: + count = RTE_MIN(count, rte_ring_count(qid->reorder_buffer_freelist)); WARNING:LONG_LINE: line over 80 characters #249: FILE: drivers/event/sw/sw_evdev_scheduler.c:169: + } while (qe_ring_free_count(sw->ports[cq].cq_worker_ring) == 0 || WARNING:LONG_LINE: line over 80 characters #342: FILE: drivers/event/sw/sw_evdev_scheduler.c:262: + (type == RTE_SCHED_TYPE_ORDERED)); WARNING:LONG_LINE: line over 80 characters #391: FILE: drivers/event/sw/sw_evdev_scheduler.c:311: + qe = &entry->fragments[entry->fragment_index + j]; WARNING:LONG_LINE: line over 80 characters #401: FILE: drivers/event/sw/sw_evdev_scheduler.c:321: + struct sw_qid *dest_qid_ptr = &sw->qids[dest_qid]; WARNING:LONG_LINE: line over 80 characters #402: FILE: drivers/event/sw/sw_evdev_scheduler.c:322: + const struct iq_ring *dest_iq_ptr = dest_qid_ptr->iq[dest_iq]; WARNING:LONG_LINE: line over 80 characters #427: FILE: drivers/event/sw/sw_evdev_scheduler.c:347: + rte_ring_sp_enqueue(qid->reorder_buffer_freelist, WARNING:LONG_LINE: line over 80 characters #495: FILE: drivers/event/sw/sw_evdev_scheduler.c:415: + struct sw_fid_t *fid = &sw->qids[hist_qid].fids[hist_fid]; WARNING:LONG_LINE: line over 80 characters #502: FILE: drivers/event/sw/sw_evdev_scheduler.c:422: + uintptr_t rob_ptr = (uintptr_t)hist_entry->rob_entry; WARNING:LONG_LINE: line over 80 characters #505: FILE: drivers/event/sw/sw_evdev_scheduler.c:425: + rob_ptr |= ((valid - 1) & (uintptr_t)&dummy_rob); WARNING:LONG_LINE: line over 80 characters #506: FILE: drivers/event/sw/sw_evdev_scheduler.c:426: + ((struct reorder_buffer_entry *)rob_ptr)->ready = WARNING:LONG_LINE_COMMENT: line over 80 characters #520: FILE: drivers/event/sw/sw_evdev_scheduler.c:440: + /* Although fragmentation not currently supported WARNING:LONG_LINE: line over 80 characters #525: FILE: drivers/event/sw/sw_evdev_scheduler.c:445: + if (rob_entry->num_fragments == SW_FRAGMENTS_MAX) WARNING:LONG_LINE: line over 80 characters #528: FILE: drivers/event/sw/sw_evdev_scheduler.c:448: + rob_entry->fragments[rob_entry->num_fragments++] = *qe; WARNING:LONG_LINE_COMMENT: line over 80 characters #625: FILE: drivers/event/sw/sw_evdev_scheduler.c:545: + /* TODO: use a function pointer in the port itself */ WARNING:LONG_LINE: line over 80 characters #627: FILE: drivers/event/sw/sw_evdev_scheduler.c:547: + in_pkts += sw_schedule_pull_port_dir(sw, i); WARNING:LONG_LINE: line over 80 characters #629: FILE: drivers/event/sw/sw_evdev_scheduler.c:549: + in_pkts += sw_schedule_pull_port_lb(sw, i); WARNING:LONG_LINE: line over 80 characters #631: FILE: drivers/event/sw/sw_evdev_scheduler.c:551: + in_pkts += sw_schedule_pull_port_no_reorder(sw, i); total: 0 errors, 22 warnings, 623 lines checked ### [PATCH 09/12] event/sw: add dump function for easier debugging WARNING:LONG_LINE: line over 80 characters #39: FILE: drivers/event/sw/sw_evdev.c:422: + uint32_t credits = sw->nb_events_limit - (quanta * SW_INFLIGHT_QUANTA_SIZE); WARNING:LONG_LINE_STRING: line over 80 characters #50: FILE: drivers/event/sw/sw_evdev.c:433: + fprintf(f, "\trx %"PRIu64"\tdrop %"PRIu64"\ttx %"PRIu64"\tinflight %d\n", WARNING:LONG_LINE: line over 80 characters #56: FILE: drivers/event/sw/sw_evdev.c:439: + sw->ports[i].avg_pkt_ticks, sw->ports[i].inflight_credits); ERROR:SPACING: spaces required around that '>' (ctx:OxW) #61: FILE: drivers/event/sw/sw_evdev.c:444: + for (max = (int)RTE_DIM(p->poll_buckets); max --> 0;) ^ WARNING:LONG_LINE: line over 80 characters #67: FILE: drivers/event/sw/sw_evdev.c:450: + ((j << SW_DEQ_STAT_BUCKET_SHIFT) + 1), WARNING:LONG_LINE: line over 80 characters #68: FILE: drivers/event/sw/sw_evdev.c:451: + ((j+1) << SW_DEQ_STAT_BUCKET_SHIFT), WARNING:LONG_LINE: line over 80 characters #69: FILE: drivers/event/sw/sw_evdev.c:452: + p->poll_buckets[j] * 100.0 / p->total_polls); WARNING:LONG_LINE: line over 80 characters #75: FILE: drivers/event/sw/sw_evdev.c:458: + fprintf(f, "\t%srx ring used: %4"PRIu64"\tfree: %4"PRIu64 COL_RESET"\n", WARNING:LONG_LINE: line over 80 characters #81: FILE: drivers/event/sw/sw_evdev.c:464: + fprintf(f, "\t%scq ring used: %4"PRIu64"\tfree: %4"PRIu64 COL_RESET"\n", WARNING:LONG_LINE: line over 80 characters #96: FILE: drivers/event/sw/sw_evdev.c:479: + rte_ring_free_count(qid->reorder_buffer_freelist)); WARNING:LONG_LINE: line over 80 characters #106: FILE: drivers/event/sw/sw_evdev.c:489: + fprintf(f, "\tInflights: %u\tFlows pinned per port: ", inflights); WARNING:LONG_LINE: line over 80 characters #118: FILE: drivers/event/sw/sw_evdev.c:501: + fprintf(f, "\t%siq %d: Used %d\tFree %d"COL_RESET"\n", total: 1 errors, 11 warnings, 121 lines checked ### [PATCH 10/12] event/sw: add xstats support WARNING:LONG_LINE: line over 80 characters #340: FILE: drivers/event/sw/sw_evdev_xstats.c:243: + RTE_BUILD_BUG_ON(RTE_DIM(port_bucket_stats) != RTE_DIM(port_bucket_types)); WARNING:LONG_LINE: line over 80 characters #349: FILE: drivers/event/sw/sw_evdev_xstats.c:252: + ((MAX_SW_CONS_Q_DEPTH >> SW_DEQ_STAT_BUCKET_SHIFT) + 1) + WARNING:LONG_LINE: line over 80 characters #352: FILE: drivers/event/sw/sw_evdev_xstats.c:255: + sw->qid_count * sw->port_count * RTE_DIM(qid_port_stats); WARNING:LONG_LINE: line over 80 characters #382: FILE: drivers/event/sw/sw_evdev_xstats.c:285: + for (i = 0; i < RTE_DIM(port_bucket_stats); i++, stat++) { WARNING:LONG_LINE_STRING: line over 80 characters #389: FILE: drivers/event/sw/sw_evdev_xstats.c:292: + snprintf(sname, sizeof(sname), "port_%u_%s_%u-%u", WARNING:LONG_LINE: line over 80 characters #391: FILE: drivers/event/sw/sw_evdev_xstats.c:294: + (bkt << SW_DEQ_STAT_BUCKET_SHIFT) + 1, WARNING:LONG_LINE: line over 80 characters #392: FILE: drivers/event/sw/sw_evdev_xstats.c:295: + (bkt + 1) << SW_DEQ_STAT_BUCKET_SHIFT); total: 0 errors, 7 warnings, 454 lines checked ### [PATCH 11/12] app/test: add unit tests for SW eventdev driver WARNING:BLOCK_COMMENT_STYLE: Block comments should align the * on each line #114: FILE: app/test/test_sw_eventdev.c:73: + /* + * len = 14 + 46 WARNING:LONG_LINE: line over 80 characters #405: FILE: app/test/test_sw_eventdev.c:364: + printf("%d: error stats incorrect for directed port\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #494: FILE: app/test/test_sw_eventdev.c:453: + printf("%d: error stats incorrect for directed port\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #513: FILE: app/test/test_sw_eventdev.c:472: + printf("%d: error magic sequence number not dequeued\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #697: FILE: app/test/test_sw_eventdev.c:656: + printf("%d: Half of NUM_PKTS didn't arrive at port 1\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #710: FILE: app/test/test_sw_eventdev.c:669: + printf("%d: Half of NUM_PKTS didn't arrive at port 2\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #767: FILE: app/test/test_sw_eventdev.c:726: + printf("%d: Sched core didn't handle pkt as expected\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #793: FILE: app/test/test_sw_eventdev.c:752: + .event_queue_cfg = RTE_EVENT_QUEUE_CFG_ATOMIC_ONLY, WARNING:LONG_LINE_COMMENT: line over 80 characters #815: FILE: app/test/test_sw_eventdev.c:774: + /* enqueue 3 packets, setting seqn and QID as needed to check priority */ WARNING:LONG_LINE: line over 80 characters #839: FILE: app/test/test_sw_eventdev.c:798: + uint32_t deq_pkts = rte_event_dequeue_burst(evdev, t->port[0], ev, 32, 0); WARNING:LONG_LINE_STRING: line over 80 characters #847: FILE: app/test/test_sw_eventdev.c:806: + printf("%d: qid priority test: seqn %d incorrectly prioritized\n", WARNING:LONG_LINE: line over 80 characters #874: FILE: app/test/test_sw_eventdev.c:833: + printf("%d: error mapping qid to port %d\n", __LINE__, i); WARNING:LONG_LINE: line over 80 characters #923: FILE: app/test/test_sw_eventdev.c:882: + printf("%d:%s: port 1 inflight not correct\n", __LINE__, __func__); WARNING:LONG_LINE: line over 80 characters #927: FILE: app/test/test_sw_eventdev.c:886: + printf("%d:%s: port 2 inflight not correct\n", __LINE__, __func__); WARNING:LONG_LINE: line over 80 characters #931: FILE: app/test/test_sw_eventdev.c:890: + printf("%d:%s: port 3 inflight not correct\n", __LINE__, __func__); WARNING:LONG_LINE_COMMENT: line over 80 characters #947: FILE: app/test/test_sw_eventdev.c:906: + /* Create qm instance with 1 atomic QID going to 3 ports + 1 prod port */ WARNING:LONG_LINE: line over 80 characters #1073: FILE: app/test/test_sw_eventdev.c:1032: + printf("%d:%s: port 1 inflight not correct\n", __LINE__, __func__); WARNING:LONG_LINE: line over 80 characters #1081: FILE: app/test/test_sw_eventdev.c:1040: + printf("%d:%s: port 2 inflight not correct\n", __LINE__, __func__); WARNING:LONG_LINE: line over 80 characters #1089: FILE: app/test/test_sw_eventdev.c:1048: + printf("%d:%s: port 3 inflight not correct\n", __LINE__, __func__); WARNING:LONG_LINE: line over 80 characters #1125: FILE: app/test/test_sw_eventdev.c:1084: + err = rte_event_port_link(evdev, t->port[i], &t->qid[0], NULL, 1); WARNING:LONG_LINE: line over 80 characters #1179: FILE: app/test/test_sw_eventdev.c:1138: + printf("%d:%s: port 1 inflight count not correct\n", __LINE__, __func__); WARNING:LONG_LINE: line over 80 characters #1190: FILE: app/test/test_sw_eventdev.c:1149: + printf("%d:%s: port 1 dropped count not correct\n", __LINE__, __func__); WARNING:LONG_LINE: line over 80 characters #1261: FILE: app/test/test_sw_eventdev.c:1220: + printf("%d: Sched core didn't handle pkt as expected\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #1390: FILE: app/test/test_sw_eventdev.c:1349: + printf("%d: Sched core didn't handle pkt as expected\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #1395: FILE: app/test/test_sw_eventdev.c:1354: + printf("%d: %s port 1 inflight not correct\n", __LINE__, __func__); WARNING:LONG_LINE: line over 80 characters #1399: FILE: app/test/test_sw_eventdev.c:1358: + printf("%d: %s port 2 inflight not correct\n", __LINE__, __func__); WARNING:LONG_LINE: line over 80 characters #1415: FILE: app/test/test_sw_eventdev.c:1374: + printf("%d: port 1 inflight decrement after DEQ != 0\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #1419: FILE: app/test/test_sw_eventdev.c:1378: + err = rte_event_enqueue_burst(evdev, t->port[p1], &release_ev, 1); WARNING:LONG_LINE: line over 80 characters #1449: FILE: app/test/test_sw_eventdev.c:1408: + printf("%d: port 1 inflight decrement after DEQ != 0\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #1453: FILE: app/test/test_sw_eventdev.c:1412: + err = rte_event_enqueue_burst(evdev, t->port[p2], &release_ev, 1); WARNING:LONG_LINE_COMMENT: line over 80 characters #1521: FILE: app/test/test_sw_eventdev.c:1480: + /* CQ mapping to QID for load balanced ports (directed mapped on create) */ WARNING:LONG_LINE: line over 80 characters #1523: FILE: app/test/test_sw_eventdev.c:1482: + err = rte_event_port_link(evdev, t->port[i], &t->qid[0], NULL, 1); WARNING:LONG_LINE: line over 80 characters #1566: FILE: app/test/test_sw_eventdev.c:1525: + deq_pkts = rte_event_dequeue_burst(evdev, t->port[i], &deq_ev[i], WARNING:LONG_LINE: line over 80 characters #1589: FILE: app/test/test_sw_eventdev.c:1548: + deq_pkts = rte_event_dequeue_burst(evdev, t->port[tx_port], deq_ev, 3, 0); WARNING:LONG_LINE_STRING: line over 80 characters #1593: FILE: app/test/test_sw_eventdev.c:1552: + printf("%d: expected 3 packets at tx port got %d from port %d\n", WARNING:LONG_LINE_STRING: line over 80 characters #1603: FILE: app/test/test_sw_eventdev.c:1562: + printf("%d: Incorrect sequence number(%d) from port %d\n", WARNING:LONG_LINE: line over 80 characters #1636: FILE: app/test/test_sw_eventdev.c:1595: + char rx_port_used_stat[64], rx_port_free_stat[64], other_port_used_stat[64]; WARNING:LONG_LINE: line over 80 characters #1645: FILE: app/test/test_sw_eventdev.c:1604: + rte_event_port_link(evdev, t->port[1], NULL, NULL, 0) != 1) { WARNING:LONG_LINE: line over 80 characters #1661: FILE: app/test/test_sw_eventdev.c:1620: + if (rte_event_dev_get_xstat_by_name(evdev, "port_0_cq_ring_used", NULL) != 1) WARNING:LONG_LINE: line over 80 characters #1669: FILE: app/test/test_sw_eventdev.c:1628: + if (rte_event_dev_get_xstat_by_name(evdev, rx_port_used_stat, NULL) != 1) { WARNING:LONG_LINE: line over 80 characters #1682: FILE: app/test/test_sw_eventdev.c:1641: + } while (rte_event_dev_get_xstat_by_name(evdev, rx_port_free_stat, NULL) != 0); WARNING:LONG_LINE: line over 80 characters #1693: FILE: app/test/test_sw_eventdev.c:1652: + if (rte_event_dev_get_xstat_by_name(evdev, other_port_used_stat, NULL) != 0) { WARNING:LONG_LINE: line over 80 characters #1698: FILE: app/test/test_sw_eventdev.c:1657: + if (rte_event_dev_get_xstat_by_name(evdev, "qid_0_iq_0_used", NULL) != 1) { WARNING:LONG_LINE: line over 80 characters #1699: FILE: app/test/test_sw_eventdev.c:1658: + printf("%d: Error, QID does not have exactly 1 packet\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #1712: FILE: app/test/test_sw_eventdev.c:1671: + if (rte_event_dev_get_xstat_by_name(evdev, other_port_used_stat, NULL) != 1) { WARNING:LONG_LINE: line over 80 characters #1713: FILE: app/test/test_sw_eventdev.c:1672: + printf("%d: Error, second flow did not pass out first\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #1717: FILE: app/test/test_sw_eventdev.c:1676: + if (rte_event_dev_get_xstat_by_name(evdev, "qid_0_iq_0_used", NULL) != 1) { WARNING:LONG_LINE: line over 80 characters #1718: FILE: app/test/test_sw_eventdev.c:1677: + printf("%d: Error, QID does not have exactly 1 packet\n", __LINE__); WARNING:LONG_LINE_COMMENT: line over 80 characters #1739: FILE: app/test/test_sw_eventdev.c:1698: + * the Queue Manager. Each packet gets looped through QIDs 0-8, 16 times, WARNING:LONG_LINE: line over 80 characters #1746: FILE: app/test/test_sw_eventdev.c:1705: + uint16_t i, nb_rx = rte_event_dequeue_burst(evdev, port, ev, BURST_SIZE, 0); WARNING:LONG_LINE: line over 80 characters #1756: FILE: app/test/test_sw_eventdev.c:1715: + enqd = rte_event_enqueue_burst(evdev, port, &ev[i], 1); WARNING:LONG_LINE: line over 80 characters #1758: FILE: app/test/test_sw_eventdev.c:1717: + printf("%d: Can't enqueue FWD!!\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #1768: FILE: app/test/test_sw_eventdev.c:1727: + enqd = rte_event_enqueue_burst(evdev, port, &ev[i], 1); WARNING:LONG_LINE: line over 80 characters #1770: FILE: app/test/test_sw_eventdev.c:1729: + printf("%d: Can't enqueue FWD!!\n", __LINE__); WARNING:LONG_LINE: line over 80 characters #1814: FILE: app/test/test_sw_eventdev.c:1773: + while (rte_event_enqueue_burst(evdev, port, &ev, 1) != 1) WARNING:LONG_LINE_STRING: line over 80 characters #1892: FILE: app/test/test_sw_eventdev.c:1851: + printf("%d: \tSched Rx = %" PRIu64 ", Tx = %" PRIu64 "\n", WARNING:LONG_LINE: line over 80 characters #1901: FILE: app/test/test_sw_eventdev.c:1860: + printf("%d: No schedules for seconds, deadlock\n", __LINE__); WARNING:LONG_LINE_STRING: line over 80 characters #1942: FILE: app/test/test_sw_eventdev.c:1901: + eventdev_func_mempool = rte_pktmbuf_pool_create("QM_SA_MBUF_POOL", WARNING:LONG_LINE_COMMENT: line over 80 characters #2065: FILE: app/test/test_sw_eventdev.c:2024: + * in the static eventdev_func_mempool variable. It is re-used on re-runs total: 0 errors, 59 warnings, 2042 lines checked 3/11 valid patches