Date: Tue, 23 Nov 2010 18:47:00 +0000 (UTC) From: "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net> To: Mike Tancsa <mike@sentex.net> Cc: Randy Bush <randy@psg.com>, Denis Ahrens <denis@berlin.ccc.de>, stable@freebsd.org, Jack Vogel <jfvogel@gmail.com>, "George V. Neville-Neil" <gnn@freebsd.org> Subject: Re: repeating crashes with 8.1 Message-ID: <20101123175100.V24596@maildrop.int.zabbadoz.net> In-Reply-To: <20101023091555.W66242@maildrop.int.zabbadoz.net> References: <m2zku7cqt5.wl%randy@psg.com> <m2y69rcqjc.wl%randy@psg.com> <201010221416.o9MEGSa0094817@lava.sentex.ca> <m2tykeb9ac.wl%randy@psg.com> <201010221425.o9MEPcWC094867@lava.sentex.ca> <m2k4lab6nh.wl%randy@psg.com> <201010221848.o9MIm7WF096197@lava.sentex.ca> <m2y69q9e38.wl%randy@psg.com> <4CC1F3B8.3010302@bogus.com> <4CC225D3.1030502@ops-netman.net> <7.1.0.9.0.20101022210145.06fe25e8@sentex.net> <201010230159.o9N1xGGF098363@lava.sentex.ca> <AANLkTimWTTHWC04my3CSoNGYsLarS9F10eoO=8Fz37cF@mail.gmail.com> <201010230821.o9N8LVuR001382@lava.sentex.ca> <20101023091555.W66242@maildrop.int.zabbadoz.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 23 Oct 2010, Bjoern A. Zeeb wrote: Hi, just to get this out. Jack you might want to review and if ok, include in HEAD before we get feedback maybe. To my understanding worst it would be overhead but not really harm. >>> >>>>> Oct 22 02:06:02 i4 kernel: em1: discard frame w/o packet header >>> >>>>> Oct 22 02:06:10 i4 kernel: em2: discard frame w/o packet header The following is a random-guess by code reading that hasn't been tested yet but believed to be correct; also ran it by gnn. http://people.freebsd.org/~bz/20101122-03-em-pkthdr.diff --- sys/dev/e1000/if_em.c.orig 2010-11-01 20:57:53.000000000 -0400 +++ sys/dev/e1000/if_em.c 2010-11-16 01:28:00.000000000 -0500 @@ -3754,8 +3769,13 @@ em_refresh_mbufs(struct rx_ring *rxr, in ** they can only be due to an error ** and are to be reused. */ - if (rxbuf->m_head != NULL) + if (rxbuf->m_head != NULL) { + rxbuf->m_head->m_len = rxbuf->m_head->m_pkthdr.len = adapter->rx_mbuf_sz; + rxbuf->m_head->m_flags |= M_PKTHDR; + rxbuf->m_head->m_data = rxbuf->m_head->m_ext.ext_buf; + rxbuf->m_head->m_next = NULL; goto reuse; + } m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, adapter->rx_mbuf_sz); /* I am not sure if igb and the others need a similar fix. Haven't looked in detail. gnn mentioned similarities though good ones imho in there. If you were able to reproduce the pkthdr issue it would be great to test it. If you always paniced it with IPv6 you may also want to test the applicable patch (use the direct URLs mentioned) from the very end of http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/148857 to make sure you are not running into that race. /bz -- Bjoern A. Zeeb Welcome a new stage of life. <ks> Going to jail sucks -- <bz> All my daemons like it! http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails.html
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101123175100.V24596>