git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/sfc: fix reading adapter state without locking
[dpdk.git]
/
drivers
/
net
/
sfc
/
sfc.h
diff --git
a/drivers/net/sfc/sfc.h
b/drivers/net/sfc/sfc.h
index
ebe7050
..
c7b0e5a
100644
(file)
--- a/
drivers/net/sfc/sfc.h
+++ b/
drivers/net/sfc/sfc.h
@@
-130,7
+130,6
@@
struct sfc_port {
unsigned int nb_mcast_addrs;
uint8_t *mcast_addrs;
unsigned int nb_mcast_addrs;
uint8_t *mcast_addrs;
- rte_spinlock_t mac_stats_lock;
uint64_t *mac_stats_buf;
unsigned int mac_stats_nb_supported;
efsys_mem_t mac_stats_dma_mem;
uint64_t *mac_stats_buf;
unsigned int mac_stats_nb_supported;
efsys_mem_t mac_stats_dma_mem;
@@
-173,6
+172,7
@@
struct sfc_adapter_shared {
unsigned int txq_count;
struct sfc_txq_info *txq_info;
unsigned int txq_count;
struct sfc_txq_info *txq_info;
+ unsigned int ethdev_txq_count;
struct sfc_rss rss;
struct sfc_rss rss;
@@
-185,6
+185,8
@@
struct sfc_adapter_shared {
char *dp_rx_name;
char *dp_tx_name;
char *dp_rx_name;
char *dp_tx_name;
+
+ bool counters_rxq_allocated;
};
/* Adapter process private data */
};
/* Adapter process private data */
@@
-204,6
+206,15
@@
sfc_adapter_priv_by_eth_dev(struct rte_eth_dev *eth_dev)
return sap;
}
return sap;
}
+/* RxQ dedicated for counters (counter only RxQ) data */
+struct sfc_counter_rxq {
+ unsigned int state;
+#define SFC_COUNTER_RXQ_ATTACHED 0x1
+#define SFC_COUNTER_RXQ_INITIALIZED 0x2
+ sfc_sw_index_t sw_index;
+ struct rte_mempool *mp;
+};
+
/* Adapter private data */
struct sfc_adapter {
/*
/* Adapter private data */
struct sfc_adapter {
/*
@@
-282,6
+293,8
@@
struct sfc_adapter {
bool mgmt_evq_running;
struct sfc_evq *mgmt_evq;
bool mgmt_evq_running;
struct sfc_evq *mgmt_evq;
+ struct sfc_counter_rxq counter_rxq;
+
struct sfc_rxq *rxq_ctrl;
struct sfc_txq *txq_ctrl;
struct sfc_rxq *rxq_ctrl;
struct sfc_txq *txq_ctrl;
@@
-356,6
+369,12
@@
sfc_adapter_lock_fini(__rte_unused struct sfc_adapter *sa)
/* Just for symmetry of the API */
}
/* Just for symmetry of the API */
}
+static inline unsigned int
+sfc_nb_counter_rxq(const struct sfc_adapter_shared *sas)
+{
+ return sas->counters_rxq_allocated ? 1 : 0;
+}
+
/** Get the number of milliseconds since boot from the default timer */
static inline uint64_t
sfc_get_system_msecs(void)
/** Get the number of milliseconds since boot from the default timer */
static inline uint64_t
sfc_get_system_msecs(void)