From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Jerin.Jacob@cavium.com>
Received: from NAM01-BN3-obe.outbound.protection.outlook.com
 (mail-bn3nam01on0080.outbound.protection.outlook.com [104.47.33.80])
 by dpdk.org (Postfix) with ESMTP id C48DA2934
 for <dev@dpdk.org>; Wed, 23 Nov 2016 00:43:38 +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=cTPgYWUnmN/MWklH3mRkGiMaQkm73Dquphw7BjeYKx0=;
 b=opgmKtpsJD66SM3DndnlvZG8gvce7GXsw73F3StS+U7R3+h3B1HuiBtQO/9gnWhS811VKnTCxhLYIw3bXhhFRNCGlP0VTs1wXwJ53UZgRruyLCmBtOZw6nJ9TUFVb39vNkMCyQka2FAppoX8Ag4DjAQlDol4dzj75oLKzL9lxnU=
Authentication-Results: spf=none (sender IP is )
 smtp.mailfrom=Jerin.Jacob@cavium.com; 
Received: from svelivela-lt.caveonetworks.com (50.233.148.156) by
 BN3PR0701MB1717.namprd07.prod.outlook.com (10.163.39.16) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id
 15.1.693.12; Tue, 22 Nov 2016 23:43:35 +0000
Date: Wed, 23 Nov 2016 05:13:32 +0530
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
To: "Eads, Gage" <gage.eads@intel.com>
CC: "dev@dpdk.org" <dev@dpdk.org>, "Richardson, Bruce"
 <bruce.richardson@intel.com>, "Van Haaren, Harry"
 <harry.van.haaren@intel.com>, "hemant.agrawal@nxp.com"
 <hemant.agrawal@nxp.com>
Message-ID: <20161122234331.GA20501@svelivela-lt.caveonetworks.com>
References: <1479447902-3700-1-git-send-email-jerin.jacob@caviumnetworks.com>
 <1479447902-3700-3-git-send-email-jerin.jacob@caviumnetworks.com>
 <9184057F7FC11744A2107296B6B8EB1E01E31739@FMSMSX108.amr.corp.intel.com>
 <20161121191358.GA9044@svelivela-lt.caveonetworks.com>
 <20161121193133.GA9895@svelivela-lt.caveonetworks.com>
 <9184057F7FC11744A2107296B6B8EB1E01E31C40@FMSMSX108.amr.corp.intel.com>
 <20161122181913.GA9456@svelivela-lt.caveonetworks.com>
 <9184057F7FC11744A2107296B6B8EB1E01E32F3E@FMSMSX108.amr.corp.intel.com>
 <20161122200022.GA12168@svelivela-lt.caveonetworks.com>
 <9184057F7FC11744A2107296B6B8EB1E01E331A3@FMSMSX108.amr.corp.intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <9184057F7FC11744A2107296B6B8EB1E01E331A3@FMSMSX108.amr.corp.intel.com>
User-Agent: Mutt/1.7.1 (2016-10-04)
X-Originating-IP: [50.233.148.156]
X-ClientProxiedBy: BY1PR0501CA0025.namprd05.prod.outlook.com (10.162.139.35)
 To BN3PR0701MB1717.namprd07.prod.outlook.com (10.163.39.16)
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717;
 2:xN2UetnsFgQOmQXxPUuTL5OGIEulgFgTWDo7y+RwEVAnHTpyHlOej3RXGWbaGeyfejuOpgk39fsMEaUty86hMAYLlHp8yHLmHza+npLyRw9W8k68zF1LQ4371uedd5+xEhVTdoWla4RRioVX/LPV/mFmRxXpCXR7dsoh97PZcqw=;
 3:jxhQtaK4zkilafeB0pxvZdb5tkjYemYiMWUDpIrmLR74QTKSJWJNgUTwsFG1A+N0vj/gXpEXzFwhcy02InkFyDO3q+NtXJfxEs9QFHfZHKAzlnS+GxOeMkulamBKbTobC3nuQdvLDxDUSX5er2mdmjGNuaI/nBRES2Ev5L7YLE4=
X-MS-Office365-Filtering-Correlation-Id: 9ea89a7b-abcd-4ed8-bc6f-08d413316053
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001);
 SRVR:BN3PR0701MB1717; 
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717;
 25:QevQTWi7ElCn2l2gSYmiC+nujbam3wneIS9LDG0VVw3WfuFXn46B2cGQHMVUBQKLlFuRtriHVXOKKCVzt21VEtDxohFGwyr8PfZyt3ZAxHf2rTfTWYqSrGJXLtadfYSdw3R+t7k/5PVJL/mv/bnxuP0ybdqYXYc10gtKKV5qIX+W1AV3GClusWTmvIW5yIsCxfHDTPVKn/mO2FI63W7cFtnYF2ki3VCgXpR909SD363xAfVAy/x0I4/wiL4z+0o4/EBl6R0Q3AoH2J1rl0Vn7sScc5GtIe/Naw8B8if7LIos+buI7OjM8+/jiX2HTFur9jl65Dk8U+ST399XEzSiDjjNnOIphig4PvAerTDF7SNGYvWo5NOOgFOZL5KWbhOkGo+yStxysbg32s/sbukmUo4ZO3ZMWs8t4+kUFlbVy2t9fkzQEUjFoONeB74xXSWYmb0SaV1QfpKS5EWSTcsgc0SZyVAnWAIlcssRsweciBEYRT9laj3nJtIhjygy6rBp3f3xyWOubYMrJwRvctOaJuJZC5M2s/54/jfcTSoXsNE268upfs7C+mH8UnQnnj9riE2KHsg0jzLVeaT/38kd6zae3Z/bOYbM4gZ15cLJbgKz1YvxoBHt2pOGoYzYq9swWAOSp3j0Dlb6B1Aa190WAJFX6gxWrhLtqP0LpHD4fA6eGyo00yMw79VSILr3h9z630fiExqm/j9OA2OeaCXJezoNDCMacON2DXqEzOLYpbyXFrGvuMM/Zpo5ZAlR2OhAog83/uT5hFLlpE92pMgQckRJhmFwE3IZiNLlWSQUuiM=
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717;
 31:UHxRNUwELP8Ykt+KNx5PkSo348D/rzx0lIuXkqP7kvnOAvdMM8M60212WAjtoD4ICXkrg+C2wrdZ07153epFUEJZuKW8KOLDShoNoi6BovJKVSUAZjDd2W+JkIu6LxaYXKcNSFH3ysQdGst/pF8h1VJwGg8KK3ikNHpRcq9Sxxr3jazZwDg/hWAp8UF3Oh7A+z+9UkDrmLTT/G9quD2YLx1Laqt9TukZiVXlBdSBHxJ2H/+4IVLagaH0CJXzSpglQ7NbK+Z266n6O4NxjKW/QA==;
 20:Sljr5dh8dmD3fDpF5XK7IsXvOcVdX7S8lYcw8HBM2X/YkcDSjJb2yKW81muPIhm5i2iW9ZwaOjb3xsIIGTrWm9zoP//9js5ROEF1TOo6qnksGbwobhUn5LCJyqYSEdJs3VaKQYqaQ5a8BT1AuTsXcVraYmjSFrlgjXz2RU9+zrJocWN42GT1oLzkGlqKUWWwSRWtf4NuI1bruLDg3sx7dRvQozeK+Gfpc49fyGDLGfnQTc9ybBSOofZRqfXD5mXMUb3X1xyg9nH6Q4ELvaE9o0dwBSM19OtxKbes0X0PTc6X7p9I3m/74oOhPTphQrIzYVSBN00uUIclM4uXwYRZiNe2xqcfSdyrF84AAHB+YkAjqA/BTtIPKk8y6DdqvSc5Y71WTRuhYiHC5G636VfUBwRZz7YWMl/b90lg+3pl2621BrO4LMXjLVf5YQRWnsR9pZBV8oDWj9JzVsrRUckbAd/+3WN7bS0czmEuBNt1crfrCoP2kMGTxnUcZtkRLni9yJ2H+SdhoUB917hx/DxuZJA4KRUOxIrjzcKe9u0tRIJrjc0mtPspjnhqtw2HukWYn5QvUHQNf9vikhHw86LXMMOgNYJ34wpZ7Vr6QaMFNgU=
X-Microsoft-Antispam-PRVS: <BN3PR0701MB17179E8677A878143AFC70A281B40@BN3PR0701MB1717.namprd07.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(278428928389397)(271806183753584)(185117386973197)(228905959029699)(17755550239193);
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(6040307)(6060326)(6045199)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6061324)(6041248);
 SRVR:BN3PR0701MB1717; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0701MB1717; 
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717;
 4:urXsBzFGVmRKHli5z+ANYjGuOGccIXRtVnXsSa0murkddxIwSD0t1dJnXjWQWymIvKl5B1fLxOEDXkyt90E4hyfgQdZTQugjREb1PJdin8ZNra0z3nruXlGvs6IK57y5dZEcwPTWPSNDuu3gBu6B54FVz4uYZX9ljHQtRwjq2ACPm7vPciMD6Xgz8vRk9cU2OzhprTJCTKeV+GR7DSMvM8uD5LXbLJC7+Z6AL3jDlg5x4apPjxnvdY+0yL+jAfcQfIb53FxxS8myf3giZqgXfzQtJ+f9F9WY333r/FIyqC6IudNTCGM0MQKa/V9ZKgfIg1sKKp69Zn7t/9tYuuBwrm3rdFH79uZ34+dSWfhqcPECozuPGIWKdRm9t2dgsqc3CWLv8db07vjIP7/po31cASLJSWhqKzM8PdXRi3ubLvgtzSqjIhpuMgvqUsjQUoQUU7PMUYPH3kGCK9IAClafnzt1avGWqw68fwAajvzAicoOwiSnbsLDvxoR/EHnQK+WlmTADP03QVkUGm98b2qEIl1PjRN93UgepxW68TGxHnNz9pJCO74SyO3a3UZdVT3K9296WFMDu4qMBcQMyt6qwcLXLwQ07jUnqvd+cKmll52ru1G28bIMpgy18RGcN0vDbox37Cg+jyyYPXNKN22gQQ==
X-Forefront-PRVS: 0134AD334F
X-Forefront-Antispam-Report: SFV:NSPM;
 SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(24454002)(13464003)(76094002)(377454003)(189002)(8676002)(101416001)(2950100002)(76176999)(42882006)(8666005)(1076002)(54356999)(305945005)(5660300001)(6916009)(4326007)(38730400001)(2906002)(110136003)(229853002)(69596002)(83506001)(81156014)(7846002)(50986999)(81166006)(77096005)(53416004)(4001350100001)(92566002)(7736002)(97756001)(3846002)(105586002)(23726003)(561944003)(6666003)(189998001)(97736004)(46406003)(47776003)(9686002)(93886004)(68736007)(66066001)(50466002)(33656002)(6116002)(42186005)(106356001)(18370500001)(7059030);
 DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1717;
 H:svelivela-lt.caveonetworks.com; 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; BN3PR0701MB1717;
 23:enWeV3KGfIKd+ZqbDTvw/B6qQiSnoTLAOkkr20n?=
 =?us-ascii?Q?CEpe8HeCwm7GdC8hUzVfF176qyJjumkx1swiks0YuWzFmPQO7he50k0FrqLt?=
 =?us-ascii?Q?rEgZd6P+PdFsGS4/sBNmJ+zo+1efkhVd7CP8f5eMZdlBhlF4ZJSSKRiw26wl?=
 =?us-ascii?Q?OKLy9AP9bRzQ/MS0OUWwBABdueXpMxJdNeQ0hE8OCY93fPS1xFe0lk1SM8wn?=
 =?us-ascii?Q?njcZFj97d5/9LP7pk9SMrK8cqJ6oeHB8FQH83JLk5l00VAY8m4wfyj1853qi?=
 =?us-ascii?Q?rwnY3MYh6pUTXXSCsg4hmnf3nAW8RyEtHs6h7xRu/3MqvivM6gGbsAFKtXJ9?=
 =?us-ascii?Q?2JBdQYR44hQfRW7QBBxT36phu7JOj3jeiyRXd+ykyS8/o1KPUqZUgBk6jEqx?=
 =?us-ascii?Q?0amokfncbfIc8Whe3Uw/HHwfAznViTGBsDfbsC7UK0waHbpNSwyZdOesb/SJ?=
 =?us-ascii?Q?1BfCG3zu3TebgAwkwCLOWq8FusRjaSFn5kbcbu4IMdvSN9hhCKhHSfAB02wz?=
 =?us-ascii?Q?eE8AGRxbTnTXI905NRwGp1oKUY1EqskT2J4TO/ITXQ9jrPjkKgaw5z+xCbUw?=
 =?us-ascii?Q?02PqRxJIxPbWtAqXqy0rh2c+l3n26A4fEuo2B4CjCcvqumVHGBwW44lD7uPu?=
 =?us-ascii?Q?L8GNQMQziu9t9EEPclBjikjOmkKbYT7whnMR9WBw2USd19v1bbNbKBi8mMYX?=
 =?us-ascii?Q?KDzepPygmCjVhoMvaomTCFkOtLd4cPBldzxWbX2EkGxgHCT7jwtDU+4DBZiN?=
 =?us-ascii?Q?f9gWgeoShJhZsN6ugAZPWn1mlS94j7AS+6sltdsXD6PvTG5RYSm35TnwmIEJ?=
 =?us-ascii?Q?7sFFsiumRzY8843C7RhZDUHP7Hk6d/h35GxzIChF2EiT++8wDfpeD5/UVBi2?=
 =?us-ascii?Q?fn5sxksIsKVqcdZVS1Jv4ImL8RCHwFAThSPQdKPsN1nAStrk/mW1lDXxaVGU?=
 =?us-ascii?Q?OXVU06R74D7i4kIvq/s912JVsQBvKhValqqs07vtFhkerJLi4im+c0xRmigL?=
 =?us-ascii?Q?K0XA22/COdTqw9oaU9tgomCWvIbgfJjd80p1clKrkfoB6eEMHa3sSGQnPIw4?=
 =?us-ascii?Q?c4TPi3kEac96o1RBFvPreuyeudaovvMcs2X7SvLdlbdGHGp8Mdeitfra9kf0?=
 =?us-ascii?Q?UZR9Np6yZlYovypphQSC9jW8uuzwx6RZKPFwZyh3D18jn2fct7dtvv1+SvBG?=
 =?us-ascii?Q?lNpNtwBEVDDwDcGauTSHLHNm32QXHYfmyQkoDxdEshlESkaeV1huADn49jjg?=
 =?us-ascii?Q?f3ONmhEgOXyCdkH0B26ZAyGVDFpu9qGCKhurKyxffazrCa7eT1i4y3OIkMCy?=
 =?us-ascii?Q?NBjCwCAcdDqC/LXI6h07DG+9609sIcOyLynKD7aMCgfARokPsElyEZnoBquL?=
 =?us-ascii?Q?qAW40TI0J8HOcc7v/JvXFnCO+7eJpJY1g2hxMEuAgiY+p3yFA?=
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717;
 6:U7IEkCx9iJTHUrqeXRrHFOjD8y085mPDYR+PmQxmWidBMBSLjjQsu9cSO6+XmRkcjY5sjUoOsmdV9oiN28IgduNBtlMmn+aq5cN9KP0zoCVsxe0ylNvCjyPyQs7qUXZ/JPS04ZIH0vlG8TIjxFQDGN+OCobanZlVfIbI2r5LB85ZiVWL5NqgaUoKu9awXh+aJYsPbya+GkN/BzziYV32U+QPEtK9BhsZTaVqNJpotUCOZVUJKPKSykVE+lTIGmhjVjkhKIEEUpCMKwj8/YLlWthG79MCe+xIq+z8Sk8FxwI8DrD/kxXP/L1tAw3L4zjts6AiR9KUnsVG+0EwN/118COQZ01fLZtbzc28WIIDygg=;
 5:BiuiCNVUjaao5zgqPty31Fk8yCCBn0nSpRpCRDKuy64xlZTHLFDvlkAIVh3Gb5AMPsHxaCjEqNoRkeQxyZ0WehwVqVKGDNsaCBgFXRAhQwfJcq3+M0i+IZ7IeTjGpZxSkca+Suck5rT8ttB+SNN4ug==;
 24:6oNkYj2n+J9Z1aZjdZP1nU5bgZmXmt9W5CYXB7qkKttKlqVvBF4kPWITfdg+zEWfg2J3mYL6zYqbRU4Bsa/ZSWQZOHxKglB1KjsxHKapDIc=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717;
 7:mKG2XvLY+ZxEGPv0tzF1YAlvmIlTGHY1AQPt7/O98uBXOxLky7xnfsLe0CMt5e0CDK96EE6cdi8rJS865ZnQKFTHtVsQix1sbfOQyQ58yUL9Fv2XWXLorPJiL6sJ4Cna6Cr4qqs3BbyprcUjckSxv56KBM3GICONuzwIbr14GnMQiS1hjxCsRyZSKR1i2//kudF7aRZEw7NQIFSij6Gdbzcz9LrgapY8rpHMoX4U9v3DupQBqUgayAVKT1LTmy5RiHN+s5YLgarj++mQf3QRTdR3aA/bVC2ur0UXwqBd1SeRnstKGgG2tK092Ge7TNW4Dtl/HxqHUJBWFGEBpH//idWY9qj4But01s1AJrZzbYs=
X-OriginatorOrg: caviumnetworks.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2016 23:43:35.1994 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1717
Subject: Re: [dpdk-dev] [PATCH 2/4] eventdev: implement the northbound APIs
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>,
 <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: Tue, 22 Nov 2016 23:43:39 -0000

On Tue, Nov 22, 2016 at 10:48:32PM +0000, Eads, Gage wrote:
> 
> 
> >  -----Original Message-----
> >  From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com]
> >  Sent: Tuesday, November 22, 2016 2:00 PM
> >  To: Eads, Gage <gage.eads@intel.com>
> >  Cc: dev@dpdk.org; Richardson, Bruce <bruce.richardson@intel.com>; Van
> >  Haaren, Harry <harry.van.haaren@intel.com>; hemant.agrawal@nxp.com
> >  Subject: Re: [dpdk-dev] [PATCH 2/4] eventdev: implement the northbound APIs
> >  
> >  On Tue, Nov 22, 2016 at 07:43:03PM +0000, Eads, Gage wrote:
> >  > >  > >  > > One open issue I noticed is the "typical workflow"
> >  > > description starting in  > >  rte_eventdev.h:204 conflicts with the
> >  > > centralized software PMD that Harry  > >  posted last week.
> >  > > Specifically, that PMD expects a single core to call the  > >
> >  > > schedule function. We could extend the documentation to account for
> >  > > this  > >  alternative style of scheduler invocation, or discuss
> >  > > ways to make the  software  > >  PMD work with the documented
> >  > > workflow. I prefer the former, but either  way I  > >  think we
> >  > > ought to expose the scheduler's expected usage to the user --
> >  > > perhaps  > >  through an RTE_EVENT_DEV_CAP flag?
> >  > >  > >  >
> >  > >  > >  > I prefer former too, you can propose the documentation
> >  > > change required  for  > >  software PMD.
> >  > >  >
> >  > >  > Sure, proposal follows. The "typical workflow" isn't the most
> >  > > optimal by  having a conditional in the fast-path, of course, but it
> >  > > demonstrates the idea  simply.
> >  > >  >
> >  > >  > (line 204)
> >  > >  >  * An event driven based application has following typical
> >  > > workflow on
> >  > >  fastpath:
> >  > >  >  * \code{.c}
> >  > >  >  *      while (1) {
> >  > >  >  *
> >  > >  >  *              if (dev_info.event_dev_cap &
> >  > >  >  *                      RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED)
> >  > >  >  *                      rte_event_schedule(dev_id);
> >  > >
> >  > >  Yes, I like the idea of RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED.
> >  > >  It  can be input to application/subsystem to  launch separate
> >  > > core(s) for schedule functions.
> >  > >  But, I think, the "dev_info.event_dev_cap &
> >  > > RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED"
> >  > >  check can be moved inside the implementation(to make the better
> >  > > decisions  and  avoiding consuming cycles on HW based schedulers.
> >  >
> >  > How would this check work? Wouldn't it prevent any core from running the
> >  software scheduler in the centralized case?
> >  
> >  I guess you may not need RTE_EVENT_DEV_CAP here, instead need flag for
> >  device configure here
> >  
> >  #define RTE_EVENT_DEV_CFG_DISTRIBUTED_SCHED (1ULL << 1)
> >  
> >  struct rte_event_dev_config config;
> >  config.event_dev_cfg = RTE_EVENT_DEV_CFG_DISTRIBUTED_SCHED;
> >  rte_event_dev_configure(.., &config);
> >  
> >  on the driver side on configure,
> >  if (config.event_dev_cfg & RTE_EVENT_DEV_CFG_DISTRIBUTED_SCHED)
> >  	eventdev->schedule = NULL;
> >  else // centralized case
> >  	eventdev->schedule = your_centrized_schedule_function;
> >  
> >  Does that work?
> 
> Hm, I fear the API would give users the impression that they can select the scheduling behavior of a given eventdev, when a software scheduler is more likely to be either distributed or centralized -- not both.

Even if it is capability flag then also it is per "device". Right ?
capability flag is more of read only too. Am i missing something here?

> 
> What if we use the capability flag, and define rte_event_schedule() as the scheduling function for centralized schedulers and rte_event_dequeue() as the scheduling function for distributed schedulers? That way, the datapath could be the simple dequeue -> process -> enqueue. Applications would check the capability flag at configuration time to decide whether or not to launch an lcore that calls rte_event_schedule().

I am all for simple "dequeue -> process -> enqueue".
rte_event_schedule() added for SW scheduler only,  now it may not make
sense to add one more check on top of "rte_event_schedule()" to see
it is really need or not in fastpath?

> 
> >  
> >  >
> >  > >
> >  > >  >  *
> >  > >  >  *              rte_event_dequeue(...);
> >  > >  >  *
> >  > >  >  *              (event processing)
> >  > >  >  *
> >  > >  >  *              rte_event_enqueue(...);
> >  > >  >  *      }
> >  > >  >  * \endcode
> >  > >  >  *
> >  > >  >  * The *schedule* operation is intended to do event scheduling,
> >  > > and the  >  * *dequeue* operation returns the scheduled events. An
> >  > > implementation  >  * is free to define the semantics between
> >  > > *schedule* and *dequeue*. For  >  * example, a system based on a
> >  > > hardware scheduler can define its  >  * rte_event_schedule() to be
> >  > > an NOOP, whereas a software scheduler can  use  >  * the *schedule*
> >  > > operation to schedule events. The  >  *
> >  > > RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED capability flag indicates
> >  > > whether  >  * rte_event_schedule() should be called by all cores or
> >  > > by a single (typically  >  * dedicated) core.
> >  > >  >
> >  > >  > (line 308)
> >  > >  > #define RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED (1ULL < 2)  > /**<
> >  > > Event scheduling implementation is distributed and all cores must
> >  > > execute  >  *  rte_event_schedule(). If unset, the implementation is
> >  > > centralized and  >  *  a single core must execute the schedule
> >  > > operation.
> >  > >  >  *
> >  > >  >  *  \see rte_event_schedule()
> >  > >  >  */
> >  > >  >
> >  > >  > >  >
> >  > >  > >  > On same note, If software PMD based workflow need  a
> >  > > separate core(s)  for  > >  > schedule function then, Can we hide
> >  > > that from API specification and pass  an  > >  > argument to SW pmd
> >  > > to define the scheduling core(s)?
> >  > >  > >  >
> >  > >  > >  > Something like --vdev=eventsw0,schedule_cmask=0x2
> >  > >  >
> >  > >  > An API for controlling the scheduler coremask instead of (or
> >  > > perhaps in  addition to) the vdev argument would be good, to allow
> >  > > runtime control. I can  imagine apps that scale the number of cores
> >  > > based on load, and in doing so  may want to migrate the scheduler to a
> >  different core.
> >  > >
> >  > >  Yes, an API for number of scheduler core looks OK. But if we are
> >  > > going to  have service core approach then we just need to specify at
> >  > > one place as  application will not creating the service functions.
> >  > >
> >  > >  >
> >  > >  > >
> >  > >  > >  Just a thought,
> >  > >  > >
> >  > >  > >  Perhaps, We could introduce generic "service" cores concept to
> >  > > DPDK to  hide  > >  the  > >  requirement where the implementation
> >  > > needs dedicated core to do certain  > >  work. I guess it would
> >  > > useful for other NPU integration in DPDK.
> >  > >  > >
> >  > >  >
> >  > >  > That's an interesting idea. As you suggested in the other thread,
> >  > > this concept  could be extended to the "producer" code in the
> >  > > example for configurations  where the NIC requires software to feed
> >  > > into the eventdev. And to the other  subsystems mentioned in your original
> >  PDF, crypto and timer.
> >  > >
> >  > >  Yes. Producers should come in service core category. I think, that
> >  > > enables us to have better NPU integration.(same application code for
> >  > > NPU vs non NPU)
> >  > >