From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Jerin.Jacob@cavium.com>
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 <dev@dpdk.org>; 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 <jerin.jacob@caviumnetworks.com>
To: Harry van Haaren <harry.van.haaren@intel.com>
CC: <dev@dpdk.org>
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: <CY1PR0701MB17274AF061C0F042DC1B584781700@CY1PR0701MB1727.namprd07.prod.outlook.com>
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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <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>,
 <mailto:dev-request@dpdk.org?subject=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 <harry.van.haaren@intel.com>
> 
> [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