From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4AE59C07E9D for ; Sat, 24 Sep 2022 23:16:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pxxxYpnINZM/vHfY5aDCtOoEsFM0yCq3tLHGXLn6WOI=; b=mq33gHES1IZoKH 8ehSZjXIra1k8F8WeEOT1dCELNCtoaiT+8YjbaMFed37/K7PiES91wvHgaQK5369hhEswzQoi7fd3 0Lofm+fFVS2zlelOSVh2S6juVde1YeXSDomjlznC0KX3Zw6ZwI0gPq/IY4/9hWn10affz+kEKzTVw N2VXsj9eGNi3+zpsyvvZa0zGC9Zp9DAR4JhOZw2sx2hXvdLfj3LbGOUoN8sy6t2kUIx9j2Pg/wtmr rQsS9aQ9sXzGuEvpBo3YpCsPb/qACfhp/PQOM6UCRS+736LXmTHYoUhuekZb14mXTEANspCwd80EG 7pJEbfK7IAMMBXB7b1PA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ocENA-009eO9-5c; Sat, 24 Sep 2022 23:15:48 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ocEN6-009eMG-6e for linux-riscv@lists.infradead.org; Sat, 24 Sep 2022 23:15:46 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id B459EB80C81; Sat, 24 Sep 2022 23:15:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80A4DC433D6; Sat, 24 Sep 2022 23:15:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664061341; bh=GkiatAoobCYdsPQc3GSiPLLlIlPLkgbApD9SWYl3+Ec=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=c7zjsoNY/yeumQQhE/sbT4h4qy5z+JxjYY7+8gNqGXefd8CfKlqGsVa1OP0WkdC3F awAXgForwyGrgLGqBMFyDf4MHrc5o8Mbh28mTGlO5WChoF6tzXIQCWOVAGV3inI+uB u5QWGL10IsQYz1sHDtFfFvsNznKX/lved0jmFqhvDbP3+gPEie1sTh49KkTKLwFRtJ tJYEmj2IGxT6H3vPiV3Ny/+TBv7Dwnmw+1q3hL5wWHH9e+M7nqqGrRLYRzpnO0/C8r AeOq94PI/Q4+RhMyU5mBTOIXYQmmwRFeSoBnh1ptODVSjdGHTov3RI0g4Oqguz+qFo /FOmm1oxRAqpA== Date: Sun, 25 Sep 2022 00:15:35 +0100 From: Conor Dooley To: Atish Patra Cc: Heiko Stuebner , Conor Dooley , Jessica Clarke , Palmer Dabbelt , linux-riscv , Samuel Holland , Albert Ou , Anup Patel , Atish Patra , Dao Lu , Guo Ren , Jisheng Zhang , Paul Walmsley , linux-kernel@vger.kernel.org Subject: Re: [PATCH] riscv: Fix build with CONFIG_CC_OPTIMIZE_FOR_SIZE=y Message-ID: References: <20220922060958.44203-1-samuel@sholland.org> <2546376.ElGaqSPkdT@phil> <2E96A836-764D-4D07-AB79-3861B9CC2B1F@jrtc27.com> <13396584.uLZWGnKmhe@phil> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220924_161544_565294_E24FB81B X-CRM114-Status: GOOD ( 52.10 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gRnJpLCBTZXAgMjMsIDIwMjIgYXQgMTE6MDE6MjhBTSAtMDcwMCwgQXRpc2ggUGF0cmEgd3Jv dGU6Cj4gT24gRnJpLCBTZXAgMjMsIDIwMjIgYXQgMTI6MTggQU0gSGVpa28gU3R1ZWJuZXIgPGhl aWtvQHNudGVjaC5kZT4gd3JvdGU6Cj4gPgo+ID4gSGksCj4gPgo+ID4gQW0gRG9ubmVyc3RhZywg MjIuIFNlcHRlbWJlciAyMDIyLCAxNzo1Mjo0NiBDRVNUIHNjaHJpZWIgSmVzc2ljYSBDbGFya2U6 Cj4gPiA+IE9uIDIyIFNlcHQgMjAyMiwgYXQgMTY6NDUsIEhlaWtvIFN0dWVibmVyIDxoZWlrb0Bz bnRlY2guZGU+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gQW0gRG9ubmVyc3RhZywgMjIuIFNlcHRl bWJlciAyMDIyLCAwODowOTo1OCBDRVNUIHNjaHJpZWIgU2FtdWVsIEhvbGxhbmQ6Cj4gPiA+ID4+ IGNvbW1pdCA4ZWIwNjBlMTAxODUgKCJhcmNoL3Jpc2N2OiBhZGQgWmloaW50cGF1c2Ugc3VwcG9y dCIpIGJyb2tlCj4gPiA+ID4+IGJ1aWxkaW5nIHdpdGggQ09ORklHX0NDX09QVElNSVpFX0ZPUl9T SVpFIGVuYWJsZWQgKGdjYyAxMS4xLjApOgo+ID4gPiA+Pgo+ID4gPiA+PiBDQyBhcmNoL3Jpc2N2 L2tlcm5lbC92ZHNvL3ZnZXR0aW1lb2ZkYXkubwo+ID4gPiA+PiBJbiBmaWxlIGluY2x1ZGVkIGZy b20gPGNvbW1hbmQtbGluZT46Cj4gPiA+ID4+IC4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9qdW1w X2xhYmVsLmg6IEluIGZ1bmN0aW9uICdjcHVfcmVsYXgnOgo+ID4gPiA+PiAuLy4vaW5jbHVkZS9s aW51eC9jb21waWxlcl90eXBlcy5oOjI4NTozMzogd2FybmluZzogJ2FzbScgb3BlcmFuZCAwIHBy b2JhYmx5IGRvZXMgbm90IG1hdGNoIGNvbnN0cmFpbnRzCj4gPiA+ID4+IDI4NSB8ICNkZWZpbmUg YXNtX3ZvbGF0aWxlX2dvdG8oeC4uLikgYXNtIGdvdG8oeCkKPiA+ID4gPj4gfCBefn4KPiA+ID4g Pj4gLi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaDo0MTo5OiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8gJ2FzbV92b2xhdGlsZV9nb3RvJwo+ID4gPiA+PiA0MSB8IGFzbV92 b2xhdGlsZV9nb3RvKAo+ID4gPiA+PiB8IF5+fn5+fn5+fn5+fn5+fn5+Cj4gPiA+ID4+IC4vLi9p bmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmg6Mjg1OjMzOiBlcnJvcjogaW1wb3NzaWJsZSBj b25zdHJhaW50IGluICdhc20nCj4gPiA+ID4+IDI4NSB8ICNkZWZpbmUgYXNtX3ZvbGF0aWxlX2dv dG8oeC4uLikgYXNtIGdvdG8oeCkKPiA+ID4gPj4gfCBefn4KPiA+ID4gPj4gLi9hcmNoL3Jpc2N2 L2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaDo0MTo5OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFj cm8gJ2FzbV92b2xhdGlsZV9nb3RvJwo+ID4gPiA+PiA0MSB8IGFzbV92b2xhdGlsZV9nb3RvKAo+ ID4gPiA+PiB8IF5+fn5+fn5+fn5+fn5+fn5+Cj4gPiA+ID4+IG1ha2VbMV06ICoqKiBbc2NyaXB0 cy9NYWtlZmlsZS5idWlsZDoyNDk6IGFyY2gvcmlzY3Yva2VybmVsL3Zkc28vdmdldHRpbWVvZmRh eS5vXSBFcnJvciAxCj4gPiA+ID4+IG1ha2U6ICoqKiBbYXJjaC9yaXNjdi9NYWtlZmlsZToxMjg6 IHZkc29fcHJlcGFyZV0gRXJyb3IgMgo+ID4gPiA+Pgo+ID4gPiA+PiBIYXZpbmcgYSBzdGF0aWMg YnJhbmNoIGluIGNwdV9yZWxheCgpIGlzIHByb2JsZW1hdGljIGJlY2F1c2UgdGhhdAo+ID4gPiA+ PiBmdW5jdGlvbiBpcyB3aWRlbHkgaW5saW5lZCwgaW5jbHVkaW5nIGluIHNvbWUgcXVpdGUgY29t cGxleCBmdW5jdGlvbnMKPiA+ID4gPj4gbGlrZSBpbiB0aGUgVkRTTy4gQSBxdWljayBtZWFzdXJl bWVudCBzaG93cyB0aGlzIHN0YXRpYyBicmFuY2ggaXMKPiA+ID4gPj4gcmVzcG9uc2libGUgYnkg aXRzZWxmIGZvciBhcm91bmQgNDAlIG9mIHRoZSBqdW1wIHRhYmxlLgo+ID4gPiA+Pgo+ID4gPiA+ PiBEcm9wIHRoZSBzdGF0aWMgYnJhbmNoLCB3aGljaCBlbmRzIHVwIGJlaW5nIHRoZSBzYW1lIG51 bWJlciBvZgo+ID4gPiA+PiBpbnN0cnVjdGlvbnMgYW55d2F5LiBJZiBaaWhpbnRwYXVzZSBpcyBz dXBwb3J0ZWQsIHdlIHRyYWRlIHRoZSBub3AgZnJvbQo+ID4gPiA+PiB0aGUgc3RhdGljIGJyYW5j aCBmb3IgYSBkaXYuIElmIFppaGludHBhdXNlIGlzIHVuc3VwcG9ydGVkLCB3ZSB0cmFkZSB0aGUK PiA+ID4gPj4ganVtcCBmcm9tIHRoZSBzdGF0aWMgYnJhbmNoIGZvciAod2hhdCBnZXRzIGludGVy cHJldGVkIGFzKSBhIG5vcC4KPiA+ID4gPj4KPiA+ID4gPj4gRml4ZXM6IDhlYjA2MGUxMDE4NSAo ImFyY2gvcmlzY3Y6IGFkZCBaaWhpbnRwYXVzZSBzdXBwb3J0IikKPiA+ID4gPj4gU2lnbmVkLW9m Zi1ieTogU2FtdWVsIEhvbGxhbmQgPHNhbXVlbEBzaG9sbGFuZC5vcmc+Cj4gPiA+ID4+IC0tLQo+ ID4gPiA+Pgo+ID4gPiA+PiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2h3Y2FwLmggfCAzIC0tLQo+ ID4gPiA+PiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Zkc28vcHJvY2Vzc29yLmggfCAyNSArKysr KysrKysrLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4+IDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0 aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCj4gPiA+ID4+Cj4gPiA+ID4+IGRpZmYgLS1naXQgYS9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2h3Y2FwLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2h3 Y2FwLmgKPiA+ID4gPj4gaW5kZXggNmY1OWVjNjQxNzVlLi5iMjFkNDZlNjgzODYgMTAwNjQ0Cj4g PiA+ID4+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdjYXAuaAo+ID4gPiA+PiArKysg Yi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2h3Y2FwLmgKPiA+ID4gPj4gQEAgLTY4LDcgKzY4LDYg QEAgZW51bSByaXNjdl9pc2FfZXh0X2lkIHsKPiA+ID4gPj4gKi8KPiA+ID4gPj4gZW51bSByaXNj dl9pc2FfZXh0X2tleSB7Cj4gPiA+ID4+ICAgIFJJU0NWX0lTQV9FWFRfS0VZX0ZQVSwgICAgICAg ICAgLyogRm9yICdGJyBhbmQgJ0QnICovCj4gPiA+ID4+IC0gIFJJU0NWX0lTQV9FWFRfS0VZX1pJ SElOVFBBVVNFLAo+ID4gPiA+PiAgICBSSVNDVl9JU0FfRVhUX0tFWV9NQVgsCj4gPiA+ID4+IH07 Cj4gPiA+ID4+Cj4gPiA+ID4+IEBAIC04OCw4ICs4Nyw2IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxp bmUgaW50IHJpc2N2X2lzYV9leHQya2V5KGludCBudW0pCj4gPiA+ID4+ICAgICAgICAgICAgcmV0 dXJuIFJJU0NWX0lTQV9FWFRfS0VZX0ZQVTsKPiA+ID4gPj4gICAgY2FzZSBSSVNDVl9JU0FfRVhU X2Q6Cj4gPiA+ID4+ICAgICAgICAgICAgcmV0dXJuIFJJU0NWX0lTQV9FWFRfS0VZX0ZQVTsKPiA+ ID4gPj4gLSAgY2FzZSBSSVNDVl9JU0FfRVhUX1pJSElOVFBBVVNFOgo+ID4gPiA+PiAtICAgICAg ICAgIHJldHVybiBSSVNDVl9JU0FfRVhUX0tFWV9aSUhJTlRQQVVTRTsKPiA+ID4gPj4gICAgZGVm YXVsdDoKPiA+ID4gPj4gICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ID4gPj4gICAgfQo+ ID4gPiA+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS92ZHNvL3Byb2Nlc3Nv ci5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS92ZHNvL3Byb2Nlc3Nvci5oCj4gPiA+ID4+IGlu ZGV4IDFlNGY4YjRhZWY3OS4uNzg5YmRiODIxMWEyIDEwMDY0NAo+ID4gPiA+PiAtLS0gYS9hcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL3Zkc28vcHJvY2Vzc29yLmgKPiA+ID4gPj4gKysrIGIvYXJjaC9y aXNjdi9pbmNsdWRlL2FzbS92ZHNvL3Byb2Nlc3Nvci5oCj4gPiA+ID4+IEBAIC00LDMwICs0LDI1 IEBACj4gPiA+ID4+Cj4gPiA+ID4+ICNpZm5kZWYgX19BU1NFTUJMWV9fCj4gPiA+ID4+Cj4gPiA+ ID4+IC0jaW5jbHVkZSA8bGludXgvanVtcF9sYWJlbC5oPgo+ID4gPiA+PiAjaW5jbHVkZSA8YXNt L2JhcnJpZXIuaD4KPiA+ID4gPj4gLSNpbmNsdWRlIDxhc20vaHdjYXAuaD4KPiA+ID4gPj4KPiA+ ID4gPj4gc3RhdGljIGlubGluZSB2b2lkIGNwdV9yZWxheCh2b2lkKQo+ID4gPiA+PiB7Cj4gPiA+ ID4+IC0gIGlmICghc3RhdGljX2JyYW5jaF9saWtlbHkoJnJpc2N2X2lzYV9leHRfa2V5c1tSSVND Vl9JU0FfRVhUX0tFWV9aSUhJTlRQQVVTRV0pKSB7Cj4gPiA+ID4+ICNpZmRlZiBfX3Jpc2N2X211 bGRpdgo+ID4gPiA+PiAtICAgICAgICAgIGludCBkdW1teTsKPiA+ID4gPj4gLSAgICAgICAgICAv KiBJbiBsaWV1IG9mIGEgaGFsdCBpbnN0cnVjdGlvbiwgaW5kdWNlIGEgbG9uZy1sYXRlbmN5IHN0 YWxsLiAqLwo+ID4gPiA+PiAtICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgiZGl2ICUw LCAlMCwgemVybyIgOiAiPXIiIChkdW1teSkpOwo+ID4gPiA+PiArICBpbnQgZHVtbXk7Cj4gPiA+ ID4+ICsgIC8qIEluIGxpZXUgb2YgYSBoYWx0IGluc3RydWN0aW9uLCBpbmR1Y2UgYSBsb25nLWxh dGVuY3kgc3RhbGwuICovCj4gPiA+ID4+ICsgIF9fYXNtX18gX192b2xhdGlsZV9fICgiZGl2ICUw LCAlMCwgemVybyIgOiAiPXIiIChkdW1teSkpOwo+ID4gPiA+PiAjZW5kaWYKPiA+ID4gPj4gLSAg fSBlbHNlIHsKPiA+ID4gPj4gLSAgICAgICAgICAvKgo+ID4gPiA+PiAtICAgICAgICAgICAqIFJl ZHVjZSBpbnN0cnVjdGlvbiByZXRpcmVtZW50Lgo+ID4gPiA+PiAtICAgICAgICAgICAqIFRoaXMg YXNzdW1lcyB0aGUgUEMgY2hhbmdlcy4KPiA+ID4gPj4gLSAgICAgICAgICAgKi8KPiA+ID4gPj4g KyAgLyoKPiA+ID4gPj4gKyAgICogUmVkdWNlIGluc3RydWN0aW9uIHJldGlyZW1lbnQuCj4gPiA+ ID4+ICsgICAqIFRoaXMgYXNzdW1lcyB0aGUgUEMgY2hhbmdlcy4KPiA+ID4gPj4gKyAgICovCj4g PiA+ID4+ICNpZmRlZiBfX3Jpc2N2X3ppaGludHBhdXNlCj4gPiA+ID4+IC0gICAgICAgICAgX19h c21fXyBfX3ZvbGF0aWxlX18gKCJwYXVzZSIpOwo+ID4gPiA+PiArICBfX2FzbV9fIF9fdm9sYXRp bGVfXyAoInBhdXNlIik7Cj4gPiA+ID4+ICNlbHNlCj4gPiA+ID4+IC0gICAgICAgICAgLyogRW5j b2Rpbmcgb2YgdGhlIHBhdXNlIGluc3RydWN0aW9uICovCj4gPiA+ID4+IC0gICAgICAgICAgX19h c21fXyBfX3ZvbGF0aWxlX18gKCIuNGJ5dGUgMHgxMDAwMDBGIik7Cj4gPiA+ID4+ICsgIC8qIEVu Y29kaW5nIG9mIHRoZSBwYXVzZSBpbnN0cnVjdGlvbiAqLwo+ID4gPiA+PiArICBfX2FzbV9fIF9f dm9sYXRpbGVfXyAoIi40Ynl0ZSAweDEwMDAwMEYiKTsKPiA+ID4gPj4gI2VuZGlmCj4gPiA+ID4K PiA+ID4gPiBobW0sIHRob3VnaCBiZWZvcmUgdGhpcyBwYXJ0IG9mIHRoZSBjb2RlIHdhcyBvbmx5 IGV2ZXIgYWNjZXNzZWQKPiA+ID4gPiB3aGVuIHRoZSB6aGludHBhdXNlIGV4dGVuc2lvbiB3YXMg cmVhbGx5IGF2YWlsYWJsZSBvbiB0aGUgcnVubmluZwo+ID4gPiA+IG1hY2hpbmUgd2hpbGUgbm93 IHRoZSBwYXVzZSBpbnN0cnVjdGlvbiBpcyBjYWxsZWQgZXZlcnkgdGltZS4KPiA+ID4gPgo+ID4g PiA+IFNvIEknbSBqdXN0IHdvbmRlcmluZywgY2FuJ3QgdGhpcyBydW4gaW50byBzb21lICJpbGxl Z2FsIGluc3RydWN0aW9uIgo+ID4gPiA+IHRoaW5neSBvbiBtYWNoaW5lcyBub3Qgc3VwcG9ydGlu ZyB0aGUgZXh0ZW5zaW9uPwo+ID4gPgo+ID4gPiBOby4gVGhlIGVuY29kaW5nIGZvciBwYXVzZSB3 YXMgZGVsaWJlcmF0ZWx5IGNob3NlbiB0byBiZSBvbmUgb2YgdGhlCj4gPiA+IOKAnHVzZWxlc3Pi gJ0gZW5jb2RpbmdzIG9mIGZlbmNlLCB3aXRoIHRoZSBob3BlIHRoYXQgZXhpc3RpbmcKPiA+ID4g bWljcm9hcmNoaXRlY3R1cmVzIG1pZ2h0IHRha2UgYSB3aGlsZSB0byBleGVjdXRlIGl0IGFuZCB0 aHVzIGl0IHdvdWxkCj4gPiA+IHN0aWxsIGZ1bmN0aW9uIGFzIGEgc2xvdy1ydW5uaW5nIGluc3Ry dWN0aW9uLiBJdOKAmXMgc29tZXdoYXQKPiA+ID4gcXVlc3Rpb25hYmxlIHdoZXRoZXIgdGhlIGRp diBpcyBldmVuIG5lZWRlZCwgdGhlIHdvcnN0IHRoYXQgaGFwcGVucyBpcwo+ID4gPiBjcHVfcmVs YXggaXNu4oCZdCB2ZXJ5IHJlbGF4ZWQgYW5kIHlvdSBzcGluIGEgYml0IGZhc3Rlci4gQW55Cj4g PiA+IGltcGxlbWVudGF0aW9ucyB3aGVyZSB0aGF04oCZcyB0cnVlIHByb2JhYmx5IGFsc28gZG9u 4oCZdCBoYXZlIGZhbmN5Cj4gPiA+IGNsb2NrL3Bvd2VyIG1hbmFnZW1lbnQgYW55d2F5LCBhbmQg ZGl2IGlzbuKAmXQgZ29pbmcgdG8gYmUgYSBsb3ctcG93ZXIKPiA+ID4gb3BlcmF0aW9uIHNvIHRo ZSBvbmx5IHJlYWwgZWZmZWN0IGlzIGxpa2VseSBoYW1tZXJpbmcgb24gY29udGVuZGVkCj4gPiA+ IGF0b21pY3MgYSBiaXQgbW9yZSwgYW5kIHdobyBjYXJlcyBhYm91dCB0aGF0IG9uIHRoZSBsb3cg Y29yZSBjb3VudAo+ID4gPiBzeXN0ZW1zIHdlIGhhdmUgdG9kYXkuCj4gPgo+ID4gdGhhbmtzIGEg bG90IGZvciB0aGF0IGV4cGxhbmF0aW9uLCB3aGljaCBtYWRlIHRoaW5ncyBhIGxvdCBjbGVhcmVy Lgo+ID4KPiA+IFNvIGFzIHlvdSBzYWlkLCBkcm9wcGluZyB0aGUgZGl2IHBhcnQgbWlnaHQgbWFr ZSB0aGUgZnVuY3Rpb24gZXZlbiBzbWFsbGVyLAo+ID4gdGhvdWdoIHNvbWVob3cgcGFydCBvZiBt ZSB3b3VsZCB3YW50IHRvIGFkZCBzb21lIHNvcnQgb2YgY29tbWVudCB0bwo+ID4gdGhlIGZ1bmN0 aW9uIGZvciB3aGVuIHRoZSBuZXh0IGRldmVsb3BlciBzdHVtYmxlcyBvdmVyIHRoZSB1bmNvbmRp dGlvbmFsCj4gPiB1c2Ugb2YgcGF1c2UgOi0pIC4KPiA+Cj4gCj4gSSBhZ3JlZS4gSWYgdGhhdCdz IHdoYXQgbWljcm9hcmNoIHdpbGwgZG8sIHdlIGNhbiBkcm9wIGRpdiBhbHRvZ2V0aGVyLgo+IFRo b3VnaCBtaWNyb2FyY2ggbWF5IGJlIHRyZWF0ZWQgYXMgbm9wIGV2ZW4gaWYgaXQgaXMgdW5kZXNp cmFibGUuCj4gSUlSQywgdGhlIGRpdiB3YXMgaW50cm9kdWNlZCBmb3IgdGhlIHJvY2tldCBjaGlw IHdoaWNoIHdvdWxkIGluZHVjZSBhCj4gbG9uZyBsYXRlbmN5IHN0YWxsIHdpdGggZGl2IGluc3Ry dWN0aW9uICh6ZXJvIGFzIG9wZXJhbmRzKS4KPiAKPiBEb2VzIGFueSBvdGhlciBjb3JlIG9yIG5l d2VyIHJvY2tldCBjaGlwIGFjdHVhbGx5IGluZHVjZSBhIGxhdGVuY3kKPiBzdGFsbCB3aXRoIGRp diBpbnN0cnVjdGlvbiA/Cj4gSWYgbm90LCBpdCBpcyBlcXVpdmFsZW50IHRvIE5PUCBhcyB3ZWxs LiBXZSBjYW4gZGVmaW5pdGVseSByZW1vdmUgdGhlIGRpdi4KPiBUaGUgb25seSBjb3JlcyBhZmZl Y3RlZCB3aWxsIGJlIHRoZSBvbGRlciByb2NrZXQgY29yZS4KPiAKPiBUYWdnaW5nIHNvbWUgZm9s a3MgdG8gdW5kZXJzdGFuZCB3aGF0IHRoZWlyIGNvcmUgZG9lcy4KPiAKPiBAUGF1bCBXYWxtc2xl eSBAR3VvIFJlbiBAQ29ub3IgRG9vbGV5ID8KCkkgYW0gbm8gbWljcm9hcmNoIGV4cGVydCBieSBf YW55XyBzdHJldGNoIG9mIHRoZSBpbWFnaW5hdGlvbiwgYnV0CmZyb20gYSBxdWljayBleHBlcmlt ZW50IGl0IGxvb2tzIGxpa2UgdGhlIHU1NHMgb24gUG9sYXJGaXJlIFNvQyBiZWhhdmUKaW4gdGhl IHNhbWUgd2F5LCBhbmQgZGl2IHcvIHplcm8gb3BlcmFuZHMgZG9lcyBpbiBmYWN0IHRha2Ugc2ln bmlmaWNhbnRseQpsb25nZXIgdGhhbiByZWd1bGFyIGRpdmlzaW9uIChsb29rcyB0byBiZSBhYm91 dCAzeCkuCgpIb3BlIHRoYXQncyBoZWxwZnVsLApDb25vci4KCihJIGp1c3QgZGlkIGEgcXVpY2sg Y2hlY2sgb2Ygd2hhdCBwcmV0dHkgbXVjaCBhbW91bnRlZCB0byBhIGJ1bmNoIG9mCmRpdiBhNSx6 ZXJvLHplcm8gaW4gYSByb3cgdmVyc3VzIGRpdiBhNSxhNSxhNSkKCj4gCj4gKFBsZWFzZSBhZGQg YW55Ym9keSB3aG8gbWF5IGhhdmUgYW4gaW5zaWdodCB0byBleGVjdXRpb24gZmxvdyBvbgo+IGV4 aXN0aW5nIExpbnV4IGNhcGFibGUgY29yZXMpCj4gCj4gPgo+ID4gSGVpa28KPiA+Cj4gPgo+ID4K PiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBs aW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKPiA+IGxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5v cmcKPiA+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt cmlzY3YKPiAKPiAKPiAKPiAtLQo+IFJlZ2FyZHMsCj4gQXRpc2gKPiAKPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGxpbnV4LXJpc2N2IG1haWxpbmcg bGlzdAo+IGxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKPiBodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QK bGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8EC0BC07E9D for ; Sat, 24 Sep 2022 23:15:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234007AbiIXXPs (ORCPT ); Sat, 24 Sep 2022 19:15:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59150 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229690AbiIXXPq (ORCPT ); Sat, 24 Sep 2022 19:15:46 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5FCEE3A48A for ; Sat, 24 Sep 2022 16:15:44 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id EB607B80E36 for ; Sat, 24 Sep 2022 23:15:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80A4DC433D6; Sat, 24 Sep 2022 23:15:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664061341; bh=GkiatAoobCYdsPQc3GSiPLLlIlPLkgbApD9SWYl3+Ec=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=c7zjsoNY/yeumQQhE/sbT4h4qy5z+JxjYY7+8gNqGXefd8CfKlqGsVa1OP0WkdC3F awAXgForwyGrgLGqBMFyDf4MHrc5o8Mbh28mTGlO5WChoF6tzXIQCWOVAGV3inI+uB u5QWGL10IsQYz1sHDtFfFvsNznKX/lved0jmFqhvDbP3+gPEie1sTh49KkTKLwFRtJ tJYEmj2IGxT6H3vPiV3Ny/+TBv7Dwnmw+1q3hL5wWHH9e+M7nqqGrRLYRzpnO0/C8r AeOq94PI/Q4+RhMyU5mBTOIXYQmmwRFeSoBnh1ptODVSjdGHTov3RI0g4Oqguz+qFo /FOmm1oxRAqpA== Date: Sun, 25 Sep 2022 00:15:35 +0100 From: Conor Dooley To: Atish Patra Cc: Heiko Stuebner , Conor Dooley , Jessica Clarke , Palmer Dabbelt , linux-riscv , Samuel Holland , Albert Ou , Anup Patel , Atish Patra , Dao Lu , Guo Ren , Jisheng Zhang , Paul Walmsley , linux-kernel@vger.kernel.org Subject: Re: [PATCH] riscv: Fix build with CONFIG_CC_OPTIMIZE_FOR_SIZE=y Message-ID: References: <20220922060958.44203-1-samuel@sholland.org> <2546376.ElGaqSPkdT@phil> <2E96A836-764D-4D07-AB79-3861B9CC2B1F@jrtc27.com> <13396584.uLZWGnKmhe@phil> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 23, 2022 at 11:01:28AM -0700, Atish Patra wrote: > On Fri, Sep 23, 2022 at 12:18 AM Heiko Stuebner wrote: > > > > Hi, > > > > Am Donnerstag, 22. September 2022, 17:52:46 CEST schrieb Jessica Clarke: > > > On 22 Sept 2022, at 16:45, Heiko Stuebner wrote: > > > > > > > > Am Donnerstag, 22. September 2022, 08:09:58 CEST schrieb Samuel Holland: > > > >> commit 8eb060e10185 ("arch/riscv: add Zihintpause support") broke > > > >> building with CONFIG_CC_OPTIMIZE_FOR_SIZE enabled (gcc 11.1.0): > > > >> > > > >> CC arch/riscv/kernel/vdso/vgettimeofday.o > > > >> In file included from : > > > >> ./arch/riscv/include/asm/jump_label.h: In function 'cpu_relax': > > > >> ././include/linux/compiler_types.h:285:33: warning: 'asm' operand 0 probably does not match constraints > > > >> 285 | #define asm_volatile_goto(x...) asm goto(x) > > > >> | ^~~ > > > >> ./arch/riscv/include/asm/jump_label.h:41:9: note: in expansion of macro 'asm_volatile_goto' > > > >> 41 | asm_volatile_goto( > > > >> | ^~~~~~~~~~~~~~~~~ > > > >> ././include/linux/compiler_types.h:285:33: error: impossible constraint in 'asm' > > > >> 285 | #define asm_volatile_goto(x...) asm goto(x) > > > >> | ^~~ > > > >> ./arch/riscv/include/asm/jump_label.h:41:9: note: in expansion of macro 'asm_volatile_goto' > > > >> 41 | asm_volatile_goto( > > > >> | ^~~~~~~~~~~~~~~~~ > > > >> make[1]: *** [scripts/Makefile.build:249: arch/riscv/kernel/vdso/vgettimeofday.o] Error 1 > > > >> make: *** [arch/riscv/Makefile:128: vdso_prepare] Error 2 > > > >> > > > >> Having a static branch in cpu_relax() is problematic because that > > > >> function is widely inlined, including in some quite complex functions > > > >> like in the VDSO. A quick measurement shows this static branch is > > > >> responsible by itself for around 40% of the jump table. > > > >> > > > >> Drop the static branch, which ends up being the same number of > > > >> instructions anyway. If Zihintpause is supported, we trade the nop from > > > >> the static branch for a div. If Zihintpause is unsupported, we trade the > > > >> jump from the static branch for (what gets interpreted as) a nop. > > > >> > > > >> Fixes: 8eb060e10185 ("arch/riscv: add Zihintpause support") > > > >> Signed-off-by: Samuel Holland > > > >> --- > > > >> > > > >> arch/riscv/include/asm/hwcap.h | 3 --- > > > >> arch/riscv/include/asm/vdso/processor.h | 25 ++++++++++--------------- > > > >> 2 files changed, 10 insertions(+), 18 deletions(-) > > > >> > > > >> diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h > > > >> index 6f59ec64175e..b21d46e68386 100644 > > > >> --- a/arch/riscv/include/asm/hwcap.h > > > >> +++ b/arch/riscv/include/asm/hwcap.h > > > >> @@ -68,7 +68,6 @@ enum riscv_isa_ext_id { > > > >> */ > > > >> enum riscv_isa_ext_key { > > > >> RISCV_ISA_EXT_KEY_FPU, /* For 'F' and 'D' */ > > > >> - RISCV_ISA_EXT_KEY_ZIHINTPAUSE, > > > >> RISCV_ISA_EXT_KEY_MAX, > > > >> }; > > > >> > > > >> @@ -88,8 +87,6 @@ static __always_inline int riscv_isa_ext2key(int num) > > > >> return RISCV_ISA_EXT_KEY_FPU; > > > >> case RISCV_ISA_EXT_d: > > > >> return RISCV_ISA_EXT_KEY_FPU; > > > >> - case RISCV_ISA_EXT_ZIHINTPAUSE: > > > >> - return RISCV_ISA_EXT_KEY_ZIHINTPAUSE; > > > >> default: > > > >> return -EINVAL; > > > >> } > > > >> diff --git a/arch/riscv/include/asm/vdso/processor.h b/arch/riscv/include/asm/vdso/processor.h > > > >> index 1e4f8b4aef79..789bdb8211a2 100644 > > > >> --- a/arch/riscv/include/asm/vdso/processor.h > > > >> +++ b/arch/riscv/include/asm/vdso/processor.h > > > >> @@ -4,30 +4,25 @@ > > > >> > > > >> #ifndef __ASSEMBLY__ > > > >> > > > >> -#include > > > >> #include > > > >> -#include > > > >> > > > >> static inline void cpu_relax(void) > > > >> { > > > >> - if (!static_branch_likely(&riscv_isa_ext_keys[RISCV_ISA_EXT_KEY_ZIHINTPAUSE])) { > > > >> #ifdef __riscv_muldiv > > > >> - int dummy; > > > >> - /* In lieu of a halt instruction, induce a long-latency stall. */ > > > >> - __asm__ __volatile__ ("div %0, %0, zero" : "=r" (dummy)); > > > >> + int dummy; > > > >> + /* In lieu of a halt instruction, induce a long-latency stall. */ > > > >> + __asm__ __volatile__ ("div %0, %0, zero" : "=r" (dummy)); > > > >> #endif > > > >> - } else { > > > >> - /* > > > >> - * Reduce instruction retirement. > > > >> - * This assumes the PC changes. > > > >> - */ > > > >> + /* > > > >> + * Reduce instruction retirement. > > > >> + * This assumes the PC changes. > > > >> + */ > > > >> #ifdef __riscv_zihintpause > > > >> - __asm__ __volatile__ ("pause"); > > > >> + __asm__ __volatile__ ("pause"); > > > >> #else > > > >> - /* Encoding of the pause instruction */ > > > >> - __asm__ __volatile__ (".4byte 0x100000F"); > > > >> + /* Encoding of the pause instruction */ > > > >> + __asm__ __volatile__ (".4byte 0x100000F"); > > > >> #endif > > > > > > > > hmm, though before this part of the code was only ever accessed > > > > when the zhintpause extension was really available on the running > > > > machine while now the pause instruction is called every time. > > > > > > > > So I'm just wondering, can't this run into some "illegal instruction" > > > > thingy on machines not supporting the extension? > > > > > > No. The encoding for pause was deliberately chosen to be one of the > > > “useless” encodings of fence, with the hope that existing > > > microarchitectures might take a while to execute it and thus it would > > > still function as a slow-running instruction. It’s somewhat > > > questionable whether the div is even needed, the worst that happens is > > > cpu_relax isn’t very relaxed and you spin a bit faster. Any > > > implementations where that’s true probably also don’t have fancy > > > clock/power management anyway, and div isn’t going to be a low-power > > > operation so the only real effect is likely hammering on contended > > > atomics a bit more, and who cares about that on the low core count > > > systems we have today. > > > > thanks a lot for that explanation, which made things a lot clearer. > > > > So as you said, dropping the div part might make the function even smaller, > > though somehow part of me would want to add some sort of comment to > > the function for when the next developer stumbles over the unconditional > > use of pause :-) . > > > > I agree. If that's what microarch will do, we can drop div altogether. > Though microarch may be treated as nop even if it is undesirable. > IIRC, the div was introduced for the rocket chip which would induce a > long latency stall with div instruction (zero as operands). > > Does any other core or newer rocket chip actually induce a latency > stall with div instruction ? > If not, it is equivalent to NOP as well. We can definitely remove the div. > The only cores affected will be the older rocket core. > > Tagging some folks to understand what their core does. > > @Paul Walmsley @Guo Ren @Conor Dooley ? I am no microarch expert by _any_ stretch of the imagination, but from a quick experiment it looks like the u54s on PolarFire SoC behave in the same way, and div w/ zero operands does in fact take significantly longer than regular division (looks to be about 3x). Hope that's helpful, Conor. (I just did a quick check of what pretty much amounted to a bunch of div a5,zero,zero in a row versus div a5,a5,a5) > > (Please add anybody who may have an insight to execution flow on > existing Linux capable cores) > > > > > Heiko > > > > > > > > _______________________________________________ > > linux-riscv mailing list > > linux-riscv@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-riscv > > > > -- > Regards, > Atish > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv