Module Name:    src
Committed By:   msaitoh
Date:           Wed Jul 10 03:26:30 UTC 2024

Modified Files:
        src/sys/dev/pci/ixgbe: ixgbe.c ixv.c

Log Message:
ixgbe: Remove ifdef NET_MPSAFE. Make ixgbe MP-scalable by default.

 Same as wm(4).


To generate a diff of this commit:
cvs rdiff -u -r1.353 -r1.354 src/sys/dev/pci/ixgbe/ixgbe.c
cvs rdiff -u -r1.197 -r1.198 src/sys/dev/pci/ixgbe/ixv.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/pci/ixgbe/ixgbe.c
diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.353 src/sys/dev/pci/ixgbe/ixgbe.c:1.354
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.353	Wed Jul 10 03:23:02 2024
+++ src/sys/dev/pci/ixgbe/ixgbe.c	Wed Jul 10 03:26:30 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: ixgbe.c,v 1.353 2024/07/10 03:23:02 msaitoh Exp $ */
+/* $NetBSD: ixgbe.c,v 1.354 2024/07/10 03:26:30 msaitoh Exp $ */
 
 /******************************************************************************
 
@@ -64,12 +64,11 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ixgbe.c,v 1.353 2024/07/10 03:23:02 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ixgbe.c,v 1.354 2024/07/10 03:26:30 msaitoh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
 #include "opt_inet6.h"
-#include "opt_net_mpsafe.h"
 #endif
 
 #include "ixgbe.h"
@@ -411,17 +410,6 @@ static int (*ixgbe_start_locked)(struct 
 static int (*ixgbe_ring_empty)(struct ifnet *, pcq_t *);
 #endif
 
-#ifdef NET_MPSAFE
-#define IXGBE_CALLOUT_FLAGS	CALLOUT_MPSAFE
-#define IXGBE_SOFTINT_FLAGS	SOFTINT_MPSAFE
-#define IXGBE_WORKQUEUE_FLAGS	WQ_PERCPU | WQ_MPSAFE
-#define IXGBE_TASKLET_WQ_FLAGS	WQ_MPSAFE
-#else
-#define IXGBE_CALLOUT_FLAGS	0
-#define IXGBE_SOFTINT_FLAGS	0
-#define IXGBE_WORKQUEUE_FLAGS	WQ_PERCPU
-#define IXGBE_TASKLET_WQ_FLAGS	0
-#endif
 #define IXGBE_WORKQUEUE_PRI PRI_SOFTNET
 
 /* Interval between reports of errors */
@@ -844,11 +832,10 @@ ixgbe_attach(device_t parent, device_t d
 	IXGBE_CORE_LOCK_INIT(sc, device_xname(dev));
 
 	/* Set up the timer callout and workqueue */
-	callout_init(&sc->timer, IXGBE_CALLOUT_FLAGS);
+	callout_init(&sc->timer, CALLOUT_MPSAFE);
 	snprintf(wqname, sizeof(wqname), "%s-timer", device_xname(dev));
 	error = workqueue_create(&sc->timer_wq, wqname,
-	    ixgbe_handle_timer, sc, IXGBE_WORKQUEUE_PRI, IPL_NET,
-	    IXGBE_TASKLET_WQ_FLAGS);
+	    ixgbe_handle_timer, sc, IXGBE_WORKQUEUE_PRI, IPL_NET, WQ_MPSAFE);
 	if (error) {
 		aprint_error_dev(dev,
 		    "could not create timer workqueue (%d)\n", error);
@@ -1178,8 +1165,7 @@ ixgbe_attach(device_t parent, device_t d
 	mutex_init(&(sc)->admin_mtx, MUTEX_DEFAULT, IPL_NET);
 	snprintf(wqname, sizeof(wqname), "%s-admin", device_xname(dev));
 	error = workqueue_create(&sc->admin_wq, wqname,
-	    ixgbe_handle_admin, sc, IXGBE_WORKQUEUE_PRI, IPL_NET,
-	    IXGBE_TASKLET_WQ_FLAGS);
+	    ixgbe_handle_admin, sc, IXGBE_WORKQUEUE_PRI, IPL_NET, WQ_MPSAFE);
 	if (error) {
 		aprint_error_dev(dev,
 		    "could not create admin workqueue (%d)\n", error);
@@ -1296,13 +1282,12 @@ ixgbe_attach(device_t parent, device_t d
 		sc->recovery_mode = 0;
 
 		/* Set up the timer callout */
-		callout_init(&sc->recovery_mode_timer,
-		    IXGBE_CALLOUT_FLAGS);
+		callout_init(&sc->recovery_mode_timer, CALLOUT_MPSAFE);
 		snprintf(wqname, sizeof(wqname), "%s-recovery",
 		    device_xname(dev));
 		error = workqueue_create(&sc->recovery_mode_timer_wq,
 		    wqname, ixgbe_handle_recovery_mode_timer, sc,
-		    IXGBE_WORKQUEUE_PRI, IPL_NET, IXGBE_TASKLET_WQ_FLAGS);
+		    IXGBE_WORKQUEUE_PRI, IPL_NET, WQ_MPSAFE);
 		if (error) {
 			aprint_error_dev(dev, "could not create "
 			    "recovery_mode_timer workqueue (%d)\n", error);
@@ -6835,22 +6820,22 @@ alloc_retry:
 	 */
 	if (!(sc->feat_en & IXGBE_FEATURE_LEGACY_TX)) {
 		txr->txr_si =
-		    softint_establish(SOFTINT_NET | IXGBE_SOFTINT_FLAGS,
+		    softint_establish(SOFTINT_NET | SOFTINT_MPSAFE,
 			ixgbe_deferred_mq_start, txr);
 
 		snprintf(wqname, sizeof(wqname), "%sdeferTx",
 		    device_xname(dev));
 		defertx_error = workqueue_create(&sc->txr_wq, wqname,
 		    ixgbe_deferred_mq_start_work, sc, IXGBE_WORKQUEUE_PRI,
-		    IPL_NET, IXGBE_WORKQUEUE_FLAGS);
+		    IPL_NET, WQ_PERCPU | WQ_MPSAFE);
 		sc->txr_wq_enqueued = percpu_alloc(sizeof(u_int));
 	}
-	que->que_si = softint_establish(SOFTINT_NET | IXGBE_SOFTINT_FLAGS,
+	que->que_si = softint_establish(SOFTINT_NET | SOFTINT_MPSAFE,
 	    ixgbe_handle_que, que);
 	snprintf(wqname, sizeof(wqname), "%sTxRx", device_xname(dev));
 	error = workqueue_create(&sc->que_wq, wqname,
 	    ixgbe_handle_que_work, sc, IXGBE_WORKQUEUE_PRI, IPL_NET,
-	    IXGBE_WORKQUEUE_FLAGS);
+	    WQ_PERCPU | WQ_MPSAFE);
 
 	if ((!(sc->feat_en & IXGBE_FEATURE_LEGACY_TX)
 		&& ((txr->txr_si == NULL) || defertx_error != 0))
@@ -6985,7 +6970,7 @@ ixgbe_allocate_msix(struct ixgbe_softc *
 
 		if (!(sc->feat_en & IXGBE_FEATURE_LEGACY_TX)) {
 			txr->txr_si = softint_establish(
-				SOFTINT_NET | IXGBE_SOFTINT_FLAGS,
+				SOFTINT_NET | SOFTINT_MPSAFE,
 				ixgbe_deferred_mq_start, txr);
 			if (txr->txr_si == NULL) {
 				aprint_error_dev(dev,
@@ -6995,7 +6980,7 @@ ixgbe_allocate_msix(struct ixgbe_softc *
 			}
 		}
 		que->que_si
-		    = softint_establish(SOFTINT_NET | IXGBE_SOFTINT_FLAGS,
+		    = softint_establish(SOFTINT_NET | SOFTINT_MPSAFE,
 			ixgbe_handle_que, que);
 		if (que->que_si == NULL) {
 			aprint_error_dev(dev,
@@ -7007,7 +6992,7 @@ ixgbe_allocate_msix(struct ixgbe_softc *
 	snprintf(wqname, sizeof(wqname), "%sdeferTx", device_xname(dev));
 	error = workqueue_create(&sc->txr_wq, wqname,
 	    ixgbe_deferred_mq_start_work, sc, IXGBE_WORKQUEUE_PRI, IPL_NET,
-	    IXGBE_WORKQUEUE_FLAGS);
+	    WQ_PERCPU | WQ_MPSAFE);
 	if (error) {
 		aprint_error_dev(dev,
 		    "couldn't create workqueue for deferred Tx\n");
@@ -7018,7 +7003,7 @@ ixgbe_allocate_msix(struct ixgbe_softc *
 	snprintf(wqname, sizeof(wqname), "%sTxRx", device_xname(dev));
 	error = workqueue_create(&sc->que_wq, wqname,
 	    ixgbe_handle_que_work, sc, IXGBE_WORKQUEUE_PRI, IPL_NET,
-	    IXGBE_WORKQUEUE_FLAGS);
+	    WQ_PERCPU | WQ_MPSAFE);
 	if (error) {
 		aprint_error_dev(dev, "couldn't create workqueue for Tx/Rx\n");
 		goto err_out;

Index: src/sys/dev/pci/ixgbe/ixv.c
diff -u src/sys/dev/pci/ixgbe/ixv.c:1.197 src/sys/dev/pci/ixgbe/ixv.c:1.198
--- src/sys/dev/pci/ixgbe/ixv.c:1.197	Wed Jul 10 03:23:02 2024
+++ src/sys/dev/pci/ixgbe/ixv.c	Wed Jul 10 03:26:30 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: ixv.c,v 1.197 2024/07/10 03:23:02 msaitoh Exp $ */
+/* $NetBSD: ixv.c,v 1.198 2024/07/10 03:26:30 msaitoh Exp $ */
 
 /******************************************************************************
 
@@ -35,12 +35,11 @@
 /*$FreeBSD: head/sys/dev/ixgbe/if_ixv.c 331224 2018-03-19 20:55:05Z erj $*/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ixv.c,v 1.197 2024/07/10 03:23:02 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ixv.c,v 1.198 2024/07/10 03:26:30 msaitoh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
 #include "opt_inet6.h"
-#include "opt_net_mpsafe.h"
 #endif
 
 #include "ixgbe.h"
@@ -228,17 +227,6 @@ TUNABLE_INT("hw.ixv.rxd", &ixv_rxd);
 static int ixv_enable_legacy_tx = 0;
 TUNABLE_INT("hw.ixv.enable_legacy_tx", &ixv_enable_legacy_tx);
 
-#ifdef NET_MPSAFE
-#define IXGBE_CALLOUT_FLAGS	CALLOUT_MPSAFE
-#define IXGBE_SOFTINT_FLAGS	SOFTINT_MPSAFE
-#define IXGBE_WORKQUEUE_FLAGS	WQ_PERCPU | WQ_MPSAFE
-#define IXGBE_TASKLET_WQ_FLAGS	WQ_MPSAFE
-#else
-#define IXGBE_CALLOUT_FLAGS	0
-#define IXGBE_SOFTINT_FLAGS	0
-#define IXGBE_WORKQUEUE_FLAGS	WQ_PERCPU
-#define IXGBE_TASKLET_WQ_FLAGS	0
-#endif
 #define IXGBE_WORKQUEUE_PRI PRI_SOFTNET
 
 #if 0
@@ -362,11 +350,10 @@ ixv_attach(device_t parent, device_t dev
 	ixv_add_device_sysctls(sc);
 
 	/* Set up the timer callout and workqueue */
-	callout_init(&sc->timer, IXGBE_CALLOUT_FLAGS);
+	callout_init(&sc->timer, CALLOUT_MPSAFE);
 	snprintf(wqname, sizeof(wqname), "%s-timer", device_xname(dev));
 	error = workqueue_create(&sc->timer_wq, wqname,
-	    ixv_handle_timer, sc, IXGBE_WORKQUEUE_PRI, IPL_NET,
-	    IXGBE_TASKLET_WQ_FLAGS);
+	    ixv_handle_timer, sc, IXGBE_WORKQUEUE_PRI, IPL_NET, WQ_MPSAFE);
 	if (error) {
 		aprint_error_dev(dev,
 		    "could not create timer workqueue (%d)\n", error);
@@ -3437,11 +3424,11 @@ ixv_allocate_msix(struct ixgbe_softc *sc
 
 #ifndef IXGBE_LEGACY_TX
 		txr->txr_si
-		    = softint_establish(SOFTINT_NET | IXGBE_SOFTINT_FLAGS,
+		    = softint_establish(SOFTINT_NET | SOFTINT_MPSAFE,
 			ixgbe_deferred_mq_start, txr);
 #endif
 		que->que_si
-		    = softint_establish(SOFTINT_NET | IXGBE_SOFTINT_FLAGS,
+		    = softint_establish(SOFTINT_NET | SOFTINT_MPSAFE,
 			ixv_handle_que, que);
 		if (que->que_si == NULL) {
 			aprint_error_dev(dev,
@@ -3451,7 +3438,7 @@ ixv_allocate_msix(struct ixgbe_softc *sc
 	snprintf(wqname, sizeof(wqname), "%sdeferTx", device_xname(dev));
 	error = workqueue_create(&sc->txr_wq, wqname,
 	    ixgbe_deferred_mq_start_work, sc, IXGBE_WORKQUEUE_PRI, IPL_NET,
-	    IXGBE_WORKQUEUE_FLAGS);
+	    WQ_PERCPU | WQ_MPSAFE);
 	if (error) {
 		aprint_error_dev(dev,
 		    "couldn't create workqueue for deferred Tx\n");
@@ -3461,7 +3448,7 @@ ixv_allocate_msix(struct ixgbe_softc *sc
 	snprintf(wqname, sizeof(wqname), "%sTxRx", device_xname(dev));
 	error = workqueue_create(&sc->que_wq, wqname,
 	    ixv_handle_que_work, sc, IXGBE_WORKQUEUE_PRI, IPL_NET,
-	    IXGBE_WORKQUEUE_FLAGS);
+	    WQ_PERCPU | WQ_MPSAFE);
 	if (error) {
 		aprint_error_dev(dev, "couldn't create workqueue for Tx/Rx\n");
 	}
@@ -3498,8 +3485,7 @@ ixv_allocate_msix(struct ixgbe_softc *sc
 	/* Tasklets for Mailbox */
 	snprintf(wqname, sizeof(wqname), "%s-admin", device_xname(dev));
 	error = workqueue_create(&sc->admin_wq, wqname,
-	    ixv_handle_admin, sc, IXGBE_WORKQUEUE_PRI, IPL_NET,
-	    IXGBE_TASKLET_WQ_FLAGS);
+	    ixv_handle_admin, sc, IXGBE_WORKQUEUE_PRI, IPL_NET, WQ_MPSAFE);
 	if (error) {
 		aprint_error_dev(dev,
 		    "could not create admin workqueue (%d)\n", error);

Reply via email to