FreeBSD/sys/dev/vxge/vxge.c
/*
 * vxge_intr_coalesce_rx
 * Changes interrupt coalescing if the interrupts are not within a range
 * Return Value: Nothing
 */
vxge_intr_coalesce_rx
Changes interrupt coalescing if the interrupts are not within a range
Return Value: Nothing
vxge_intr_coalesce_rx Changes interrupt coalescing if the interrupts are not within a range Return Value : Nothing
void
vxge_intr_coalesce_rx(vxge_vpath_t *vpath)
{
	u32 timer;
	if (!vpath->rx_intr_coalesce)
		return;
	vpath->rx_interrupts++;
	if (ticks > vpath->rx_ticks + hz/100) {
		vpath->rx_ticks = ticks;
		timer = vpath->rti_rtimer_val;
		if (vpath->rx_interrupts > VXGE_MAX_RX_INTERRUPT_COUNT) {
			if (timer != VXGE_RTI_RTIMER_ADAPT_VAL) {
				vpath->rti_rtimer_val =
				    VXGE_RTI_RTIMER_ADAPT_VAL;
				vxge_hal_vpath_dynamic_rti_rtimer_set(
				    vpath->handle, vpath->rti_rtimer_val);
			}
		} else {
			if (timer != 0) {
				vpath->rti_rtimer_val = 0;
				vxge_hal_vpath_dynamic_rti_rtimer_set(
				    vpath->handle, vpath->rti_rtimer_val);
			}
		}
		vpath->rx_interrupts = 0;
	}
}
void vxge_intr_coalesce_rx ( vxge_vpath_t * vpath ) { u32 timer ; if ( ! vpath -> rx_intr_coalesce ) return ; vpath -> rx_interrupts ++ ; if ( ticks > vpath -> rx_ticks + hz / 100 ) { vpath -> rx_ticks = ticks ; timer = vpath -> rti_rtimer_val ; if ( vpath -> rx_interrupts > VXGE_MAX_RX_INTERRUPT_COUNT ) { if ( timer != VXGE_RTI_RTIMER_ADAPT_VAL ) { vpath -> rti_rtimer_val = VXGE_RTI_RTIMER_ADAPT_VAL ; vxge_hal_vpath_dynamic_rti_rtimer_set ( vpath -> handle , vpath -> rti_rtimer_val ) ; } } else { if ( timer != 0 ) { vpath -> rti_rtimer_val = 0 ; vxge_hal_vpath_dynamic_rti_rtimer_set ( vpath -> handle , vpath -> rti_rtimer_val ) ; } } vpath -> rx_interrupts = 0 ; } }
vxge_intr_coalesce_rx
 Changes interrupt coalescing if the interrupts are not within a range
 Return Value: Nothing
vxge_intr_coalesce_rx Changes interrupt coalescing if the interrupts are not within a range Return Value : Nothing