Hi Andrew, Please refer struct rte_eth_dev. Following assignment already preserve the order in struct rte_eth_dev > diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c > index eb65499cf2..a76796716b 100644 > --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c > +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c > @@ -294,6 +294,7 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev) > eth_dev->rx_pkt_burst = &vmxnet3_recv_pkts; > eth_dev->tx_pkt_burst = &vmxnet3_xmit_pkts; > eth_dev->tx_pkt_prepare = vmxnet3_prep_pkts; > + eth_dev->rx_queue_count = vmxnet3_dev_rx_queue_count, Please, put it just after rx_pkt_burst to preserve the same order as in structure. /** * @internal * The generic data structure associated with each Ethernet device. * * Pointers to burst-oriented packet receive and transmit functions are * located at the beginning of the structure, along with the pointer to * where all the data elements for the particular device are stored in shared * memory. This split allows the function pointer and driver data to be per- * process, while the actual configuration data for the device is shared. */ struct rte_eth_dev { eth_rx_burst_t rx_pkt_burst; /**< Pointer to PMD receive function */ eth_tx_burst_t tx_pkt_burst; /**< Pointer to PMD transmit function */ /** Pointer to PMD transmit prepare function */ eth_tx_prep_t tx_pkt_prepare; /** Get the number of used Rx descriptors */ eth_rx_queue_count_t rx_queue_count; /** Check the status of a Rx descriptor */ eth_rx_descriptor_status_t rx_descriptor_status; /** Check the status of a Tx descriptor */ eth_tx_descriptor_status_t tx_descriptor_status; /** * Device data that is shared between primary and secondary processes */ struct rte_eth_dev_data *data; void *process_private; /**< Pointer to per-process device data */ const struct eth_dev_ops *dev_ops; /**< Functions exported by PMD */ struct rte_device *device; /**< Backing device */ struct rte_intr_handle *intr_handle; /**< Device interrupt handle */ /** User application callbacks for NIC interrupts */ struct rte_eth_dev_cb_list link_intr_cbs; /** * User-supplied functions called from rx_burst to post-process * received packets before passing them to the user */ struct rte_eth_rxtx_callback *post_rx_burst_cbs[RTE_MAX_QUEUES_PER_PORT]; /** * User-supplied functions called from tx_burst to pre-process * received packets before passing them to the driver for transmission */ struct rte_eth_rxtx_callback *pre_tx_burst_cbs[RTE_MAX_QUEUES_PER_PORT]; enum rte_eth_dev_state state; /**< Flag indicating the port state */ void *security_ctx; /**< Context for security ops */ } __rte_cache_aligned; Thanks, Pankaj From: Andrew Rybchenko Date: Wednesday, May 4, 2022 at 7:27 AM To: Pankaj Gupta , Jochen Behrens , Yong Wang Cc: dev@dpdk.org Subject: Re: [PATCH 3/8] vmxnet3: add rx queue usage count utility ⚠ External Email rx -> Rx in summary in accordance with spelling in DPDK On 5/3/22 07:22, Pankaj Gupta wrote: > Count the number of entries in the rx queue for debugging. rx -> Rx As I understand debugging is not the only purpose of the API. > > Tested, using testpmd, for different hardware version on ESXi 7.0 Update 2 > > Signed-off-by: Pankaj Gupta > --- > drivers/net/vmxnet3/vmxnet3_ethdev.c | 1 + > drivers/net/vmxnet3/vmxnet3_ethdev.h | 3 +++ > drivers/net/vmxnet3/vmxnet3_rxtx.c | 30 ++++++++++++++++++++++++++++ > 3 files changed, 34 insertions(+) > > diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c > index eb65499cf2..a76796716b 100644 > --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c > +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c > @@ -294,6 +294,7 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev) > eth_dev->rx_pkt_burst = &vmxnet3_recv_pkts; > eth_dev->tx_pkt_burst = &vmxnet3_xmit_pkts; > eth_dev->tx_pkt_prepare = vmxnet3_prep_pkts; > + eth_dev->rx_queue_count = vmxnet3_dev_rx_queue_count, Please, put it just after rx_pkt_burst to preserve the same order as in structure. > pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev); > > /* extra mbuf field is required to guess MSS */ [snip] ________________________________ ⚠ External Email: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender.