From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 ; 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 To: Mattias =?iso-8859-1?Q?R=F6nnblom?= CC: , , , , , , , Subject: Re: [PATCH v2 08/11] eventdev: improve doxygen comments on config fns Message-ID: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 > > --- > > 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