OpenSolaris

Printable Version Enter a New Search
Bug ID 6353515
Synopsis NGE: When tx is hang, nge put a lot of messages into syslog.
State 10-Fix Delivered (Fix available in build)
Category:Subcategory driver:nge
Keywords
Responsible Engineer Jason Jiang
Reported Against
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_32
Fixed In snv_32
Release Fixed solaris_nevada(snv_32) , solaris_10u2(s10u2_05) (Bug ID:2133037)
Related Bugs 6339474 , 6353511 , 2133034
Submit Date 21-November-2005
Last Update Date 16-March-2007
Description
On current code, when fatal interrupt happens, the chip will be stop. According to the nVidia document, we should disable this interrupt in order to avoid interrupt on the same thing.
When watchdog are trigger to find a  tx hang, it will keep to pring the same scare information into the syslog, this may scare and be mislead the customer. Should be disabled in the release version. Actually, when happen this situation, the driver can
survive himself.
static boolean_t
nge_factotum_stall_check(nge_t *ngep)
{
	uint32_t dogval;

	/*
	 * Specific check for Tx stall ...
	 *
	 * The 'watchdog' counter is incremented whenever a packet
	 * is queued, reset to 1 when some (but not all) buffers
	 * are reclaimed, reset to 0 (disabled) when all buffers
	 * are reclaimed, and shifted left here.  If it exceeds the
	 * threshold value, the chip is assumed to have stalled and
	 * is put into the ERROR state.  The factotum will then reset
	 * it on the next pass.
	 *
	 * All of which should ensure that we don't get into a state
	 * where packets are left pending indefinitely!
	 */
	dogval = nge_atomic_shl32(&ngep->watchdog, 1);
	if (dogval < nge_watchdog_count)
		return (B_FALSE);
	nge_report(ngep, NGE_HW_ERR);    >>>>>>>>>>>Should be deleted.
	ngep->statistics.sw_statistics.tx_stall++;
	return (B_TRUE);
}
Work Around
N/A
Comments
N/A