From owner-svn-src-all@freebsd.org Tue Feb 7 15:28:53 2017 Return-Path: Delivered-To: svn-src-all@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 5FC50CD5459; Tue, 7 Feb 2017 15:28:53 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (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 D0A3B191F; Tue, 7 Feb 2017 15:28:52 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id v17FSmDl074832 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 7 Feb 2017 17:28:48 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua v17FSmDl074832 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id v17FSmdK074831; Tue, 7 Feb 2017 17:28:48 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 7 Feb 2017 17:28:48 +0200 From: Konstantin Belousov To: Mateusz Guzik Cc: Edward Tomasz Napierala , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r313352 - in head/sys: compat/cloudabi compat/freebsd32 compat/linux vm Message-ID: <20170207152848.GC2092@kib.kiev.ua> References: <201702062057.v16KvCtI069664@repo.freebsd.org> <20170207135014.GC4772@dft-labs.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170207135014.GC4772@dft-labs.eu> User-Agent: Mutt/1.7.2 (2016-11-26) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Feb 2017 15:28:53 -0000 On Tue, Feb 07, 2017 at 02:50:15PM +0100, Mateusz Guzik wrote: > Can we start dropping the td argument? It always is curthread and > almost always has to be anyway as something down below accesses > data in a manner only safe for curthread (classic: credential checks). > > With this example the function takes 7 args. So the commit added an > indirection which cannot be tail called on amd64 due to the 7th argument > passed through the stack. Removing the td argument deals with the > problem. OTOH accessing current thread as curthread adds some number of instructions with %gs prefixes. On older machines, this caused bubbles in the frontend decoding of the instructions, which made using plain pointer instead of the magical curthread reasonable. Modern big processors should not have the problem anymore, but smaller designs like Atom still do. I suspect it is quite hard to notice a difference there, either with %gs decoding overhead, or with the missed tail call optimization, for the vm syscalls which are quite slow on its own. The effects of both micro- optimizations should be noise.