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>
