From owner-freebsd-net@FreeBSD.ORG Tue Jan 29 04:14:03 2013 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 4316F668; Tue, 29 Jan 2013 04:14:03 +0000 (UTC) (envelope-from neelnatu@gmail.com) Received: from mail-ia0-x22c.google.com (ia-in-x022c.1e100.net [IPv6:2607:f8b0:4001:c02::22c]) by mx1.freebsd.org (Postfix) with ESMTP id F1D1F670; Tue, 29 Jan 2013 04:14:02 +0000 (UTC) Received: by mail-ia0-f172.google.com with SMTP id u8so17313iag.31 for ; Mon, 28 Jan 2013 20:14:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=oh1Tppcsix2D/Uc02JkMxGM+RGBJSdLw0YLLB6ja0Vk=; b=uTI6xsXTNvXRDwjHkfFNUtST2MmCs4FzQKz7GCgaFq5A5EZjVzdHmKTxcMAj5nKyuy ll+yZlxGway7GjHR3UuwGN5yaooQUmQpU9z4OOaiRwA5LS4PfxI51uZfJEZ7WBZ7r//V LfWQTHcZEUmaGZBDPNd75LfbpsFxnwqzZy6mqXsaXeRomEapeDPmnC2nIEDPAED/LkY/ E4iAw7SftnYUatOrcicRlLlWpdCpKrSzr5UY8Sv4byHGvecahZQED+HpiEkaMdQ+VuiT xBVhOLtBdf8t+EyaMxAwkLTv4WB6ziyuOY3KPFVjg0roXOlQ83aI7gUwLuTAdBd5Da/S NA4Q== MIME-Version: 1.0 X-Received: by 10.43.17.199 with SMTP id qd7mr59093icb.52.1359432842518; Mon, 28 Jan 2013 20:14:02 -0800 (PST) Received: by 10.43.112.194 with HTTP; Mon, 28 Jan 2013 20:14:02 -0800 (PST) In-Reply-To: References: Date: Mon, 28 Jan 2013 20:14:02 -0800 Message-ID: Subject: Re: e1000 serdes link flap From: Neel Natu To: Jack F Vogel Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-net , Ryan Stone X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2013 04:14:03 -0000 Hi Jack, On Wed, Jan 23, 2013 at 2:58 PM, Ryan Stone wrote: > On Wed, Jan 23, 2013 at 2:13 AM, Neel Natu wrote: >> >> Hi, >> >> I am running into a problem in head with the e1000 link state >> detection logic attached to a 82571EB serdes controller. >> >> The symptom is that the link state keeps flapping between "up" and "down". >> >> After I enabled the debug output in >> 'e1000_check_for_serdes_link_82571()' this is what I see: >> >> e1000_check_for_serdes_link_82571 >> ctrl = 0x4c0241, status = 0x803a7, rxcw = 0x44000000 >> FORCED_UP -> AN_PROG >> em6: link state changed to DOWN >> e1000_check_for_serdes_link_82571 >> ctrl = 0x4c0201, status = 0x803a4, rxcw = 0x44000000 >> AN_PROG -> FORCED_UP >> em6: link state changed to UP >> e1000_check_for_serdes_link_82571 >> ctrl = 0x4c0241, status = 0x803a7, rxcw = 0x44000000 >> FORCED_UP -> AN_PROG >> em6: link state changed to DOWN >> >> >> The problem goes away if I apply the following patch to bring the link >> state detection logic in line with the e1000e driver in Linux: >> >> Index: e1000_82571.c >> =================================================================== >> --- e1000_82571.c (revision 245766) >> +++ e1000_82571.c (working copy) >> @@ -1712,10 +1712,8 @@ >> * auto-negotiation in the TXCW register and >> disable >> * forced link in the Device Control register in >> an >> * attempt to auto-negotiate with our link >> partner. >> - * If the partner code word is null, stop forcing >> - * and restart auto negotiation. >> */ >> - if ((rxcw & E1000_RXCW_C) || !(rxcw & >> E1000_RXCW_CW)) { >> + if ((rxcw & E1000_RXCW_C) != 0) { >> /* Enable autoneg, and unforce link up */ >> E1000_WRITE_REG(hw, E1000_TXCW, >> mac->txcw); >> E1000_WRITE_REG(hw, E1000_CTRL, >> >> I am not sure why the !(rxcw & E1000_RXCW_CW) check was added and the >> e1000 SDM does not have any more information. >> >> Jack, can you take a look at the patch and commit if it looks alright? > > > I have this change applied internally. I thought that it was something > funny in my environment, so I never tried to push it upstream. Sorry for > costing you time in having to debug this. :( Are you planning to commit this patch? I am happy to get you more information from my system if it helps you get to the bottom of this quicker. best Neel