From owner-freebsd-net@freebsd.org Fri Apr 29 01:19:10 2016 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CBAABB13E2B for ; Fri, 29 Apr 2016 01:19:10 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from reviews.nyi.freebsd.org (reviews.nyi.freebsd.org [IPv6:2610:1c1:1:607c::16:b]) by mx1.freebsd.org (Postfix) with ESMTP id 9BCBF1A45 for ; Fri, 29 Apr 2016 01:19:10 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by reviews.nyi.freebsd.org (Postfix, from userid 1346) id D53A6CE69; Fri, 29 Apr 2016 01:19:09 +0000 (UTC) Date: Fri, 29 Apr 2016 01:19:09 +0000 To: freebsd-net@freebsd.org From: "sepherosa_gmail.com (Sepherosa Ziehau)" Reply-to: D6137+325+f015369c65104c2f@reviews.freebsd.org Subject: [Differential] D6137: tcp/lro: Refactor the free/active list operation. Message-ID: <5940e8d47a5a30d620595d7e2194e404@localhost.localdomain> X-Priority: 3 X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: Thread-Topic: D6137: tcp/lro: Refactor the free/active list operation. X-Herald-Rules: <64> X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: Precedence: bulk In-Reply-To: References: Thread-Index: ZDQ3OTAzM2ZhZTk0ODRmZGQwZGYxNDFlY2ZjIFcito0= MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.21 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2016 01:19:10 -0000 sepherosa_gmail.com added a comment. In https://reviews.freebsd.org/D6137#130603, @gallatin wrote: > The tcp_lro_entry_get() abstraction adds an extra compare to the critical path (the compare against NULL in the function itself, in addition to the same compare in the main routine). At least it does at the C level. Have you verified that the compiler is smart enough to continue to use a single compare? > > If this adds an extra compare to the actual executed code, then I object. OK, I see your concern. I think instead of depending on the compiler, we probably just leave the original code for the free list unchanged :). REVISION DETAIL https://reviews.freebsd.org/D6137 EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: sepherosa_gmail.com, network, transport, adrian, delphij, glebius, hselasky, np, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com, gallatin, rrs Cc: freebsd-net-list