Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Oct 2006 23:42:57 +0000 (UTC)
From:      Scott Long <scottl@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/bce if_bce.c if_bcereg.h
Message-ID:  <200610152342.k9FNgvMc002214@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
scottl      2006-10-15 23:42:57 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/bce          if_bce.c if_bcereg.h 
  Log:
  Overhaul the transmit and dma paths:
  - Use bus_dmamap_load_mbuf_sg() to eliminate the need for the callback and
  all of the extra bookkeeping associated with it.
  - Eliminate the bce_dmamap_arg structure and streamline the memory allocation
  routines to not need it.  This does change some of the debugging messages.
  - Refactor the loop that fills the buffer descriptor so that it can be done
  with a single set of logic in a single loop instead of two sets of logic.
  - Eliminate the need to cache and pass descriptor indexes between the start
  loop and the encap function.
  - Change the start loop to always check the ifnet sendq for more work.
  
  This significantly helps the driver withstand large UDP workloads, though
  it's still not perfect.  I suspect the remaining work lies with handling
  the OACTIVE flag, and also in possibly streamlining the interrupt handler
  some.  It is, however, nearly on par with the other popular gigabit drivers
  in terms of stability now.
  
  Revision  Changes    Path
  1.14      +121 -203  src/sys/dev/bce/if_bce.c
  1.7       +0 -16     src/sys/dev/bce/if_bcereg.h



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