From owner-svn-src-head@FreeBSD.ORG Sun Jul 20 04:11:18 2014 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BB549C8D; Sun, 20 Jul 2014 04:11:18 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A91022D2A; Sun, 20 Jul 2014 04:11:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s6K4BICp084818; Sun, 20 Jul 2014 04:11:18 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s6K4BI3u084817; Sun, 20 Jul 2014 04:11:18 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201407200411.s6K4BI3u084817@svn.freebsd.org> From: Adrian Chadd Date: Sun, 20 Jul 2014 04:11:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r268907 - head/sys/dev/ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2014 04:11:18 -0000 Author: adrian Date: Sun Jul 20 04:11:18 2014 New Revision: 268907 URL: http://svnweb.freebsd.org/changeset/base/268907 Log: Correctly program the RSS redirection table entries. Without this, the RSS bucket assignments aren't correct - they're DCBA instead of ABCD in each DWORD. Tested: 82599EB ixgbe(4), TCP and UDP RSS Modified: head/sys/dev/ixgbe/ixgbe.c Modified: head/sys/dev/ixgbe/ixgbe.c ============================================================================== --- head/sys/dev/ixgbe/ixgbe.c Sun Jul 20 02:38:58 2014 (r268906) +++ head/sys/dev/ixgbe/ixgbe.c Sun Jul 20 04:11:18 2014 (r268907) @@ -4230,10 +4230,16 @@ ixgbe_initialise_rss_mapping(struct adap #else queue_id = (j * 0x11); #endif - /* XXX endian? */ - reta = (reta << 8) | queue_id; - if ((i & 3) == 3) + /* + * The low 8 bits are for hash value (n+0); + * The next 8 bits are for hash value (n+1), etc. + */ + reta = reta >> 8; + reta = reta | ( ((uint32_t) queue_id) << 24); + if ((i & 3) == 3) { IXGBE_WRITE_REG(hw, IXGBE_RETA(i >> 2), reta); + reta = 0; + } } /* Now fill our hash function seeds */