reduce Tx/Rx maximum number of words (as PDF says) in one DMA
transaction to 8. value 32 triggers occational watchdog() Tx timeout when higher system load. This symptom is observed in ipforwarding across two PCI devices case so far, and it remains unidentified what really happens for Tx DMA activity. 16 seems ok, 8 is conservative and heuristic value. may need more adjustment work in other parts.
This commit is contained in:
parent
31b46e1b7e
commit
035cfa139a
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: if_kse.c,v 1.10 2007/10/19 12:00:46 ad Exp $ */
|
/* $NetBSD: if_kse.c,v 1.11 2007/11/16 10:31:57 nisimura Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2006 Tohru Nishimura
|
* Copyright (c) 2006 Tohru Nishimura
|
||||||
@ -30,7 +30,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: if_kse.c,v 1.10 2007/10/19 12:00:46 ad Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: if_kse.c,v 1.11 2007/11/16 10:31:57 nisimura Exp $");
|
||||||
|
|
||||||
#include "bpfilter.h"
|
#include "bpfilter.h"
|
||||||
|
|
||||||
@ -292,7 +292,7 @@ do { \
|
|||||||
KSE_CDRXSYNC((sc), (x), BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE); \
|
KSE_CDRXSYNC((sc), (x), BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE); \
|
||||||
} while (/*CONSTCOND*/0)
|
} while (/*CONSTCOND*/0)
|
||||||
|
|
||||||
u_int kse_burstsize = 32; /* DMA burst length tuning knob */
|
u_int kse_burstsize = 8; /* DMA burst length tuning knob */
|
||||||
|
|
||||||
#ifdef KSEDIAGNOSTIC
|
#ifdef KSEDIAGNOSTIC
|
||||||
u_int kse_monitor_rxintr; /* fragmented UDP csum HW bug hook */
|
u_int kse_monitor_rxintr; /* fragmented UDP csum HW bug hook */
|
||||||
|
Loading…
Reference in New Issue
Block a user