From 244586d6f1194710c2242063b8f68f0c7b071601 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Thu, 27 Mar 2008 23:02:30 +0000 Subject: Remove ng_setisr() call from ng_dequeue(). It is useless as we any way will never exit ngintr(), while there is some ready requests on the queue. It was made years ago with hope of parallel queue processing by several net threads. But even if we have several threads sometimes, we have no rights to process queue in parallel as it will break original requests serialization that is critically important for some setups. --- sys/netgraph/ng_base.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/sys/netgraph/ng_base.c b/sys/netgraph/ng_base.c index e893cf850aa4..645caf4a51e4 100644 --- a/sys/netgraph/ng_base.c +++ b/sys/netgraph/ng_base.c @@ -1996,13 +1996,6 @@ ng_dequeue(struct ng_queue *ngq, int *rw) * we don't need to change the PENDING flag. */ atomic_add_long(&ngq->q_flags, add_arg); - /* - * If we see more doable work, make sure we are - * on the work queue. - */ - if (NEXT_QUEUED_ITEM_CAN_PROCEED(ngq)) { - ng_setisr(ngq->q_node); - } } CTR6(KTR_NET, "%20s: node [%x] (%p) returning item %p as %s; " "queue flags 0x%lx", __func__, @@ -3385,10 +3378,6 @@ ngintr(void) * All this time, keep the reference * that lets us be sure that the node still exists. * Let the reference go at the last minute. - * ng_dequeue will put us back on the worklist - * if there is more too do. This may be of use if there - * are Multiple Processors and multiple Net threads in the - * future. */ for (;;) { int rw; -- cgit v1.2.3