[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-alpha
Subject:    Re: alpha/37385: xl0 network card (509B) fails on heavy traffic
From:       Andrew Gallatin <gallatin () cs ! duke ! edu>
Date:       2002-04-23 17:50:02
[Download RAW message or body]

The following reply was made to PR alpha/37385; it has been noted by GNATS.

From: Andrew Gallatin <gallatin@cs.duke.edu>
To: Yuri Victorovich <yuri@tsoft.com>
Cc: freebsd-gnats-submit@FreeBSD.ORG
Subject: Re: alpha/37385: xl0 network card (509B) fails on heavy traffic
Date: Tue, 23 Apr 2002 13:46:24 -0400 (EDT)

 The message is mostly harmless.  I see it only at a very high
 packets/sec rate on my UP1000.
 
 It may simply be a race if the card writes portions of xl_status
 independantly (eg, updates the csum status, then marks it complete in
 another DMA).
 
  > "xl0: bad receive status -- packet dropped"
  > dropped in log by if_xl driver when traffic is really
  > heavy -- (download of huge file from LAN).
  > 
  > might be endianness issue again since number of similar cards
  > work on i386 platform.
 
 Nonsense. The alpha and the i386 platform have the same byte order. 
 Also, xl_status is 32-bits, so the reads of it should be atomic from the
 host's perspective.  
 
 If the card is doing the DMAs separately, then we
 should be looking for XL_RXSTAT_UP_CMPLT (or XL_RXSTAT_UP_ERROR) explicitly.
 
 Something like
 
 
 while((rxstat = sc->xl_cdata.xl_rx_head->xl_ptr->xl_status) & (XL_RXSTAT_UP_ERROR|XL_RXSTAT_UP_CMPLT)) {
 
 
 
 Drew
 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic