Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Feb 2009 03:43:46 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/fxp if_fxp.c
Message-ID:  <200902090344.n193i0kr087948@repoman.freebsd.org>

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

yongari     2009-02-09 03:43:46 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_7)
    sys/dev/fxp          if_fxp.c 
  Log:
  SVN rev 188372 on 2009-02-09 03:43:46Z by yongari
  
  MFC r185328:
     o Introduce a new function, fxp_new_rfabuf which allocates a new
       Rx buffer and loads DMA map. Also add a function
       fxp_discard_rfabuf that handles reusing Rx buffer/DMA map. With
       this change fxp_add_rfabuf just handles appending a new RFA to
       existing chain.
     o Initialize mbuf length in fxp_new_rfabuf.
     o Don't reset rnr and have fxp(4) handle received frames even if
       it couldn't allocate new Rx buffer. This will make fxp(4) reload
       updated RFA under rnr case. The rnr would still be reset to 0 if
       polling is active and fxp(4) processed number of allowed Rx
       events.
     o Update if_iqdrops if fxp(4) couldn't allocate Rx buffer.
  
    Previously fxp(4) used to try to reuse Rx buffer when new buffer
    allocation is failed. But fxp(4) didn't take into account loaded
    DMA map such that the same DMA map was loaded again without
    unloading the map. There is no reason to unload the loaded map and
    reload the same map again, just reusing the map is enough. I
    believe the spare DMA map in softc was introduced to implement this
    behaviour. Also fxp(4) used to stop Rx processing if once Rx buffer
    allocation or DMA map load fails which in turn resulted in losing
    incoming frames under heavy network load. With this change fxp(4)
    should survive from resource shortage condition.
  
  Revision   Changes    Path
  1.266.2.7  +69 -27    src/sys/dev/fxp/if_fxp.c



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