Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Jun 1999 13:48:25 -0400 (EDT)
From:      Larry Lile <lile@stdio.com>
To:        Phil Regnauld <regnauld@ftf.net>
Cc:        freebsd-tokenring@FreeBSD.ORG
Subject:   Re: Strange behavior with OC-3117, 4.0-C
Message-ID:  <Pine.BSF.4.05.9906031339020.10273-100000@heathers.stdio.com>
In-Reply-To: <19990603134535.55646@ns.int.ftf.net>

next in thread | previous in thread | raw e-mail | index | archive | help


On Thu, 3 Jun 1999, Phil Regnauld wrote:

> Wood, Richard writes:
> > > -----Original Message-----
> > > From: Phil Regnauld [mailto:regnauld@ftf.net]
> > > Sent: Friday, May 28, 1999 8:57 AM
> > > To: freebsd-tokering@freebsd.org
> > > Subject: Strange behavior with OC-3117, 4.0-C
> > 
> > <huge snip>

<more snippage>

> > to restart it, a powerdown was the only option.
> 
> 	I solved this problem by reinstalling 19990421-CURRENT --
> 	something between 19990421 and 19990530 had broken the DMA or
> 	something else.
> 
> 	Larry Lile said it might be the new bus code.

Sorry, I was being paranoid.  It doesn't look like that had any effect.

> 	My adapter works fine now, except for regular
> 	receive error(3)
> 	messages on the console (and corresponding errors in netstat -i)

Maybe there was some other change to the IP stack?  I don't see any 
obvious changes in the driver code that would have caused this to be
any more broken than it already was.  There is a problem that I need
to address, and will.  I still don't understand why things are happening
the way they are.  

For example:
ftp works fine, mostly 1 or 2 mbufs in each packet chain.  Most telnet
packets are the same 1 or 2 mbufs in each packet.  However as a couple
of people have noted if you do a "ls" that returns a lot of data it will
hang and this is becuase I am getting roughly 1500 bytes of data
(perfectly normal and acceptable) but it is being sent in a chain of 12 
to 36 mbufs!  I do not understand why this data has not been collapsed 
into a mbuf (and or a mbuf cluster) at some point further into the stack.
I don't beleive that it has always been this way previously.

Never the less, I have a bug and I will fix it.  Could someone look into
what might have changed in the IP stack?  I am really pressed for time
right now.


Larry Lile
lile@stdio.com



[Changes to if_oltr.c between 19990421 and -current]

*** if_oltr.c	Wed Mar 10 12:45:26 1999
--- /sys/contrib/dev/oltr/if_oltr.c	Tue May 18 21:57:52 1999
***************
*** 30,36 ****
   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   *
!  * $Id: if_oltr.c,v 1.2 1999/03/10 17:45:26 julian Exp $
   */
  
  
--- 30,36 ----
   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   *
!  * $Id: if_oltr.c,v 1.5 1999/05/09 17:07:24 peter Exp $
   */
  
  
***************
*** 259,265 ****
      NULL
  };
  
! DATA_SET(pcidevice_set, oltr_device);
  int pci_cards = 0;
  #endif /* NPCI */
  
--- 259,265 ----
      NULL
  };
  
! COMPAT_PCI_DRIVER(oltr_pci, oltr_device);
  int pci_cards = 0;
  #endif /* NPCI */
  
***************
*** 355,361 ****
          if (!is->id_irq) 
              is->id_irq = (1 << sc->config->interruptlevel);         /* Claim our interrupt */
          is->id_intr = (inthand2_t *)oltr_intr;
-         register_intr(ffs(is->id_irq) - 1, is->id_id, is->id_ri_flags, is->id_intr, &net_imask, is->id_unit);
          if ((is->id_drq == 0xffffffff) && (sc->config->dmalevel != TRLLD_DMA_PIO))
              is->id_drq = sc->config->dmalevel;                      /* Claim our dma channel */
          printf("oltr%d: <%s> [%6D]\n", is->id_unit, AdapterName[sc->config->type], sc->config->macaddress, ":");
--- 355,360 ----
***************
*** 374,380 ****
                  if (is->id_irq == 0)
                      is->id_irq = (1 << sc->config->interruptlevel);         /* Claim our interrupt */
                  is->id_intr = (inthand2_t *)oltr_intr;
-                 register_intr(ffs(is->id_irq) - 1, is->id_id, is->id_ri_flags, is->id_intr, &net_imask, is->id_unit);
                  if ((is->id_drq == 0xffffffff) && (sc->config->dmalevel != TRLLD_DMA_PIO))
                      is->id_drq = sc->config->dmalevel;                      /* Claim our dma channel */
                  printf("oltr%d: <%s> [%6D]\n", is->id_unit, AdapterName[sc->config->type], sc->config->macaddress, ":");
--- 373,378 ----



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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9906031339020.10273-100000>