Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Sep 1997 08:27:35 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.ORG>
To:        cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG
Subject:   cvs commit: src/sys/pci if_de.c if_devar.h
Message-ID:  <199709111527.IAA14529@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
peter       1997/09/11 08:27:35 PDT

  Modified files:
    sys/pci              if_de.c if_devar.h 
  Log:
  malloc() the rx and tx descriptors seperately rather than as part of the
  large (over 4KB) softc struct.  The descriptor array is accessed by
  busmaster dma and must be physically contiguous in memory.  malloc() of
  a block greater than a page is only virtually contiguous, and not
  necessarily physically contigious.
  
  contigmalloc() could do this, but that is a bit on the overkill side.
  
  I'm not sure of the origins of the problem report and diagnosis, I learned
  of the problem via mail forwarded from  Jim Shankland <jas@flyingfox.com>.
  
  Jim said that Matt Thomas's workaround was to reduce the number of
  transmit descriptors from 128 to 32, but I was concerned that it might
  cost performance.  Anyway, this change is my fault, not Jim's. :-)
  
  Reviewed by: davidg
  
  Revision  Changes    Path
  1.68      +11 -1     src/sys/pci/if_de.c
  1.2       +90 -6     src/sys/pci/if_devar.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709111527.IAA14529>