Index: head/ObsoleteFiles.inc =================================================================== --- head/ObsoleteFiles.inc +++ head/ObsoleteFiles.inc @@ -38,6 +38,8 @@ # xargs -n1 | sort | uniq -d; # done +# 20160301: Remove taskqueue_enqueue_fast +OLD_FILES+=usr/share/man/man9/taskqueue_enqueue_fast.9.gz # 20160225: Remove casperd and libcapsicum. OLD_FILES+=sbin/casperd OLD_FILES+=etc/rc.d/casperd Index: head/share/man/man9/Makefile =================================================================== --- head/share/man/man9/Makefile +++ head/share/man/man9/Makefile @@ -1705,7 +1705,6 @@ taskqueue.9 taskqueue_drain_all.9 \ taskqueue.9 taskqueue_drain_timeout.9 \ taskqueue.9 taskqueue_enqueue.9 \ - taskqueue.9 taskqueue_enqueue_fast.9 \ taskqueue.9 taskqueue_enqueue_timeout.9 \ taskqueue.9 TASKQUEUE_FAST_DEFINE.9 \ taskqueue.9 TASKQUEUE_FAST_DEFINE_THREAD.9 \ Index: head/share/man/man9/taskqueue.9 =================================================================== --- head/share/man/man9/taskqueue.9 +++ head/share/man/man9/taskqueue.9 @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 4, 2015 +.Dd March 1, 2016 .Dt TASKQUEUE 9 .Os .Sh NAME @@ -80,8 +80,6 @@ .Ft int .Fn taskqueue_enqueue "struct taskqueue *queue" "struct task *task" .Ft int -.Fn taskqueue_enqueue_fast "struct taskqueue *queue" "struct task *task" -.Ft int .Fn taskqueue_enqueue_timeout "struct taskqueue *queue" "struct timeout_task *timeout_task" "int ticks" .Ft int .Fn taskqueue_cancel "struct taskqueue *queue" "struct task *task" "u_int *pendp" @@ -191,14 +189,6 @@ .Er EPIPE if the queue is being freed. .Pp -The function -.Fn taskqueue_enqueue_fast -should be used in place of -.Fn taskqueue_enqueue -when the enqueuing must happen from a fast interrupt handler. -This method uses spin locks to avoid the possibility of sleeping in the fast -interrupt context. -.Pp When a task is executed, first it is removed from the queue, the value of @@ -467,15 +457,7 @@ call .Fn taskqueue_enqueue with the value of the global taskqueue variable for the queue you wish to -use -.Va ( taskqueue_swi , -.Va taskqueue_swi_giant , -or -.Va taskqueue_thread ) . -Use -.Fn taskqueue_enqueue_fast -for the global taskqueue variable -.Va taskqueue_fast . +use. .Pp The software interrupt queues can be used, for instance, for implementing interrupt handlers which must perform a Index: head/sys/arm/ti/am335x/am335x_dmtpps.c =================================================================== --- head/sys/arm/ti/am335x/am335x_dmtpps.c +++ head/sys/arm/ti/am335x/am335x_dmtpps.c @@ -300,7 +300,7 @@ pps_capture(&sc->pps_state); sc->pps_state.capcount = DMTIMER_READ4(sc, DMT_TCAR1); DMTIMER_WRITE4(sc, DMT_IRQSTATUS, DMT_IRQ_TCAR); - taskqueue_enqueue_fast(taskqueue_fast, &sc->pps_task); + taskqueue_enqueue(taskqueue_fast, &sc->pps_task); } } Index: head/sys/dev/aac/aac.c =================================================================== --- head/sys/dev/aac/aac.c +++ head/sys/dev/aac/aac.c @@ -915,7 +915,7 @@ /* handle completion processing */ if (reason & AAC_DB_RESPONSE_READY) - taskqueue_enqueue_fast(taskqueue_fast, &sc->aac_task_complete); + taskqueue_enqueue(taskqueue_fast, &sc->aac_task_complete); /* controller wants to talk to us */ if (reason & (AAC_DB_PRINTF | AAC_DB_COMMAND_READY)) { Index: head/sys/dev/ath/if_ath_sysctl.c =================================================================== --- head/sys/dev/ath/if_ath_sysctl.c +++ head/sys/dev/ath/if_ath_sysctl.c @@ -709,7 +709,7 @@ if (val == 0) return 0; - taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_bstucktask); + taskqueue_enqueue(sc->sc_tq, &sc->sc_bstucktask); val = 0; return 0; } Index: head/sys/dev/bwn/if_bwn.c =================================================================== --- head/sys/dev/bwn/if_bwn.c +++ head/sys/dev/bwn/if_bwn.c @@ -8328,7 +8328,7 @@ BWN_BARRIER(mac, BUS_SPACE_BARRIER_READ); BWN_BARRIER(mac, BUS_SPACE_BARRIER_WRITE); - taskqueue_enqueue_fast(sc->sc_tq, &mac->mac_intrtask); + taskqueue_enqueue(sc->sc_tq, &mac->mac_intrtask); return (FILTER_HANDLED); } Index: head/sys/dev/bxe/bxe.c =================================================================== --- head/sys/dev/bxe/bxe.c +++ head/sys/dev/bxe/bxe.c @@ -8737,7 +8737,7 @@ if (more_rx /*|| more_tx*/) { /* still more work to do */ - taskqueue_enqueue_fast(fp->tq, &fp->tq_task); + taskqueue_enqueue(fp->tq, &fp->tq_task); return; } @@ -8771,7 +8771,7 @@ if (more_rx /*|| more_tx*/) { /* still more work to do, bail out if this ISR and process later */ - taskqueue_enqueue_fast(fp->tq, &fp->tq_task); + taskqueue_enqueue(fp->tq, &fp->tq_task); return; } @@ -8838,7 +8838,7 @@ bxe_ack_sb(sc, sc->igu_dsb_id, USTORM_ID, 0, IGU_INT_DISABLE, 0); /* schedule slowpath handler */ - taskqueue_enqueue_fast(sc->sp_tq, &sc->sp_tq_task); + taskqueue_enqueue(sc->sp_tq, &sc->sp_tq_task); status &= ~0x1; } @@ -8860,7 +8860,7 @@ bxe_ack_sb(sc, sc->igu_dsb_id, USTORM_ID, 0, IGU_INT_DISABLE, 0); /* schedule slowpath handler */ - taskqueue_enqueue_fast(sc->sp_tq, &sc->sp_tq_task); + taskqueue_enqueue(sc->sp_tq, &sc->sp_tq_task); } /* fastpath interrupt entry point */ Index: head/sys/dev/drm2/drm_fb_helper.c =================================================================== --- head/sys/dev/drm2/drm_fb_helper.c +++ head/sys/dev/drm2/drm_fb_helper.c @@ -75,7 +75,7 @@ sc = (struct vt_kms_softc *)arg; if (!kdb_active && panicstr == NULL) - taskqueue_enqueue_fast(taskqueue_thread, &sc->fb_mode_task); + taskqueue_enqueue(taskqueue_thread, &sc->fb_mode_task); else drm_fb_helper_restore_fbdev_mode(sc->fb_helper); Index: head/sys/dev/hyperv/vmbus/hv_connection.c =================================================================== --- head/sys/dev/hyperv/vmbus/hv_connection.c +++ head/sys/dev/hyperv/vmbus/hv_connection.c @@ -350,7 +350,7 @@ if (channel->batched_reading) hv_ring_buffer_read_begin(&channel->inbound); - taskqueue_enqueue_fast(channel->rxq, &channel->channel_task); + taskqueue_enqueue(channel->rxq, &channel->channel_task); } } } Index: head/sys/dev/malo/if_malo.c =================================================================== --- head/sys/dev/malo/if_malo.c +++ head/sys/dev/malo/if_malo.c @@ -397,9 +397,9 @@ __func__, status, sc->malo_imask); if (status & MALO_A2HRIC_BIT_RX_RDY) - taskqueue_enqueue_fast(sc->malo_tq, &sc->malo_rxtask); + taskqueue_enqueue(sc->malo_tq, &sc->malo_rxtask); if (status & MALO_A2HRIC_BIT_TX_DONE) - taskqueue_enqueue_fast(sc->malo_tq, &sc->malo_txtask); + taskqueue_enqueue(sc->malo_tq, &sc->malo_txtask); if (status & MALO_A2HRIC_BIT_OPC_DONE) malo_hal_cmddone(mh); if (status & MALO_A2HRIC_BIT_MAC_EVENT) Index: head/sys/dev/nfe/if_nfe.c =================================================================== --- head/sys/dev/nfe/if_nfe.c +++ head/sys/dev/nfe/if_nfe.c @@ -1873,7 +1873,7 @@ if (status == 0 || status == 0xffffffff) return (FILTER_STRAY); nfe_disable_intr(sc); - taskqueue_enqueue_fast(sc->nfe_tq, &sc->nfe_int_task); + taskqueue_enqueue(sc->nfe_tq, &sc->nfe_int_task); return (FILTER_HANDLED); } @@ -1932,7 +1932,7 @@ NFE_UNLOCK(sc); if (domore || (NFE_READ(sc, sc->nfe_irq_status) != 0)) { - taskqueue_enqueue_fast(sc->nfe_tq, &sc->nfe_int_task); + taskqueue_enqueue(sc->nfe_tq, &sc->nfe_int_task); return; } Index: head/sys/dev/oce/oce_if.c =================================================================== --- head/sys/dev/oce/oce_if.c +++ head/sys/dev/oce/oce_if.c @@ -707,7 +707,7 @@ oce_arm_eq(sc, ii->eq->eq_id, 0, FALSE, TRUE); - taskqueue_enqueue_fast(ii->tq, &ii->task); + taskqueue_enqueue(ii->tq, &ii->task); ii->eq->intr++; @@ -1065,7 +1065,7 @@ #else if (!IFQ_DRV_IS_EMPTY(&sc->ifp->if_snd)) #endif - taskqueue_enqueue_fast(taskqueue_swi, &wq->txtask); + taskqueue_enqueue(taskqueue_swi, &wq->txtask); } Index: head/sys/dev/re/if_re.c =================================================================== --- head/sys/dev/re/if_re.c +++ head/sys/dev/re/if_re.c @@ -2553,7 +2553,7 @@ return (FILTER_STRAY); CSR_WRITE_2(sc, RL_IMR, 0); - taskqueue_enqueue_fast(taskqueue_fast, &sc->rl_inttask); + taskqueue_enqueue(taskqueue_fast, &sc->rl_inttask); return (FILTER_HANDLED); } @@ -2621,7 +2621,7 @@ RL_UNLOCK(sc); if ((CSR_READ_2(sc, RL_ISR) & RL_INTRS_CPLUS) || rval) { - taskqueue_enqueue_fast(taskqueue_fast, &sc->rl_inttask); + taskqueue_enqueue(taskqueue_fast, &sc->rl_inttask); return; } Index: head/sys/dev/smc/if_smc.c =================================================================== --- head/sys/dev/smc/if_smc.c +++ head/sys/dev/smc/if_smc.c @@ -560,7 +560,7 @@ return; } - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_tx); + taskqueue_enqueue(sc->smc_tq, &sc->smc_tx); } static void @@ -797,7 +797,7 @@ SMC_UNLOCK(sc); if (cmd == POLL_AND_CHECK_STATUS) - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_intr); + taskqueue_enqueue(sc->smc_tq, &sc->smc_intr); } #endif @@ -823,7 +823,7 @@ /* Restore bank */ smc_select_bank(sc, curbank); - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_intr); + taskqueue_enqueue(sc->smc_tq, &sc->smc_intr); return (FILTER_HANDLED); } @@ -877,7 +877,7 @@ tcr |= TCR_TXENA | TCR_PAD_EN; smc_write_2(sc, TCR, tcr); smc_select_bank(sc, 2); - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_tx); + taskqueue_enqueue(sc->smc_tq, &sc->smc_tx); } /* @@ -892,7 +892,7 @@ if (status & RCV_INT) { smc_write_1(sc, ACK, RCV_INT); sc->smc_mask &= ~RCV_INT; - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_rx); + taskqueue_enqueue(sc->smc_tq, &sc->smc_rx); } /* @@ -901,7 +901,7 @@ if (status & ALLOC_INT) { smc_write_1(sc, ACK, ALLOC_INT); sc->smc_mask &= ~ALLOC_INT; - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_tx); + taskqueue_enqueue(sc->smc_tq, &sc->smc_tx); } /* @@ -933,7 +933,7 @@ /* * See if there are any packets to transmit. */ - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_tx); + taskqueue_enqueue(sc->smc_tq, &sc->smc_tx); } /* @@ -1233,7 +1233,7 @@ sc = (struct smc_softc *)arg; device_printf(sc->smc_dev, "watchdog timeout\n"); - taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_intr); + taskqueue_enqueue(sc->smc_tq, &sc->smc_intr); } static void Index: head/sys/dev/vr/if_vr.c =================================================================== --- head/sys/dev/vr/if_vr.c +++ head/sys/dev/vr/if_vr.c @@ -1671,7 +1671,7 @@ /* Disable interrupts. */ CSR_WRITE_2(sc, VR_IMR, 0x0000); - taskqueue_enqueue_fast(taskqueue_fast, &sc->vr_inttask); + taskqueue_enqueue(taskqueue_fast, &sc->vr_inttask); return (FILTER_HANDLED); } Index: head/sys/dev/xen/netfront/netfront.c =================================================================== --- head/sys/dev/xen/netfront/netfront.c +++ head/sys/dev/xen/netfront/netfront.c @@ -1400,7 +1400,7 @@ { struct netfront_rxq *rxq = xrxq; - taskqueue_enqueue_fast(rxq->tq, &rxq->intrtask); + taskqueue_enqueue(rxq->tq, &rxq->intrtask); } static void @@ -1408,7 +1408,7 @@ { struct netfront_txq *txq = xtxq; - taskqueue_enqueue_fast(txq->tq, &txq->intrtask); + taskqueue_enqueue(txq->tq, &txq->intrtask); } static int Index: head/sys/kern/subr_taskqueue.c =================================================================== --- head/sys/kern/subr_taskqueue.c +++ head/sys/kern/subr_taskqueue.c @@ -737,13 +737,6 @@ MTX_SPIN, "fast_taskqueue"); } -/* NB: for backwards compatibility */ -int -taskqueue_enqueue_fast(struct taskqueue *queue, struct task *task) -{ - return taskqueue_enqueue(queue, task); -} - static void *taskqueue_fast_ih; static void Index: head/sys/netpfil/ipfw/ip_dummynet.c =================================================================== --- head/sys/netpfil/ipfw/ip_dummynet.c +++ head/sys/netpfil/ipfw/ip_dummynet.c @@ -84,7 +84,7 @@ { (void)arg; /* UNUSED */ - taskqueue_enqueue_fast(dn_tq, &dn_task); + taskqueue_enqueue(dn_tq, &dn_task); } void Index: head/sys/sys/taskqueue.h =================================================================== --- head/sys/sys/taskqueue.h +++ head/sys/sys/taskqueue.h @@ -198,7 +198,6 @@ * from a fast interrupt handler context. */ TASKQUEUE_DECLARE(fast); -int taskqueue_enqueue_fast(struct taskqueue *queue, struct task *task); struct taskqueue *taskqueue_create_fast(const char *name, int mflags, taskqueue_enqueue_fn enqueue, void *context); Index: head/sys/x86/iommu/intel_fault.c =================================================================== --- head/sys/x86/iommu/intel_fault.c +++ head/sys/x86/iommu/intel_fault.c @@ -179,7 +179,7 @@ } if (enqueue) { - taskqueue_enqueue_fast(unit->fault_taskqueue, + taskqueue_enqueue(unit->fault_taskqueue, &unit->fault_task); } return (FILTER_HANDLED); Index: head/sys/x86/iommu/intel_qi.c =================================================================== --- head/sys/x86/iommu/intel_qi.c +++ head/sys/x86/iommu/intel_qi.c @@ -325,7 +325,7 @@ unit = arg; KASSERT(unit->qi_enabled, ("dmar%d: QI is not enabled", unit->unit)); - taskqueue_enqueue_fast(unit->qi_taskqueue, &unit->qi_task); + taskqueue_enqueue(unit->qi_taskqueue, &unit->qi_task); return (FILTER_HANDLED); } Index: head/sys/x86/x86/mca.c =================================================================== --- head/sys/x86/x86/mca.c +++ head/sys/x86/x86/mca.c @@ -508,7 +508,7 @@ mca_count++; mtx_unlock_spin(&mca_lock); if (mode == CMCI) - taskqueue_enqueue_fast(mca_tq, &mca_refill_task); + taskqueue_enqueue(mca_tq, &mca_refill_task); } #ifdef DEV_APIC @@ -686,7 +686,7 @@ mca_periodic_scan(void *arg) { - taskqueue_enqueue_fast(mca_tq, &mca_scan_task); + taskqueue_enqueue(mca_tq, &mca_scan_task); callout_reset(&mca_timer, mca_ticks * hz, mca_periodic_scan, NULL); } @@ -700,7 +700,7 @@ if (error) return (error); if (i) - taskqueue_enqueue_fast(mca_tq, &mca_scan_task); + taskqueue_enqueue(mca_tq, &mca_scan_task); return (0); }