Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Oct 2005 15:05:47 +0400
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        net@FreeBSD.org
Subject:   [glebius@FreeBSD.org: cvs commit: src/sys/dev/em if_em.c]
Message-ID:  <20051014110547.GR14542@cell.sick.ru>

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

  since there were a lot of em(4) related discussions on list, I
decided to forward this commit mail here.
  This change should fix a big problem in if_em(), that you may
have experienced. If you experience long wedges in receive part,
for about minute or more, than you should try this patch, test it
and please report to list.
  The more reports we get, the faster the change will enter
RELENG_6_0.

  Thanks in advance!

----- Forwarded message from Gleb Smirnoff <glebius@FreeBSD.org> -----

From: Gleb Smirnoff <glebius@FreeBSD.org>
To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject: cvs commit: src/sys/dev/em if_em.c
Date: Fri, 14 Oct 2005 11:00:16 +0000 (UTC)
Delivered-To: glebius@freebsd.org
Delivered-To: src-committers@FreeBSD.org
Precedence: bulk

glebius     2005-10-14 11:00:16 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/em           if_em.c 
  Log:
  From the PR:
  
    The receive function em_process_receive_interrupts() unlocks the
    adapter while ether_input() processes the packet, and then locks
    it back. In the meantime, em_init() may be called, either from
    em_watchdog() from softclock interrupt or from the ifconfig(8)
    program. The em_init() resets the card, in particular it sets
    adapter->next_rx_desc_to_check to 0 and resets hardware RX Head
    and Tail descriptor pointers. The loop in
    em_process_receive_interrupts() does not expect these things to
    change, and a mess may result.
  
  This fixes long wedges of em(4) interfaces receive part under high
  load and IP fastforwarding enabled.
  
  PR:             kern/87418
  Submitted by:   Dmitrij Tejblum <tejblum yandex-team.ru>
  
  Revision  Changes    Path
  1.77      +14 -14    src/sys/dev/em/if_em.c

----- End forwarded message -----

-- 
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE



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