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.
This commit is contained in:
Alexander Motin 2008-03-27 23:02:30 +00:00
parent 10f0bcab61
commit 244586d6f1
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=177673

View File

@ -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;