From owner-svn-src-all@freebsd.org Tue Jul 14 16:07:05 2015 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 D29A69A16E9; Tue, 14 Jul 2015 16:07:05 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4CAF8B68; Tue, 14 Jul 2015 16:07:05 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id t6EG70I2013515 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Tue, 14 Jul 2015 19:07:00 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.9.2 kib.kiev.ua t6EG70I2013515 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id t6EG70JO013514; Tue, 14 Jul 2015 19:07:00 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 14 Jul 2015 19:06:59 +0300 From: Konstantin Belousov To: Ed Schouten Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r285540 - in head/sys/compat: cloudabi cloudabi64 Message-ID: <20150714160659.GY2404@kib.kiev.ua> References: <201507141511.t6EFBoNg056572@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201507141511.t6EFBoNg056572@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) 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.20 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, 14 Jul 2015 16:07:05 -0000 On Tue, Jul 14, 2015 at 03:11:50PM +0000, Ed Schouten wrote: > Author: ed > Date: Tue Jul 14 15:11:50 2015 > New Revision: 285540 > URL: https://svnweb.freebsd.org/changeset/base/285540 > > Log: > Implement thread_tcb_set() and thread_yield(). > > The first system call is used to set the user TLS address. Right now > this system call is invoked by the C library for both the initial thread > and additional threads unconditionally, but in the future we'll only > call this if the architecture does not support this. On recent x86-64 > CPUs we could use the WRFSBASE instruction. You cannot use WRFSBASE, kernel does not support this. On the next return from the syscall, or on the next context switch, the bases are overwritten with the values supplied by the sysarch({AMD64,I386}_SET_{F,G}SBASE). I enabled the CR4 bit to make the read instruction accessible to usermode, but write base requires additional code. Since it would lead to at least one more branch in the doreti path, I did not implemented this.