From owner-freebsd-net@FreeBSD.ORG Thu Apr 12 19:40:28 2012 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9DEE5106566C; Thu, 12 Apr 2012 19:40:28 +0000 (UTC) (envelope-from rysto32@gmail.com) Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id D36AA8FC08; Thu, 12 Apr 2012 19:40:27 +0000 (UTC) Received: by wgbds12 with SMTP id ds12so2354186wgb.31 for ; Thu, 12 Apr 2012 12:40:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=E0ezQBGYw/Ge+Gze0NxZE3LNKsqL1NGRNeiqJ+ztQC8=; b=KgRPu+TSl5gzQU+oOno5LEfqEboi7FPaDBZUiaRglEA9AWaMZ4EUkX3ODWzdabAtvD kFDgjpStT5mMxKTThJiQUr1NyCCQhuOKZU9qVJnSc+lwZHSxbm3vqWz2Stawz8U7Viy5 k2RbuMAl31S+QzKjaPOyG5csHerKbd6coKiHnrfaO7ujbpR0Uj5oNw07Q0zL6gJTJHey NCmEx0idcdTI94l96qM1gsFYPNznMC4PaA3VYa4+p2lMYqPv6sj0hcuYiIoUfN6ZrncJ oJDHVWl+IQVvP8cUM7JmgM/rYJNKubqs9lNyIiO4qcjPbSrb1ZjPRcJqkpE0WqpZ4oWg OolQ== MIME-Version: 1.0 Received: by 10.180.88.199 with SMTP id bi7mr8666639wib.12.1334259627043; Thu, 12 Apr 2012 12:40:27 -0700 (PDT) Received: by 10.180.104.98 with HTTP; Thu, 12 Apr 2012 12:40:27 -0700 (PDT) In-Reply-To: <20120412183849.GA2358@deviant.kiev.zoral.com.ua> References: <20120407133715.GU2358@deviant.kiev.zoral.com.ua> <20120408051125.GA2358@deviant.kiev.zoral.com.ua> <201204091219.39580.jhb@freebsd.org> <20120412183849.GA2358@deviant.kiev.zoral.com.ua> Date: Thu, 12 Apr 2012 15:40:27 -0400 Message-ID: From: Ryan Stone To: Konstantin Belousov Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: jfv@freebsd.org, Jack Vogel , John Baldwin , net@freebsd.org Subject: Re: 82574L hangs (with r233708 e1000 driver). 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, 12 Apr 2012 19:40:28 -0000 On Thu, Apr 12, 2012 at 2:38 PM, Konstantin Belousov wrote: > And, on receive, the atom board does receive interrupts, em0:rx 0 counter > in vmstat -i increases. Even more fun, the sysctl dev.em.0.debug > shows increasing hw rdh (as I understand, this is hardware 'last > received' packet pointer for rx ring). So I looked at the packet > descriptor at hw rdt index, and there I see > (kgdb) p/x ((struct adapter *)0xffffff80010e4000)->rx_rings->rx_base[78] > $11 =3D {buffer_addr =3D 0x12a128800, length =3D 0x5ea, csum =3D 0x3c2b, = status =3D 0x0, > =A0errors =3D 0x0, special =3D 0x0} This looks like a buffer address, not a written-back descriptor(0x12a128800 being aligned to a 2048 byte boundary is a big clue). Is it easy to check the mbuf in rx_rings->rx_buffers[78].m_head and see whether the buffer in the mbuf there has that physical address? If that is a buffer address then the driver must be updating descriptors in rx_base that are owned by hardware, or somehow forgetting to update rdt and rxr->next_to_check.