Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Dec 2008 08:18:11 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/re if_re.c src/sys/pci if_rlreg.h
Message-ID:  <200812170818.mBH8IUe7029961@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
yongari     2008-12-17 08:18:11 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/re           if_re.c 
    sys/pci              if_rlreg.h 
  Log:
  SVN rev 186214 on 2008-12-17 08:18:11Z by yongari
  
  It seems that RealTek PCIe controllers require an explicit Tx poll
  command whenever Tx completion interrupt is raised. The Tx poll
  bit is cleared when all packets waiting to be transferred have been
  processed. This means the second Tx poll command can be silently
  ignored as the Tx poll bit could be still active while processing
  of previous Tx poll command is in progress.
  To address the issue re(4) used to invoke the Tx poll command in Tx
  completion handler whenever it detects there are pending packets in
  TxQ. However that still does not seem to completely eliminate
  watchdog timeouts seen on RealTek PCIe controllers. To fix the
  issue kick Tx poll command only after Tx completion interrupt is
  raised as this would indicate Tx is now idle state such that it can
  accept new Tx poll command again. While here apply this workaround
  for PCIe based controllers as other controllers does not seem to
  have this limitation.
  
  Tested by:      Victor Balada Diaz < victor <> bsdes DOT net >
  
  Revision  Changes    Path
  1.146     +15 -10    src/sys/dev/re/if_re.c
  1.91      +1 -0      src/sys/pci/if_rlreg.h



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