Skip to content

Commit 1d54e7c

Browse files
committed
remove xskdev tx locking flag
The flag for locking TX path in xskdev was static, remove the static flag and always lock TX path. Signed-off-by: Keith Wiles <keith.wiles@intel.com>
1 parent 7dce15b commit 1d54e7c

File tree

1 file changed

+29
-28
lines changed

1 file changed

+29
-28
lines changed

lib/core/xskdev/xskdev.c

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@
3636
#define POLL_TIMEOUT 0
3737
#define MAX_NUM_TRIES 1000
3838

39-
static bool xskdev_use_tx_lock = true;
40-
4139
static TAILQ_HEAD(cne_xskdev_list, xskdev_info) xskdev_list;
4240
static pthread_mutex_t xskdev_list_mutex;
4341

@@ -59,6 +57,26 @@ xskdev_list_unlock(void)
5957
CNE_WARN("failed: %s\n", strerror(ret));
6058
}
6159

60+
static inline void
61+
xskdev_tx_lock(xskdev_info_t *xi)
62+
{
63+
int err;
64+
65+
err = pthread_mutex_lock(&xi->tx_lock);
66+
if (err)
67+
CNE_ERR("Failed to lock xskdev TX path: %d: %s\n", err, strerror(err));
68+
}
69+
70+
static inline void
71+
xskdev_tx_unlock(xskdev_info_t *xi)
72+
{
73+
int err;
74+
75+
err = pthread_mutex_unlock(&xi->tx_lock);
76+
if (err)
77+
CNE_ERR("Failed to unlock xskdev TX path: %d: %s\n", err, strerror(err));
78+
}
79+
6280
/**
6381
* Preferred Busy Polling:
6482
*
@@ -515,24 +533,11 @@ xskdev_tx_burst_default(void *_xi, void **bufs, uint16_t nb_pkts)
515533
xskdev_info_t *xi = (xskdev_info_t *)_xi;
516534
uint16_t ret;
517535

518-
if (xskdev_use_tx_lock) {
519-
int err;
536+
xskdev_tx_lock(xi);
520537

521-
err = pthread_mutex_lock(&xi->tx_lock);
522-
if (err) {
523-
CNE_ERR("Failed to lock xskdev: %d: %s\n", err, strerror(err));
524-
return 0;
525-
}
538+
ret = xskdev_tx_burst_locked(xi, bufs, nb_pkts);
526539

527-
ret = xskdev_tx_burst_locked(xi, bufs, nb_pkts);
528-
529-
err = pthread_mutex_unlock(&xi->tx_lock);
530-
if (err)
531-
CNE_ERR("Failed to unlock xskdev: %d: %s\n", err, strerror(err));
532-
} else {
533-
/* Lock is disabled, call tx_burst function directly. */
534-
ret = xskdev_tx_burst_locked(xi, bufs, nb_pkts);
535-
}
540+
xskdev_tx_unlock(xi);
536541

537542
return ret;
538543
}
@@ -761,11 +766,9 @@ xskdev_socket_create(struct lport_cfg *c)
761766
CNE_DEBUG("xi->xsk_map_fd = %d\n", xi->xsk_map_fd);
762767
}
763768

764-
if (xskdev_use_tx_lock) {
765-
ret = cne_mutex_create(&xi->tx_lock, 0);
766-
if (ret)
767-
CNE_ERR_GOTO(err, "Failed to initialize xskdev tx lock: %s\n", strerror(errno));
768-
}
769+
ret = cne_mutex_create(&xi->tx_lock, 0);
770+
if (ret)
771+
CNE_ERR_GOTO(err, "Failed to initialize xskdev tx lock: %s\n", strerror(errno));
769772

770773
xi->if_index = if_index;
771774

@@ -962,12 +965,10 @@ xskdev_socket_destroy(xskdev_info_t *xi)
962965
xi->rxq.ux->umem = NULL;
963966
}
964967

965-
if (xskdev_use_tx_lock) {
966-
int err = cne_mutex_destroy(&xi->tx_lock);
968+
int err = cne_mutex_destroy(&xi->tx_lock);
969+
if (err)
970+
CNE_ERR("Failed to destroy xskdev tx lock: %s\n", strerror(errno));
967971

968-
if (err)
969-
CNE_ERR("Failed to destroy xskdev tx lock: %s\n", strerror(errno));
970-
}
971972
xskdev_list_lock();
972973
if (xi->next.tqe_prev)
973974
TAILQ_REMOVE(&xskdev_list, xi, next);

0 commit comments

Comments
 (0)