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>