[PATCH v6] ethdev: introduce available Rx descriptors threshold
Thomas Monjalon
thomas at monjalon.net
Wed Jun 8 19:46:32 CEST 2022
08/06/2022 19:22, Thomas Monjalon:
> 08/06/2022 18:35, Andrew Rybchenko:
> > From: Spike Du <spiked at nvidia.com>
> >
> > A new event RTE_ETH_EVENT_RX_AVAIL_THRESH should be generated by HW
> > when number of available descriptors in Rx queue goes below the
> > threshold.
> >
> > The threshold is defined as a percentage of an Rx queue size with valid
> > values from 0 to 99 (inclusive). Zero (default) value disables it.
> >
> > There is no capability reporting for the feature. Application should
> > simply try to set required threshold value and handle result.
> >
> > Add testpmd commands to control the threshold:
> > set port <port_id> rxq <rxq_id> avail_thresh <avail_thresh_num>
> >
> > Signed-off-by: Spike Du <spiked at nvidia.com>
> > Signed-off-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
> > ---
> > v6:
> > - try to make descriptor shorter and more useful
> > - refine terminology to use "available descriptors threshold"
> > everywhere (plural "descriptors")
> > - fix ethdev API documenation
> > - define negative return values
> > - define rules to convert percentage to descriptors number
> > in drivers
> > - avoid extra checks in testpmd helper to allow ethdev API
> > to do its job
> > - minor fixes in testpmd variables naming
> > - fix testpmd help to be human oriented
> > - update testpmd users guide
> > - add release notes
>
> What a (more than) review work, thanks a lot for this v6!
>
> Acked-by: Thomas Monjalon <thomas at monjalon.net>
>
> With a few minor arrangements,
> applied, thanks.
PS: some ABI exceptions have to be added as discussed in the thread:
+; Ignore ethdev event enum update
+; because new event cannot be received if not registered
+[suppress_type]
+ type_kind = enum
+ changed_enumerators = RTE_ETH_EVENT_MAX
+
+; Ignore fields inserted in cacheline boundary of rte_eth_rxq_info
+; because the struct size is unchanged
+[suppress_type]
+ name = rte_eth_rxq_info
+ has_data_member_inserted_between = {offset_of(rx_buf_size), end}
More information about the dev
mailing list