From owner-freebsd-stable@FreeBSD.ORG Sun Mar 6 21:40:15 2011 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1167D1065680; Sun, 6 Mar 2011 21:40:15 +0000 (UTC) (envelope-from lacombar@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id AE0B48FC0A; Sun, 6 Mar 2011 21:40:14 +0000 (UTC) Received: by iyj12 with SMTP id 12so4004446iyj.13 for ; Sun, 06 Mar 2011 13:40:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=DfJxmbkEuUKVcnNJCwrKCy5h7eC+4PWWDFOJAX0y0bg=; b=SvFxNkcdQi89rqasHlFcbd1lFp2ufMSneHfvL+/vHvTx4jS93tcw850ffTVx8dSPUZ EZLwunNgkzwEMrSqnZ9XhkDK7fPJXmssXYWGOHqN7VOTZThC9qeE1oxij4R6K/w/ajhy +aQ3PL/ZAvNNFGo4yGKQmQUS5fdOvTtSqWztQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=Jltzk0kBqmCprc8FHFgSJMqw3Pq3uEi0hhDNFnBzzDPAAcIBSo4ceCdus3UsxkI8L6 zRPc07KuvDAR5CWCRGfX+j4dqpLtiFOv1muhRO8SFVWI3kdW+gkhqXQgVmPKSy/hwGHH iOi2Y18L9LB1Eo7+D7IcVFM2C+p9ncLMTTnnk= MIME-Version: 1.0 Received: by 10.43.64.69 with SMTP id xh5mr2472456icb.66.1299447613807; Sun, 06 Mar 2011 13:40:13 -0800 (PST) Received: by 10.42.172.198 with HTTP; Sun, 6 Mar 2011 13:40:13 -0800 (PST) In-Reply-To: References: <1975926365.20110223121637@serebryakov.spb.ru> <4D64EC8C.2080007@sentex.net> <1004451940.20110223143607@serebryakov.spb.ru> <4D6D00C1.1040805@sentex.net> <1416421652.20110301225215@serebryakov.spb.ru> <1627628072.20110303111046@serebryakov.spb.ru> <1894628540.20110304012554@serebryakov.spb.ru> <31A99DAA7E5F4095B22B9DD57DD0E19E@multiplay.co.uk> <494278763.20110305130320@serebryakov.spb.ru> Date: Sun, 6 Mar 2011 16:40:13 -0500 Message-ID: From: Arnaud Lacombe To: Jack Vogel Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-stable@freebsd.org, =?ISO-8859-1?Q?=D6zkan_KIRIK?= , Brandon Gooch , freebsd-net@freebsd.org, Jan Koum , Steven Hartland Subject: Re: em0 with latest driver hangs again and again (without "Watchdogtimeout" message!) X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Mar 2011 21:40:15 -0000 Hi, On Sun, Mar 6, 2011 at 4:23 PM, Arnaud Lacombe wrote: > Hi Jack, > > On Sun, Mar 6, 2011 at 2:48 PM, Jack Vogel wrote: >> Missed packets just mean that some temporary resource shortage or error >> caused >> the packet to be dropped. I don't believe this is indicative of a proble= m, >> just let it >> keep running, 2 days is good but 2 weeks is better :) >> >> Thanks for testing it! >> > I still did not get any feedback from you about the patch I sent the > list about not ignoring the RX overrun interrupt triggered by the > card. > Just to precise. For what I understood of Beezar Lui "fix", all the work is done in the RX interrupt context, ie. you rely on the card to trigger RX interrupt to refresh mbufs. If the resource shortage is too long, the card stops triggering RX interrupt and "hang", but it _still_ trigger RX overrun to warn the OS about the situation. Currently this interrupt is just ignored. Your original fix works for igb(4) as a single handler is used per queue; igb_rxeof() get called in both RX and TX context. This is not the case with em(4) as RX and TX interrupt are independent from each other. So if the hardware empties the ring and you cannot replenish it while you still get RX interrupt, you have no other choice than using the RX overrun interrupt to hope to recover. - Arnaud > Thanks, > =A0- Arnaud > >> Jack >> >> >> On Sun, Mar 6, 2011 at 4:37 AM, =D6zkan KIRIK wr= ote: >>> >>> Hello, >>> >>> I've been testing the em.7.2.2 driver as kld. The system is up about 2 >>> days 6 hours. >>> System has 4 em interfaces, Throughput is about 200Mbit/s. System >>> didn't hang, but em2 has Input Errors. >>> >>> I saw that, dev.em.2.mac_stats.missed_packets is not zero? What could >>> be the problem? >>> >>> # uname -r >>> 8.2-RELEASE >>> >>> # sysctl dev.em.| grep miss >>> dev.em.0.mac_stats.missed_packets: 0 >>> dev.em.1.mac_stats.missed_packets: 0 >>> dev.em.2.mac_stats.missed_packets: 5886 >>> dev.em.3.mac_stats.missed_packets: 0 >>> >>> # netstat -nWI em2 | grep Link >>> Name =A0 =A0 =A0Mtu Network =A0 =A0 =A0 Address =A0 =A0 =A0 =A0 =A0 =A0= =A0Ipkts Ierrs Idrop >>> Opkts Oerrs =A0Coll >>> em2 =A0 =A0 =A01500 =A0 =A0 =A000:23:8b:89:e4:9e 267256324 =A0= 5886 =A0 =A0 0 >>> 273081628 =A0 =A0 0 =A0 =A0 0 >>> >>> # sysctl dev.em.2. >>> dev.em.2.%desc: Intel(R) PRO/1000 Network Connection 7.2.2 >>> dev.em.2.%driver: em >>> dev.em.2.%location: slot=3D0 function=3D0 handle=3D\_SB_.PCI0.P0P4.BR1E >>> dev.em.2.%pnpinfo: vendor=3D0x8086 device=3D0x105e subvendor=3D0x108e >>> subdevice=3D0x125e class=3D0x020000 >>> dev.em.2.%parent: pci12 >>> dev.em.2.nvm: -1 >>> dev.em.2.debug: -1 >>> dev.em.2.rx_int_delay: 0 >>> dev.em.2.tx_int_delay: 66 >>> dev.em.2.rx_abs_int_delay: 66 >>> dev.em.2.tx_abs_int_delay: 66 >>> dev.em.2.rx_processing_limit: 100 >>> dev.em.2.flow_control: 3 >>> dev.em.2.eee_control: 0 >>> dev.em.2.link_irq: 0 >>> dev.em.2.mbuf_alloc_fail: 0 >>> dev.em.2.cluster_alloc_fail: 0 >>> dev.em.2.dropped: 0 >>> dev.em.2.tx_dma_fail: 0 >>> dev.em.2.rx_overruns: 7 >>> dev.em.2.watchdog_timeouts: 0 >>> dev.em.2.device_control: 1075577409 >>> dev.em.2.rx_control: 67141634 >>> dev.em.2.fc_high_water: 30720 >>> dev.em.2.fc_low_water: 29220 >>> dev.em.2.queue0.txd_head: 3025 >>> dev.em.2.queue0.txd_tail: 3025 >>> dev.em.2.queue0.tx_irq: 0 >>> dev.em.2.queue0.no_desc_avail: 0 >>> dev.em.2.queue0.rxd_head: 1826 >>> dev.em.2.queue0.rxd_tail: 1825 >>> dev.em.2.queue0.rx_irq: 0 >>> dev.em.2.mac_stats.excess_coll: 0 >>> dev.em.2.mac_stats.single_coll: 0 >>> dev.em.2.mac_stats.multiple_coll: 0 >>> dev.em.2.mac_stats.late_coll: 0 >>> dev.em.2.mac_stats.collision_count: 0 >>> dev.em.2.mac_stats.symbol_errors: 0 >>> dev.em.2.mac_stats.sequence_errors: 0 >>> dev.em.2.mac_stats.defer_count: 0 >>> dev.em.2.mac_stats.missed_packets: 5886 >>> dev.em.2.mac_stats.recv_no_buff: 3407 >>> dev.em.2.mac_stats.recv_undersize: 0 >>> dev.em.2.mac_stats.recv_fragmented: 0 >>> dev.em.2.mac_stats.recv_oversize: 0 >>> dev.em.2.mac_stats.recv_jabber: 0 >>> dev.em.2.mac_stats.recv_errs: 0 >>> dev.em.2.mac_stats.crc_errs: 0 >>> dev.em.2.mac_stats.alignment_errs: 0 >>> dev.em.2.mac_stats.coll_ext_errs: 0 >>> dev.em.2.mac_stats.xon_recvd: 0 >>> dev.em.2.mac_stats.xon_txd: 0 >>> dev.em.2.mac_stats.xoff_recvd: 0 >>> dev.em.2.mac_stats.xoff_txd: 0 >>> dev.em.2.mac_stats.total_pkts_recvd: 265358324 >>> dev.em.2.mac_stats.good_pkts_recvd: 265352438 >>> dev.em.2.mac_stats.bcast_pkts_recvd: 701728 >>> dev.em.2.mac_stats.mcast_pkts_recvd: 4076 >>> dev.em.2.mac_stats.rx_frames_64: 0 >>> dev.em.2.mac_stats.rx_frames_65_127: 140801982 >>> dev.em.2.mac_stats.rx_frames_128_255: 3553397 >>> dev.em.2.mac_stats.rx_frames_256_511: 3418754 >>> dev.em.2.mac_stats.rx_frames_512_1023: 8096866 >>> dev.em.2.mac_stats.rx_frames_1024_1522: 109481439 >>> dev.em.2.mac_stats.good_octets_recvd: 177455051448 >>> dev.em.2.mac_stats.good_octets_txd: 274861571704 >>> dev.em.2.mac_stats.total_pkts_txd: 270439410 >>> dev.em.2.mac_stats.good_pkts_txd: 270439410 >>> dev.em.2.mac_stats.bcast_pkts_txd: 194927 >>> dev.em.2.mac_stats.mcast_pkts_txd: 48 >>> dev.em.2.mac_stats.tx_frames_64: 23050855 >>> dev.em.2.mac_stats.tx_frames_65_127: 54156414 >>> dev.em.2.mac_stats.tx_frames_128_255: 4299280 >>> dev.em.2.mac_stats.tx_frames_256_511: 7837146 >>> dev.em.2.mac_stats.tx_frames_512_1023: 8272014 >>> dev.em.2.mac_stats.tx_frames_1024_1522: 172823701 >>> dev.em.2.mac_stats.tso_txd: 0 >>> dev.em.2.mac_stats.tso_ctx_fail: 0 >>> dev.em.2.interrupts.asserts: 283674059 >>> dev.em.2.interrupts.rx_pkt_timer: 33585 >>> dev.em.2.interrupts.rx_abs_timer: 0 >>> dev.em.2.interrupts.tx_pkt_timer: 11022 >>> dev.em.2.interrupts.tx_abs_timer: 22449 >>> dev.em.2.interrupts.tx_queue_empty: 0 >>> dev.em.2.interrupts.tx_queue_min_thresh: 0 >>> dev.em.2.interrupts.rx_desc_min_thresh: 0 >>> dev.em.2.interrupts.rx_overrun: 0 >>> >>> Regards, >>> Ozkan KIRIK >> >> >