Deleted Added
full compact
netisr.c (222249) netisr.c (222531)
1/*-
2 * Copyright (c) 2007-2009 Robert N. M. Watson
3 * Copyright (c) 2010-2011 Juniper Networks, Inc.
4 * All rights reserved.
5 *
6 * This software was developed by Robert N. M. Watson under contract
7 * to Juniper Networks, Inc.
8 *

--- 15 unchanged lines hidden (view full) ---

24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 */
30
31#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2007-2009 Robert N. M. Watson
3 * Copyright (c) 2010-2011 Juniper Networks, Inc.
4 * All rights reserved.
5 *
6 * This software was developed by Robert N. M. Watson under contract
7 * to Juniper Networks, Inc.
8 *

--- 15 unchanged lines hidden (view full) ---

24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 */
30
31#include <sys/cdefs.h>
32__FBSDID("$FreeBSD: head/sys/net/netisr.c 222249 2011-05-24 12:34:19Z rwatson $");
32__FBSDID("$FreeBSD: head/sys/net/netisr.c 222531 2011-05-31 15:11:43Z nwhitehorn $");
33
34/*
35 * netisr is a packet dispatch service, allowing synchronous (directly
36 * dispatched) and asynchronous (deferred dispatch) processing of packets by
37 * registered protocol handlers. Callers pass a protocol identifier and
38 * packet to netisr, along with a direct dispatch hint, and work will either
39 * be immediately processed by the registered handler, or passed to a
40 * software interrupt (SWI) thread for deferred dispatch. Callers will

--- 1175 unchanged lines hidden (view full) ---

1216 * Start worker threads for additional CPUs. No attempt to gracefully handle
1217 * work reassignment, we don't yet support dynamic reconfiguration.
1218 */
1219static void
1220netisr_start(void *arg)
1221{
1222 struct pcpu *pc;
1223
33
34/*
35 * netisr is a packet dispatch service, allowing synchronous (directly
36 * dispatched) and asynchronous (deferred dispatch) processing of packets by
37 * registered protocol handlers. Callers pass a protocol identifier and
38 * packet to netisr, along with a direct dispatch hint, and work will either
39 * be immediately processed by the registered handler, or passed to a
40 * software interrupt (SWI) thread for deferred dispatch. Callers will

--- 1175 unchanged lines hidden (view full) ---

1216 * Start worker threads for additional CPUs. No attempt to gracefully handle
1217 * work reassignment, we don't yet support dynamic reconfiguration.
1218 */
1219static void
1220netisr_start(void *arg)
1221{
1222 struct pcpu *pc;
1223
1224 SLIST_FOREACH(pc, &cpuhead, pc_allcpu) {
1224 STAILQ_FOREACH(pc, &cpuhead, pc_allcpu) {
1225 if (nws_count >= netisr_maxthreads)
1226 break;
1227 /* XXXRW: Is skipping absent CPUs still required here? */
1228 if (CPU_ABSENT(pc->pc_cpuid))
1229 continue;
1230 /* Worker will already be present for boot CPU. */
1231 if (pc->pc_netisr != NULL)
1232 continue;

--- 200 unchanged lines hidden ---
1225 if (nws_count >= netisr_maxthreads)
1226 break;
1227 /* XXXRW: Is skipping absent CPUs still required here? */
1228 if (CPU_ABSENT(pc->pc_cpuid))
1229 continue;
1230 /* Worker will already be present for boot CPU. */
1231 if (pc->pc_netisr != NULL)
1232 continue;

--- 200 unchanged lines hidden ---