From owner-freebsd-net@FreeBSD.ORG Thu Feb 9 16:55:04 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB920106566B for ; Thu, 9 Feb 2012 16:55:04 +0000 (UTC) (envelope-from lacombar@gmail.com) Received: from mail-ww0-f50.google.com (mail-ww0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id 628FA8FC0A for ; Thu, 9 Feb 2012 16:55:03 +0000 (UTC) Received: by wgbdq11 with SMTP id dq11so2037603wgb.31 for ; Thu, 09 Feb 2012 08:55:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=NTTSvwemYmLCIAYQhSbh+U6MSoYi5pn40+ULmBBGiw8=; b=lbfqBn2Fz79+rxZVr3QTHn5EK59Aqg5DEBG+zBdKs8XR7IzP/3NK6YdFi7br/N2VhI S1tLOyDZQNmmQNUFewv4LxcNpvmAFdj/LqsblzkSonwv6kBshuyJA3YoqD/XkNGiR0bN WVkyA4DCky+JrBgZWY0PM/C0W6vA//DqXFd48= MIME-Version: 1.0 Received: by 10.180.101.165 with SMTP id fh5mr4021787wib.10.1328806502445; Thu, 09 Feb 2012 08:55:02 -0800 (PST) Received: by 10.216.58.201 with HTTP; Thu, 9 Feb 2012 08:55:02 -0800 (PST) In-Reply-To: References: Date: Thu, 9 Feb 2012 11:55:02 -0500 Message-ID: From: Arnaud Lacombe To: "Vogel, Jack" Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: "freebsd-net@freebsd.org" Subject: Re: Missed packet on recent em(4) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Feb 2012 16:55:05 -0000 Hi, On Wed, Feb 8, 2012 at 7:15 PM, Vogel, Jack wrote: > The NETMAP code is all self-contained, just delete what's inside the ifde= f's > not exactly, the allocator stuff from r229939 is not that self contained, but beside that my problem is more to get the patches to apply to our internal 7-STABLE tree. My generic workflow is to mindlessly use git-format-patch to generate the set of patches, slightly reformat commit log to our internal standard, and apply that on top of the target tree. I then let git figures out eventual conflicts and fix them. I do not want to have to think about all the things we changed internally which might conflict, but also want to keep record of who made what change in which commit/revision. To some extend, I want to avoid the mess which happened in `sys/dev/e1000/' where you blew luigi@ and other committers changes by blindly committing stuff and letting them fix the damage afterward. These few commits were just wonderful, I must admit you made my day a little less sad ;-) - Arnaud > Jack > > > -----Original Message----- > From: Arnaud Lacombe [mailto:lacombar@gmail.com] > Sent: Wednesday, February 08, 2012 3:25 PM > To: Vogel, Jack > Cc: freebsd-net@freebsd.org > Subject: Missed packet on recent em(4) > > Hi Jack, > > For the record, on the following hardware: > > em3@pci0:5:0:0: class=3D0x020000 card=3D0x150415bb chip=3D0x150c8086 rev= =3D0x00 hdr=3D0x00 > > and the following version of em(4): > > em3: port 0xec00-0xec1f > mem 0xfebe0000-0xfebfffff,0xfebdc000-0xfebdffff irq 19 at device 0.0 > on pci5 > em3: Using an MSI interrupt > em3: [FILTER] > em3: Ethernet address: 00:90:fb:35:18:b1 > > backported to 7-STABLE, I am still getting `missed_packets' increment, > without any obvious mbuf allocation denial. These increments do not > translate into complete hang of the driver, just crazy frame loss. > > # sysctl dev.em.3 > dev.em.3.%desc: Intel(R) PRO/1000 Network Connection 7.2.3 > dev.em.3.%driver: em > dev.em.3.%location: slot=3D0 function=3D0 > dev.em.3.%pnpinfo: vendor=3D0x8086 device=3D0x150c subvendor=3D0x15bb > subdevice=3D0x1504 class=3D0x020000 > dev.em.3.%parent: pci5 > dev.em.3.rx_int_delay: 0 > dev.em.3.tx_int_delay: 66 > dev.em.3.rx_abs_int_delay: 66 > dev.em.3.tx_abs_int_delay: 66 > dev.em.3.rx_processing_limit: 100 > dev.em.3.flow_control: 3 > dev.em.3.eee_control: 0 > dev.em.3.link_irq: 0 > dev.em.3.mbuf_alloc_fail: 0 > dev.em.3.cluster_alloc_fail: 0 > dev.em.3.dropped: 0 > dev.em.3.tx_dma_fail: 0 > dev.em.3.rx_overruns: 78 > dev.em.3.watchdog_timeouts: 0 > dev.em.3.device_control: 1477444168 > dev.em.3.rx_control: 67141634 > dev.em.3.fc_high_water: 18432 > dev.em.3.fc_low_water: 16932 > dev.em.3.queue0.txd_head: 703 > dev.em.3.queue0.txd_tail: 703 > dev.em.3.queue0.tx_irq: 0 > dev.em.3.queue0.no_desc_avail: 0 > dev.em.3.queue0.rxd_head: 692 > dev.em.3.queue0.rxd_tail: 691 > dev.em.3.queue0.rx_irq: 0 > dev.em.3.mac_stats.excess_coll: 0 > dev.em.3.mac_stats.single_coll: 0 > dev.em.3.mac_stats.multiple_coll: 0 > dev.em.3.mac_stats.late_coll: 0 > dev.em.3.mac_stats.collision_count: 0 > dev.em.3.mac_stats.symbol_errors: 0 > dev.em.3.mac_stats.sequence_errors: 0 > dev.em.3.mac_stats.defer_count: 0 > dev.em.3.mac_stats.missed_packets: 1135790 > dev.em.3.mac_stats.recv_no_buff: 555763 > dev.em.3.mac_stats.recv_undersize: 0 > dev.em.3.mac_stats.recv_fragmented: 0 > dev.em.3.mac_stats.recv_oversize: 0 > dev.em.3.mac_stats.recv_jabber: 0 > dev.em.3.mac_stats.recv_errs: 0 > dev.em.3.mac_stats.crc_errs: 0 > dev.em.3.mac_stats.alignment_errs: 0 > dev.em.3.mac_stats.coll_ext_errs: 0 > dev.em.3.mac_stats.xon_recvd: 6806 > dev.em.3.mac_stats.xon_txd: 253 > dev.em.3.mac_stats.xoff_recvd: 7583 > dev.em.3.mac_stats.xoff_txd: 742908 > dev.em.3.mac_stats.total_pkts_recvd: 3904354 > dev.em.3.mac_stats.good_pkts_recvd: 2761900 > [...] > > This happened with about 1000 short-lived TCP connection filling about > 100Mbps of traffic. > > I saw you made updates to the driver recently. I'll attempt a backport > and let you know. This might not be trivial given the netmap mess > which appeared in -current... > > =A0- Arnaud