From owner-svn-src-all@freebsd.org Wed Feb 1 16:13:59 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 9FBF9CCB79B; Wed, 1 Feb 2017 16:13:59 +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 1E1ACE3C; Wed, 1 Feb 2017 16:13:58 +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 v11GDsYK036613 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 1 Feb 2017 18:13:54 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua v11GDsYK036613 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id v11GDs2l036612; Wed, 1 Feb 2017 18:13:54 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 1 Feb 2017 18:13:54 +0200 From: Konstantin Belousov To: Alexander Kabaev Cc: Alexander Kabaev , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r313040 - head/sys/mips/include Message-ID: <20170201161354.GF2092@kib.kiev.ua> References: <201702010500.v1150YLR075051@repo.freebsd.org> <20170201141721.GB2092@kib.kiev.ua> <20170201103842.1ad0989f@kan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170201103842.1ad0989f@kan> 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: Wed, 01 Feb 2017 16:13:59 -0000 On Wed, Feb 01, 2017 at 10:38:42AM -0500, Alexander Kabaev wrote: > On Wed, 1 Feb 2017 16:17:21 +0200 > Konstantin Belousov wrote: > > > Please do not retry on sc failure, return the error to upper layer. > > See also r313007 and preceeding discussion after r312973. > > There was not much a discussion there, do you mind expanding a bit on > why one behavior is more desired than other? I am not against the > change, but I need to understand the reasoning behind it better. Since > atomic_cmpset retries too, it will have to be adjusted as well. atomic_cmpset() cannot avoid retry on the ll/sc architectures, because sc might fail even if the old and the new values are same. One of the points of the fcmpset API design is to avoid nested loops: this is a microoptimization to put less pressure on the CPUs frontend. The caller of (f)cmpset must check for failure anyway, so not doing this inside the function reduces number of branches. Less branches makes code shorter, and reduces utilization of some CPU resources, like branch predictor state.