From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 67390439A6;
	Tue, 23 Jan 2024 11:07:16 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 28554402BD;
	Tue, 23 Jan 2024 11:07:16 +0100 (CET)
Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88])
 by mails.dpdk.org (Postfix) with ESMTP id 13CAA400D7
 for <dev@dpdk.org>; Tue, 23 Jan 2024 11:07:13 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1706004434; x=1737540434;
 h=date:from:to:cc:subject:message-id:references:
 content-transfer-encoding:in-reply-to:mime-version;
 bh=bJzQXdXhwp1mZLferbO6fI7y6WJMn/sMdUVlQTc4PNs=;
 b=INVDYXUb4JZdjA+SxNBRBpmXbLB8UB9fnmMgD/mUVy6b7qp/9gq+4x8i
 A2KkBJXNX0VQA84WeRwtvdVI2s5e7lVHFL5gEDLNhxKvFWs93ab44nLTR
 KQWX5nZMo0tQkJO8ioxtTj4VJlZgUqbNxUVB47fsXzodk/NFn1CbNF+Kg
 MvPel3ZzvqcnYxxRKd83D8fF7Gh5SSPcQccdfMS/vv1LzMInjFMlcEgHG
 bZ6TnrGVF0fPzmXXy+2g1SuOGLgYF0VbODpGQ43kInIMYOgRf3+Pzvrms
 tbn09Re1y2EEeldAuYGiZ1rwcT97j5LwebsS6xyAZ66K4Dekwi8C+bJ9w A==;
X-IronPort-AV: E=McAfee;i="6600,9927,10961"; a="432634210"
X-IronPort-AV: E=Sophos;i="6.05,214,1701158400"; d="scan'208";a="432634210"
Received: from fmsmga003.fm.intel.com ([10.253.24.29])
 by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 23 Jan 2024 02:07:12 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6600,9927,10961"; a="876291671"
X-IronPort-AV: E=Sophos;i="6.05,214,1701158400"; d="scan'208";a="876291671"
Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16])
 by FMSMGA003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384;
 23 Jan 2024 02:07:12 -0800
Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by
 ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35; Tue, 23 Jan 2024 02:07:11 -0800
Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by
 orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35 via Frontend Transport; Tue, 23 Jan 2024 02:07:11 -0800
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) by
 edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.35; Tue, 23 Jan 2024 02:07:11 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=SvelPTR4GGP85977SvBjI8Ilm0RWDIqDW/ZpiQUHvfeJ+es6d1itYYgnfd8+cHM0GYv7vu8LhO070v8antiM1QiXfjR50dpyQmJHXpkssK9XlJKnG125aqyVH1wvX425+fXa1Xl98xZbogyJVos1NuzdPDtLSyXjSQnR/YTcxuOM2EiupnRmOV+H3MucGbjKcxnd3pWXblow8ysScUFLmT7ezDLWYUM2o9lWfLRb6/VMX4a0lyAOaieFhQsLHXksxUV0hlprM4zJV8IsXG3i9sF01HoF4bfKK8F0h0fYqtf/uobzWt8vG4kluajKPBcUCaUeMDdzgJVdno4GS2EKlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0+Ut7lkiEOKOqKvoOy3Cv8ScdzM//fzC0NcB8F/BrXA=;
 b=I/tCHErk05EoxMkPBLyP2Xh7HZ8uIqTCPx3thuclhBqYonSeWMAGTRwlQXVR9M6WTbM4nek2qJ2GMVSU0SVOrIG8dnS00Y46OIUOO/XG9jk3KkeAT2Ky3mm1aldc/Rhn2xNf7OdMnnd6A2v9O3iEmyrw0s0DrEe2j4OjNaC/cNDeoL400dKAW0+8wHRaiuQ80bwqxd/2hsdL2jMmoywrtO9yuNQBKb/eA3Zby8R5NDuVwtCDsUbocVOdHyr8ectiOWr2u4EhlSrxAgYk6xFHwAfGrd9ReuYXzvHa9bFqGkq+tGGwyFUHLhxFVI6KvtJwTGD56HM9Lw8H4d2rOoBbwg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
Received: from DS0PR11MB7309.namprd11.prod.outlook.com (2603:10b6:8:13e::17)
 by CH3PR11MB7770.namprd11.prod.outlook.com (2603:10b6:610:129::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.34; Tue, 23 Jan
 2024 10:07:09 +0000
Received: from DS0PR11MB7309.namprd11.prod.outlook.com
 ([fe80::df88:b743:97f8:516c]) by DS0PR11MB7309.namprd11.prod.outlook.com
 ([fe80::df88:b743:97f8:516c%5]) with mapi id 15.20.7202.035; Tue, 23 Jan 2024
 10:07:09 +0000
Date: Tue, 23 Jan 2024 10:07:04 +0000
From: Bruce Richardson <bruce.richardson@intel.com>
To: Mattias =?iso-8859-1?Q?R=F6nnblom?= <hofors@lysator.liu.se>
CC: <dev@dpdk.org>, <jerinj@marvell.com>, <mattias.ronnblom@ericsson.com>,
 <abdullah.sevincer@intel.com>, <sachin.saxena@oss.nxp.com>,
 <hemant.agrawal@nxp.com>, <pbhagavatula@marvell.com>,
 <pravin.pathak@intel.com>
Subject: Re: [PATCH v2 08/11] eventdev: improve doxygen comments on config fns
Message-ID: <Za-PyHUp0G9JUmON@bricha3-MOBL.ger.corp.intel.com>
References: <20240118134557.73172-1-bruce.richardson@intel.com>
 <20240119174346.108905-1-bruce.richardson@intel.com>
 <20240119174346.108905-9-bruce.richardson@intel.com>
 <7aa0077f-4753-4baf-962b-2b6c4b306487@lysator.liu.se>
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7aa0077f-4753-4baf-962b-2b6c4b306487@lysator.liu.se>
X-ClientProxiedBy: DBBPR09CA0003.eurprd09.prod.outlook.com
 (2603:10a6:10:c0::15) To DS0PR11MB7309.namprd11.prod.outlook.com
 (2603:10b6:8:13e::17)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR11MB7309:EE_|CH3PR11MB7770:EE_
X-MS-Office365-Filtering-Correlation-Id: 580bdb54-72fb-494a-5cd3-08dc1bfb0f69
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: rfCJ4TL/lIS8B1gpTOLurZKj7Ku/HrSggR3hRhSqui2YKOs7i1N00AMuJ2lbSzgq/mx4Yk/mZdxh0ahRk714KXFUO0/pEn4E+2iDhkuyprXi4Dv8fNa8BCqyGQhuEKiFosUIhv3682NWiWriaUqBJq0SFrM1926GWCRl7UUq9PZscSrdQC4cqsN2hw9i1DH7BedYjvL+3abxda8jUY7QcM8LbqEa5oh0anDRDeXT5k+wRzCTVBaD6uUqwyUROAW9jfbuP56SJhX6WaaAQr+Z163W9g0uQkXx6OqX1UHxJ2smu7Tk2JJ56iMcobPDSGJy7Xd/K80jTM5SUj3ky8xK95ri3Fon69qRAcMFv0m58lOnlG5gX8WBptRcUwDIIvCCyiDjL+VvPmS93CH7AXmZJQdoPVZxzxKLovl01ekLk1ZMRQfORuX6M35+p7rtWwp2CVIQUpWPK3gtobiySal9XGVW3wDyn4HR1cX/5iRKxb1H3qzkiKATa4ZeSoVYele8Z6IPBWRQmQh9P1eTuOrUcG0b6M36rp/rQaBzXcGbvH67PNer8xWp/cwcCHXxHqdm
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:DS0PR11MB7309.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230031)(39860400002)(346002)(376002)(366004)(136003)(396003)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(66574015)(6506007)(107886003)(6666004)(53546011)(6512007)(26005)(8936002)(83380400001)(30864003)(5660300002)(478600001)(2906002)(44832011)(41300700001)(66556008)(6486002)(296002)(4326008)(8676002)(316002)(6916009)(66476007)(66946007)(82960400001)(38100700002)(86362001)(66899024);
 DIR:OUT; SFP:1102; 
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dlpnTlkyN2ozdE0wVEZKL0w3RWNyblFVeGp4amZHRmNjVlU3UnRpNGF3VWhV?=
 =?utf-8?B?bkRDdEpjQVQvbTBxeHhGRndZWjA3bG1RR3RQNnh4QjYzUFlBY0JOOHBhRjA1?=
 =?utf-8?B?VjNHWE1xcFlCamlFY1daYUxuMXdDR1V1LzlsMVBrL2hPaDZ1YVhZVWNSWWZX?=
 =?utf-8?B?MFRoMURZdEtUVTQ1ays1UTIwVWpsSTRLM05qTHV4ZkZaWStoZUhhWVFWUEph?=
 =?utf-8?B?bit2T0V5VUxqRmxNL2ZBemg5ekpVRXl3cTc5Q2IwdmlNd2ZRWWlybzZxNzd1?=
 =?utf-8?B?K09tQm1VZWVqUEoreHJuZzlXbXpLZE5nSUdheTU2SzBoekdlOXhIZHVrUU5o?=
 =?utf-8?B?RS82RllGWUZmc3FFK3RKY1Bwd01ZYVJkY3pRQnhnci9NZEpzUDIyZlMyQjRi?=
 =?utf-8?B?Q0xUU3dqV3RrelQwQkpLRmVSa3RMZ1dia2tEb3FaT2o1QXgvbmhtMUpOSUcw?=
 =?utf-8?B?VHVER0FsOEtZSW9hTXFXSlkrWSt5dmd2dXJBOS8yTm52WkdJSitidnhYNFNz?=
 =?utf-8?B?L25hNmtCd3BsUjkwQXE5OVV0M2VMNXFPWVFyZWpBMVM5MHVWdjZobVRZUmlK?=
 =?utf-8?B?aG5iTHRmcnA0eGNhRjRDRGVqVmR4ZlBNQXZPbVJBbm1BNzkyaTUzcVUzZTNE?=
 =?utf-8?B?Uyt5akZRL0QxWWRIbFNHK21zbzduaURXMGxuL1Y1Z0ZWcEZ4RUVIK1Vzekhu?=
 =?utf-8?B?NFlHc2NOcFFwSS9rNFMwRWY3aWh0elRjQ3JRMVlHbkx4bUw3bmlQN1Nramh1?=
 =?utf-8?B?NnNoZlhMU2dDU0M2cGhSaVpDMVhGdmVoTXlTd3N6MHJsS3E5VDhrMGJPZjZZ?=
 =?utf-8?B?cWxjMUpUWkp0b0hIVUMxa1VTZVl6bGhqbTEwck82TFBiMG1pZE9GaUkwMDVh?=
 =?utf-8?B?WlpWZ1hFcnVmM25mbDA4ZkYwb0Q4OFRzL1ljd0JBYXRGbDNXb1h0eGxvYkZq?=
 =?utf-8?B?T1NCS3Q5YnpLcWtEeWRzSnFiSmlxd0pNRnA1QnNsNVY4L1c1VjV2djl3SCtE?=
 =?utf-8?B?ZU8zM2NxSHRmak5FSXFKeDlodWVkME10cEFkK01mRkhBOGR3bG9xRjNEdXZD?=
 =?utf-8?B?S3NBdVN2Nnp5cThDN0pCL3VJcEFnY01EVXVGVENsNVJycGxUQUNLR09SaWpC?=
 =?utf-8?B?UTBZSysySUVnb2dPSmZIL2tsTS9CRHl4VmNxL0Z2WUVGUzh4OEFIVWFHRGpX?=
 =?utf-8?B?NE1EQWQ2ZURudEQ2cnpWSzNPd1ZvN3JCMHBWcTNjcVZxODZHWlJPVmkvM3JW?=
 =?utf-8?B?aW9FWlE0WElyZEQ0TVdoTzRWKzVWc2k5dnRoY1Y3czllTlJQS2tsdUFNdTdE?=
 =?utf-8?B?ZHBnUWNJVUJhWUVjQmtPVk1DemVkVTloWmpKVmVZT0QvVkJnSThJa3VlQlRD?=
 =?utf-8?B?TjRPVXAxd092ZjNwc1JVZzdsM0d4NjdhaG9VK2E5SUdzMHlXMlpEa1RYMGN1?=
 =?utf-8?B?aVlSd1ZWZzdzbGFNQnNCRHNsaXJuMXZVazcxeDlKQ01hQi9YZ09VYVhZdTdD?=
 =?utf-8?B?UFQzRWx6bGhsOUFrb1NVZGExbXRHUElicEI2Z29udlo2QkdDUG1pSGpMcUsz?=
 =?utf-8?B?ZGtPV1BwaFZ5eDQ4d2VmWVl6WGJPbUV3TFVZa2ZxcnhFTVZXSStmczQ2Wk9N?=
 =?utf-8?B?WW84dm9MNXNMVit0OUczRUQ1cE5NM3prRGJBYTF3QWU1azlubSsvcGdwdmVo?=
 =?utf-8?B?ckdzUHNzTmZQTEEvZCtZbHFYQUcwVTBoalZOSjV5VVRpbUVReWFmR1dESHFD?=
 =?utf-8?B?eG5VS05UZ056eklMZVp2N1ZVSldkbURKZFArczhFeTIxVjQ2R1orTVgvczAw?=
 =?utf-8?B?VlJBbmlsWktqSWRqaWRJWUNuUjhDdjFLYUo4RDRycjRrWkZKTE5ybWpEWGc2?=
 =?utf-8?B?bjFTZW5sUWVTSUl6d0dUUFQ4S1lSbWFXdDU0SFhiWEs2Tlpua1ZYMFRqTjBR?=
 =?utf-8?B?M294SnBXekhTYzhoeDJhaDk1VUNwb3lkdHpRYWJORmxTQ1pxbjRjSC9PZXJm?=
 =?utf-8?B?MkRvWGFtTU84Smo0cHh2NStMcHlkbTN5d0Z0cjZkR2JDdUs5NmpSTUoydFZT?=
 =?utf-8?B?MGtQZHZoeDUyRUthUXlmdHp6UHErb29QOCtZL1lBcVRDUG10elJpb0xtNXN2?=
 =?utf-8?B?M3FwbE15a3M0N3NVQzExdFVleGJNdkpQc05yWlgrd2ZiSy81eEdxSDNjWnJ3?=
 =?utf-8?B?Vmc9PQ==?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 580bdb54-72fb-494a-5cd3-08dc1bfb0f69
X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7309.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jan 2024 10:07:09.1044 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 474kIxrc4X34t6kjRkxkLBShwBRrs/4s+HlWyC2aF822S25CgKBfnDU6tvnhr7dGkpTEB6D+xpwWboPlDspwhXWbPWscB6yPnTfhTawahos=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB7770
X-OriginatorOrg: intel.com
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

On Tue, Jan 23, 2024 at 11:00:50AM +0100, Mattias Rönnblom wrote:
> On 2024-01-19 18:43, Bruce Richardson wrote:
> > Improve the documentation text for the configuration functions and
> > structures for configuring an eventdev, as well as ports and queues.
> > Clarify text where possible, and ensure references come through as links
> > in the html output.
> > 
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > ---
> >   lib/eventdev/rte_eventdev.h | 196 ++++++++++++++++++++++++------------
> >   1 file changed, 130 insertions(+), 66 deletions(-)
> > 
> > diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h
> > index 3b8f5b8101..1fda8a5a13 100644
> > --- a/lib/eventdev/rte_eventdev.h
> > +++ b/lib/eventdev/rte_eventdev.h
> > @@ -676,12 +676,14 @@ struct rte_event_dev_config {
> >   /**
> >    * Configure an event device.
> >    *
> > - * This function must be invoked first before any other function in the
> > - * API. This function can also be re-invoked when a device is in the
> > - * stopped state.
> > + * This function must be invoked before any other configuration function in the
> > + * API, when preparing an event device for application use.
> > + * This function can also be re-invoked when a device is in the stopped state.
> >    *
> > - * The caller may use rte_event_dev_info_get() to get the capability of each
> > - * resources available for this event device.
> > + * The caller should use rte_event_dev_info_get() to get the capabilities and
> > + * resource limits for this event device before calling this API.
> 
> "should" -> "may". If you know the limitations by other means, that's fine
> too.
> 

I think I'll keep it as "should", since it's strongly recommended. "Must"
would be incorrect, since it's not mandatory, but I think "may" is too
week.

> > + * Many values in the dev_conf input parameter are subject to limits given
> > + * in the device information returned from rte_event_dev_info_get().
> >    *
> >    * @param dev_id
> >    *   The identifier of the device to configure.
> > @@ -691,6 +693,9 @@ struct rte_event_dev_config {
> >    * @return
> >    *   - 0: Success, device configured.
> >    *   - <0: Error code returned by the driver configuration function.
> > + *     - -ENOTSUP - device does not support configuration
> > + *     - -EINVAL  - invalid input parameter
> > + *     - -EBUSY   - device has already been started
> >    */
> >   int
> >   rte_event_dev_configure(uint8_t dev_id,
> > @@ -700,14 +705,33 @@ rte_event_dev_configure(uint8_t dev_id,
> >   /* Event queue configuration bitmap flags */
> >   #define RTE_EVENT_QUEUE_CFG_ALL_TYPES          (1ULL << 0)
> > -/**< Allow ATOMIC,ORDERED,PARALLEL schedule type enqueue
> > +/**< Allow events with schedule types ATOMIC, ORDERED, and PARALLEL to be enqueued to this queue.
> > + * The scheduling type to be used is that specified in each individual event.
> > + * This flag can only be set when configuring queues on devices reporting the
> > + * @ref RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES capability.
> >    *
> > + * Without this flag, only events with the specific scheduling type configured at queue setup
> > + * can be sent to the queue.
> > + *
> > + * @see RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES
> >    * @see RTE_SCHED_TYPE_ORDERED, RTE_SCHED_TYPE_ATOMIC, RTE_SCHED_TYPE_PARALLEL
> >    * @see rte_event_enqueue_burst()
> >    */
> >   #define RTE_EVENT_QUEUE_CFG_SINGLE_LINK        (1ULL << 1)
> >   /**< This event queue links only to a single event port.
> > - *
> > + * No load-balancing of events is performed, as all events
> > + * sent to this queue end up at the same event port.
> > + * The number of queues on which this flag is to be set must be
> > + * configured at device configuration time, by setting
> > + * @ref rte_event_dev_config.nb_single_link_event_port_queues
> > + * parameter appropriately.
> > + *
> > + * This flag serves as a hint only, any devices without specific
> > + * support for single-link queues can fall-back automatically to
> > + * using regular queues with a single destination port.
> > + *
> > + *  @see rte_event_dev_info.max_single_link_event_port_queue_pairs
> > + *  @see rte_event_dev_config.nb_single_link_event_port_queues
> >    *  @see rte_event_port_setup(), rte_event_port_link()
> >    */
> > @@ -715,56 +739,75 @@ rte_event_dev_configure(uint8_t dev_id,
> >   struct rte_event_queue_conf {
> >   	uint32_t nb_atomic_flows;
> >   	/**< The maximum number of active flows this queue can track at any
> > -	 * given time. If the queue is configured for atomic scheduling (by
> > -	 * applying the RTE_EVENT_QUEUE_CFG_ALL_TYPES flag to event_queue_cfg
> > -	 * or RTE_SCHED_TYPE_ATOMIC flag to schedule_type), then the
> > -	 * value must be in the range of [1, nb_event_queue_flows], which was
> > -	 * previously provided in rte_event_dev_configure().
> > +	 * given time.
> > +	 *
> > +	 * If the queue is configured for atomic scheduling (by
> > +	 * applying the @ref RTE_EVENT_QUEUE_CFG_ALL_TYPES flag to
> > +	 * @ref rte_event_queue_conf.event_queue_cfg
> > +	 * or @ref RTE_SCHED_TYPE_ATOMIC flag to @ref rte_event_queue_conf.schedule_type), then the
> > +	 * value must be in the range of [1, @ref rte_event_dev_config.nb_event_queue_flows],
> > +	 * which was previously provided in rte_event_dev_configure().
> > +	 *
> > +	 * If the queue is not configured for atomic scheduling this value is ignored.
> >   	 */
> >   	uint32_t nb_atomic_order_sequences;
> >   	/**< The maximum number of outstanding events waiting to be
> >   	 * reordered by this queue. In other words, the number of entries in
> >   	 * this queue’s reorder buffer.When the number of events in the
> >   	 * reorder buffer reaches to *nb_atomic_order_sequences* then the
> > -	 * scheduler cannot schedule the events from this queue and invalid
> > -	 * event will be returned from dequeue until one or more entries are
> > +	 * scheduler cannot schedule the events from this queue and no
> > +	 * events will be returned from dequeue until one or more entries are
> >   	 * freed up/released.
> > +	 *
> >   	 * If the queue is configured for ordered scheduling (by applying the
> > -	 * RTE_EVENT_QUEUE_CFG_ALL_TYPES flag to event_queue_cfg or
> > -	 * RTE_SCHED_TYPE_ORDERED flag to schedule_type), then the value must
> > -	 * be in the range of [1, nb_event_queue_flows], which was
> > +	 * @ref RTE_EVENT_QUEUE_CFG_ALL_TYPES flag to @ref rte_event_queue_conf.event_queue_cfg or
> > +	 * @ref RTE_SCHED_TYPE_ORDERED flag to @ref rte_event_queue_conf.schedule_type),
> > +	 * then the value must be in the range of
> > +	 * [1, @ref rte_event_dev_config.nb_event_queue_flows], which was
> >   	 * previously supplied to rte_event_dev_configure().
> > +	 *
> > +	 * If the queue is not configured for ordered scheduling, then this value is ignored
> >   	 */
> >   	uint32_t event_queue_cfg;
> >   	/**< Queue cfg flags(EVENT_QUEUE_CFG_) */
> >   	uint8_t schedule_type;
> >   	/**< Queue schedule type(RTE_SCHED_TYPE_*).
> > -	 * Valid when RTE_EVENT_QUEUE_CFG_ALL_TYPES bit is not set in
> > -	 * event_queue_cfg.
> > +	 * Valid when @ref RTE_EVENT_QUEUE_CFG_ALL_TYPES flag is not set in
> > +	 * @ref rte_event_queue_conf.event_queue_cfg.
> > +	 *
> > +	 * If the @ref RTE_EVENT_QUEUE_CFG_ALL_TYPES flag is set, then this field is ignored.
> > +	 *
> > +	 * @see RTE_SCHED_TYPE_ORDERED, RTE_SCHED_TYPE_ATOMIC, RTE_SCHED_TYPE_PARALLEL
> >   	 */
> >   	uint8_t priority;
> >   	/**< Priority for this event queue relative to other event queues.
> >   	 * The requested priority should in the range of
> > -	 * [RTE_EVENT_DEV_PRIORITY_HIGHEST, RTE_EVENT_DEV_PRIORITY_LOWEST].
> > +	 * [@ref RTE_EVENT_DEV_PRIORITY_HIGHEST, @ref RTE_EVENT_DEV_PRIORITY_LOWEST].
> >   	 * The implementation shall normalize the requested priority to
> >   	 * event device supported priority value.
> > -	 * Valid when the device has RTE_EVENT_DEV_CAP_QUEUE_QOS capability
> > +	 *
> > +	 * Valid when the device has @ref RTE_EVENT_DEV_CAP_QUEUE_QOS capability,
> > +	 * ignored otherwise
> >   	 */
> >   	uint8_t weight;
> >   	/**< Weight of the event queue relative to other event queues.
> >   	 * The requested weight should be in the range of
> > -	 * [RTE_EVENT_DEV_WEIGHT_HIGHEST, RTE_EVENT_DEV_WEIGHT_LOWEST].
> > +	 * [@ref RTE_EVENT_QUEUE_WEIGHT_HIGHEST, @ref RTE_EVENT_QUEUE_WEIGHT_LOWEST].
> >   	 * The implementation shall normalize the requested weight to event
> >   	 * device supported weight value.
> > -	 * Valid when the device has RTE_EVENT_DEV_CAP_QUEUE_QOS capability.
> > +	 *
> > +	 * Valid when the device has @ref RTE_EVENT_DEV_CAP_QUEUE_QOS capability,
> > +	 * ignored otherwise.
> >   	 */
> >   	uint8_t affinity;
> >   	/**< Affinity of the event queue relative to other event queues.
> >   	 * The requested affinity should be in the range of
> > -	 * [RTE_EVENT_DEV_AFFINITY_HIGHEST, RTE_EVENT_DEV_AFFINITY_LOWEST].
> > +	 * [@ref RTE_EVENT_QUEUE_AFFINITY_HIGHEST, @ref RTE_EVENT_QUEUE_AFFINITY_LOWEST].
> >   	 * The implementation shall normalize the requested affinity to event
> >   	 * device supported affinity value.
> > -	 * Valid when the device has RTE_EVENT_DEV_CAP_QUEUE_QOS capability.
> > +	 *
> > +	 * Valid when the device has @ref RTE_EVENT_DEV_CAP_QUEUE_QOS capability,
> > +	 * ignored otherwise.
> >   	 */
> >   };
> > @@ -779,7 +822,7 @@ struct rte_event_queue_conf {
> >    *   The identifier of the device.
> >    * @param queue_id
> >    *   The index of the event queue to get the configuration information.
> > - *   The value must be in the range [0, nb_event_queues - 1]
> > + *   The value must be in the range [0, @ref rte_event_dev_config.nb_event_queues - 1]
> 
> The value must be < @ref rte_event_dev_config.nb_event_queues.
> 
> It's an unsigned type, so no need to specify a lower bound.
> 

Ok. This probably applies in many places throughout the whole header file.

> >    *   previously supplied to rte_event_dev_configure().
> >    * @param[out] queue_conf
> >    *   The pointer to the default event queue configuration data.
> > @@ -800,7 +843,8 @@ rte_event_queue_default_conf_get(uint8_t dev_id, uint8_t queue_id,
> >    *   The identifier of the device.
> >    * @param queue_id
> >    *   The index of the event queue to setup. The value must be in the range
> > - *   [0, nb_event_queues - 1] previously supplied to rte_event_dev_configure().
> > + *   [0, @ref rte_event_dev_config.nb_event_queues - 1] previously supplied to
> > + *   rte_event_dev_configure().
> >    * @param queue_conf
> >    *   The pointer to the configuration data to be used for the event queue.
> >    *   NULL value is allowed, in which case default configuration	used.
> > @@ -816,43 +860,44 @@ rte_event_queue_setup(uint8_t dev_id, uint8_t queue_id,
> >   		      const struct rte_event_queue_conf *queue_conf);
> >   /**
> > - * The priority of the queue.
> > + * Queue attribute id for the priority of the queue.
> >    */
> >   #define RTE_EVENT_QUEUE_ATTR_PRIORITY 0
> >   /**
> > - * The number of atomic flows configured for the queue.
> > + * Queue attribute id for the number of atomic flows configured for the queue.
> >    */
> >   #define RTE_EVENT_QUEUE_ATTR_NB_ATOMIC_FLOWS 1
> >   /**
> > - * The number of atomic order sequences configured for the queue.
> > + * Queue attribute id for the number of atomic order sequences configured for the queue.
> >    */
> >   #define RTE_EVENT_QUEUE_ATTR_NB_ATOMIC_ORDER_SEQUENCES 2
> >   /**
> > - * The cfg flags for the queue.
> > + * Queue attribute id for the cfg flags for the queue.
> 
> "cfg" -> "configuration"?
> 
> >    */
> >   #define RTE_EVENT_QUEUE_ATTR_EVENT_QUEUE_CFG 3
> >   /**
> > - * The schedule type of the queue.
> > + * Queue attribute id for the schedule type of the queue.
> >    */
> >   #define RTE_EVENT_QUEUE_ATTR_SCHEDULE_TYPE 4
> >   /**
> > - * The weight of the queue.
> > + * Queue attribute id for the weight of the queue.
> >    */
> >   #define RTE_EVENT_QUEUE_ATTR_WEIGHT 5
> >   /**
> > - * Affinity of the queue.
> > + * Queue attribute id for the affinity of the queue.
> >    */
> >   #define RTE_EVENT_QUEUE_ATTR_AFFINITY 6
> >   /**
> > - * Get an attribute from a queue.
> > + * Get an attribute or property of an event queue.
> 
> What is the difference between property and attribute here?
> 

Good question. Not sure what I had in mind here. I'll revert in v3, I
think.

> >    *
> >    * @param dev_id
> > - *   Eventdev id
> > + *   The identifier of the device.
> >    * @param queue_id
> > - *   Eventdev queue id
> > + *   The index of the event queue to query. The value must be in the range
> > + *   [0, nb_event_queues - 1] previously supplied to rte_event_dev_configure().
> >    * @param attr_id
> > - *   The attribute ID to retrieve
> > + *   The attribute ID to retrieve (RTE_EVENT_QUEUE_ATTR_*)
> >    * @param[out] attr_value
> >    *   A pointer that will be filled in with the attribute value if successful
> >    *
> > @@ -861,8 +906,8 @@ rte_event_queue_setup(uint8_t dev_id, uint8_t queue_id,
> >    *   - -EINVAL: invalid device, queue or attr_id provided, or attr_value was
> >    *		NULL
> >    *   - -EOVERFLOW: returned when attr_id is set to
> > - *   RTE_EVENT_QUEUE_ATTR_SCHEDULE_TYPE and event_queue_cfg is set to
> > - *   RTE_EVENT_QUEUE_CFG_ALL_TYPES
> > + *   @ref RTE_EVENT_QUEUE_ATTR_SCHEDULE_TYPE and @ref RTE_EVENT_QUEUE_CFG_ALL_TYPES is
> > + *   set in the queue configuration flags.
> >    */
> >   int
> >   rte_event_queue_attr_get(uint8_t dev_id, uint8_t queue_id, uint32_t attr_id,
> > @@ -872,11 +917,13 @@ rte_event_queue_attr_get(uint8_t dev_id, uint8_t queue_id, uint32_t attr_id,
> >    * Set an event queue attribute.
> >    *
> >    * @param dev_id
> > - *   Eventdev id
> > + *   The identifier of the device.
> >    * @param queue_id
> > - *   Eventdev queue id
> > + *   The index of the event queue to configure. The value must be in the range
> > + *   [0, @ref rte_event_dev_config.nb_event_queues - 1] previously
> > + *   supplied to rte_event_dev_configure().
> >    * @param attr_id
> > - *   The attribute ID to set
> > + *   The attribute ID to set (RTE_EVENT_QUEUE_ATTR_*)
> >    * @param attr_value
> >    *   The attribute value to set
> >    *
> > @@ -902,7 +949,10 @@ rte_event_queue_attr_set(uint8_t dev_id, uint8_t queue_id, uint32_t attr_id,
> >    */
> >   #define RTE_EVENT_PORT_CFG_SINGLE_LINK         (1ULL << 1)
> >   /**< This event port links only to a single event queue.
> > + * The queue it links with should be similarly configured with the
> > + * @ref RTE_EVENT_QUEUE_CFG_SINGLE_LINK flag.
> >    *
> > + *  @see RTE_EVENT_QUEUE_CFG_SINGLE_LINK
> >    *  @see rte_event_port_setup(), rte_event_port_link()
> >    */
> >   #define RTE_EVENT_PORT_CFG_HINT_PRODUCER       (1ULL << 2)
> > @@ -918,7 +968,7 @@ rte_event_queue_attr_set(uint8_t dev_id, uint8_t queue_id, uint32_t attr_id,
> >   #define RTE_EVENT_PORT_CFG_HINT_CONSUMER       (1ULL << 3)
> >   /**< Hint that this event port will primarily dequeue events from the system.
> >    * A PMD can optimize its internal workings by assuming that this port is
> > - * primarily going to consume events, and not enqueue FORWARD or RELEASE
> > + * primarily going to consume events, and not enqueue NEW or FORWARD
> >    * events.
> >    *
> >    * Note that this flag is only a hint, so PMDs must operate under the
> > @@ -944,48 +994,55 @@ struct rte_event_port_conf {
> >   	/**< A backpressure threshold for new event enqueues on this port.
> >   	 * Use for *closed system* event dev where event capacity is limited,
> >   	 * and cannot exceed the capacity of the event dev.
> > +	 *
> >   	 * Configuring ports with different thresholds can make higher priority
> >   	 * traffic less likely to  be backpressured.
> >   	 * For example, a port used to inject NIC Rx packets into the event dev
> >   	 * can have a lower threshold so as not to overwhelm the device,
> >   	 * while ports used for worker pools can have a higher threshold.
> > -	 * This value cannot exceed the *nb_events_limit*
> > +	 * This value cannot exceed the @ref rte_event_dev_config.nb_events_limit value
> >   	 * which was previously supplied to rte_event_dev_configure().
> > -	 * This should be set to '-1' for *open system*.
> > +	 *
> > +	 * This should be set to '-1' for *open system*, i.e when
> > +	 * @ref rte_event_dev_info.max_num_events == -1.
> >   	 */
> >   	uint16_t dequeue_depth;
> > -	/**< Configure number of bulk dequeues for this event port.
> > -	 * This value cannot exceed the *nb_event_port_dequeue_depth*
> > -	 * which previously supplied to rte_event_dev_configure().
> > -	 * Ignored when device is not RTE_EVENT_DEV_CAP_BURST_MODE capable.
> > +	/**< Configure the maximum size of burst dequeues for this event port.
> > +	 * This value cannot exceed the @ref rte_event_dev_config.nb_event_port_dequeue_depth value
> > +	 * which was previously supplied to rte_event_dev_configure().
> > +	 *
> > +	 * Ignored when device does not support the @ref RTE_EVENT_DEV_CAP_BURST_MODE capability.
> >   	 */
> >   	uint16_t enqueue_depth;
> > -	/**< Configure number of bulk enqueues for this event port.
> > -	 * This value cannot exceed the *nb_event_port_enqueue_depth*
> > -	 * which previously supplied to rte_event_dev_configure().
> > -	 * Ignored when device is not RTE_EVENT_DEV_CAP_BURST_MODE capable.
> > +	/**< Configure the maximum size of burst enqueues to this event port.
> > +	 * This value cannot exceed the @ref rte_event_dev_config.nb_event_port_enqueue_depth value
> > +	 * which was previously supplied to rte_event_dev_configure().
> > +	 *
> > +	 * Ignored when device does not support the @ref RTE_EVENT_DEV_CAP_BURST_MODE capability.
> >   	 */
> > -	uint32_t event_port_cfg; /**< Port cfg flags(EVENT_PORT_CFG_) */
> > +	uint32_t event_port_cfg; /**< Port configuration flags(EVENT_PORT_CFG_) */
> >   };
> >   /**
> >    * Retrieve the default configuration information of an event port designated
> >    * by its *port_id* from the event driver for an event device.
> >    *
> > - * This function intended to be used in conjunction with rte_event_port_setup()
> > - * where caller needs to set up the port by overriding few default values.
> > + * This function is intended to be used in conjunction with rte_event_port_setup()
> > + * where the caller can set up the port by just overriding few default values.
> >    *
> >    * @param dev_id
> >    *   The identifier of the device.
> >    * @param port_id
> >    *   The index of the event port to get the configuration information.
> > - *   The value must be in the range [0, nb_event_ports - 1]
> > + *   The value must be in the range [0, @ref rte_event_dev_config.nb_event_ports - 1]
> >    *   previously supplied to rte_event_dev_configure().
> >    * @param[out] port_conf
> > - *   The pointer to the default event port configuration data
> > + *   The pointer to a structure to store the default event port configuration data.
> >    * @return
> >    *   - 0: Success, driver updates the default event port configuration data.
> >    *   - <0: Error code returned by the driver info get function.
> > + *      - -EINVAL - invalid input parameter
> > + *      - -ENOTSUP - function is not supported for this device
> >    *
> >    * @see rte_event_port_setup()
> >    */
> > @@ -1000,18 +1057,24 @@ rte_event_port_default_conf_get(uint8_t dev_id, uint8_t port_id,
> >    *   The identifier of the device.
> >    * @param port_id
> >    *   The index of the event port to setup. The value must be in the range
> > - *   [0, nb_event_ports - 1] previously supplied to rte_event_dev_configure().
> > + *   [0, @ref rte_event_dev_config.nb_event_ports - 1] previously supplied to
> > + *   rte_event_dev_configure().
> >    * @param port_conf
> > - *   The pointer to the configuration data to be used for the queue.
> > - *   NULL value is allowed, in which case default configuration	used.
> > + *   The pointer to the configuration data to be used for the port.
> > + *   NULL value is allowed, in which case the default configuration is used.
> >    *
> >    * @see rte_event_port_default_conf_get()
> >    *
> >    * @return
> >    *   - 0: Success, event port correctly set up.
> >    *   - <0: Port configuration failed
> > - *   - (-EDQUOT) Quota exceeded(Application tried to link the queue configured
> > - *   with RTE_EVENT_QUEUE_CFG_SINGLE_LINK to more than one event ports)
> > + *     - -EINVAL - Invalid input parameter
> > + *     - -EBUSY - Port already started
> > + *     - -ENOTSUP - Function not supported on this device, or a NULL pointer passed
> > + *        as the port_conf parameter, and no default configuration function available
> > + *        for this device.
> > + *     - -EDQUOT - Application tried to link a queue configured
> 
> "." for each bullet?
> 
Ideally, yes. I'll try and keep this consistent as I make changes, but it's
not going to be top of my worry-about list!

thanks again for the reviews.

/Bruce