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 47DFCC433FE for ; Sat, 1 Oct 2022 20:13:29 +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=uB0WMHhbnm4IuI3uXqXNBZrWWt3W2SnmhHkTNTLoZf0=; b=OVoOnH8XfjGhjd EJPy5VuhbyJIS3D+C/bQgxopql44uS+AecL/G+PbzGcPAd3zcPAgaxQCmRmgih2Oycwl5z6mj9h3R uiIbIdlMKhjWG8Z5Ix1vm0yZ/CE63MRWrdttnThJlQ+pgIzKvM7CHlV4lALOJlpoOslYEOFWBR1IL effpRqIAxJrQk1CU3VbTEbIOOPZ0B6m1G65JFxDHr1hYo/qorXkQ2QJWcFSzmrw+Sv1SlIXlSF5h8 PtHkxRahBtu03fnAB1lVW9FFIly6cwY/6KBYCZm7MBMnLsWnAiKFfkhcH9qhh2yhfVbJ+3uKWeYMa xi78psWmxOcJiknepgLQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oeirM-00Fuf1-4y; Sat, 01 Oct 2022 20:13:16 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oeirI-00Fudj-2s for linux-riscv@lists.infradead.org; Sat, 01 Oct 2022 20:13:14 +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 3F2C0B8085D; Sat, 1 Oct 2022 20:13:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4D1FC433D6; Sat, 1 Oct 2022 20:13:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664655188; bh=p4bbi/+BpxxZznSylANKbcRAQO9GN1Me17P9pK9tkzs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=NuKNU1PGE+3KQB4XE92/eST/7dLw3usapznUW8ttJpMWr2K1/IOD54iz47xUzE7v0 H44jAPajpRlrnuVgT/tS5VrqMUspmZ/HwkIcjZWtpbdiDc22mRtZMLnsqUktfTDJTi 4USO4z4oXCL3jAAMCRvGFKKDd2gZTWa64nrw+aDQB86fjWPXUYUKQBOE/f6KUALAts f6i15xJdWLQiphlkY4bol1bFA4Z6WSxyVWBEkvv3ehK3WRkjaJKKorYGMLo1g/eX8J 4BMJM2Jmg1V+pTrz7ZaNSOsbL5Emuf4UgNObeK6dy2Z427V/5U/y33eyS2ET2mETOr 19LmnV41Tl/Cw== Date: Sat, 1 Oct 2022 21:13:01 +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-20221001_131312_445855_2AC6282A X-CRM114-Status: GOOD ( 71.23 ) 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 T24gV2VkLCBTZXAgMjgsIDIwMjIgYXQgMDg6MjY6MDFQTSAtMDcwMCwgQXRpc2ggUGF0cmEgd3Jv dGU6Cj4gT24gV2VkLCBTZXAgMjgsIDIwMjIgYXQgMjoxNiBQTSBDb25vciBEb29sZXkgPGNvbm9y QGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4KPiA+IE9uIFdlZCwgU2VwIDI4LCAyMDIyIGF0IDEyOjIx OjU1QU0gLTA3MDAsIEF0aXNoIFBhdHJhIHdyb3RlOgo+ID4gPiBPbiBTYXQsIFNlcCAyNCwgMjAy MiBhdCA0OjE1IFBNIENvbm9yIERvb2xleSA8Y29ub3JAa2VybmVsLm9yZz4gd3JvdGU6Cj4gPiA+ ID4KPiA+ID4gPiBPbiBGcmksIFNlcCAyMywgMjAyMiBhdCAxMTowMToyOEFNIC0wNzAwLCBBdGlz aCBQYXRyYSB3cm90ZToKPiA+ID4gPiA+IE9uIEZyaSwgU2VwIDIzLCAyMDIyIGF0IDEyOjE4IEFN IEhlaWtvIFN0dWVibmVyIDxoZWlrb0BzbnRlY2guZGU+IHdyb3RlOgo+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiBIaSwKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gQW0gRG9ubmVyc3RhZywgMjIuIFNl cHRlbWJlciAyMDIyLCAxNzo1Mjo0NiBDRVNUIHNjaHJpZWIgSmVzc2ljYSBDbGFya2U6Cj4gPiA+ ID4gPiA+ID4gT24gMjIgU2VwdCAyMDIyLCBhdCAxNjo0NSwgSGVpa28gU3R1ZWJuZXIgPGhlaWtv QHNudGVjaC5kZT4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gQW0gRG9u bmVyc3RhZywgMjIuIFNlcHRlbWJlciAyMDIyLCAwODowOTo1OCBDRVNUIHNjaHJpZWIgU2FtdWVs IEhvbGxhbmQ6Cj4gPiA+ID4gPiA+ID4gPj4gY29tbWl0IDhlYjA2MGUxMDE4NSAoImFyY2gvcmlz Y3Y6IGFkZCBaaWhpbnRwYXVzZSBzdXBwb3J0IikgYnJva2UKPiA+ID4gPiA+ID4gPiA+PiBidWls ZGluZyB3aXRoIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBlbmFibGVkIChnY2MgMTEuMS4w KToKPiA+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ID4+IENDIGFyY2gvcmlzY3Yva2VybmVs L3Zkc28vdmdldHRpbWVvZmRheS5vCj4gPiA+ID4gPiA+ID4gPj4gSW4gZmlsZSBpbmNsdWRlZCBm cm9tIDxjb21tYW5kLWxpbmU+Ogo+ID4gPiA+ID4gPiA+ID4+IC4vYXJjaC9yaXNjdi9pbmNsdWRl L2FzbS9qdW1wX2xhYmVsLmg6IEluIGZ1bmN0aW9uICdjcHVfcmVsYXgnOgo+ID4gPiA+ID4gPiA+ ID4+IC4vLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmg6Mjg1OjMzOiB3YXJuaW5nOiAn YXNtJyBvcGVyYW5kIDAgcHJvYmFibHkgZG9lcyBub3QgbWF0Y2ggY29uc3RyYWludHMKPiA+ID4g PiA+ID4gPiA+PiAyODUgfCAjZGVmaW5lIGFzbV92b2xhdGlsZV9nb3RvKHguLi4pIGFzbSBnb3Rv KHgpCj4gPiA+ID4gPiA+ID4gPj4gfCBefn4KPiA+ID4gPiA+ID4gPiA+PiAuL2FyY2gvcmlzY3Yv aW5jbHVkZS9hc20vanVtcF9sYWJlbC5oOjQxOjk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byAnYXNtX3ZvbGF0aWxlX2dvdG8nCj4gPiA+ID4gPiA+ID4gPj4gNDEgfCBhc21fdm9sYXRpbGVf Z290bygKPiA+ID4gPiA+ID4gPiA+PiB8IF5+fn5+fn5+fn5+fn5+fn5+Cj4gPiA+ID4gPiA+ID4g Pj4gLi8uL2luY2x1ZGUvbGludXgvY29tcGlsZXJfdHlwZXMuaDoyODU6MzM6IGVycm9yOiBpbXBv c3NpYmxlIGNvbnN0cmFpbnQgaW4gJ2FzbScKPiA+ID4gPiA+ID4gPiA+PiAyODUgfCAjZGVmaW5l IGFzbV92b2xhdGlsZV9nb3RvKHguLi4pIGFzbSBnb3RvKHgpCj4gPiA+ID4gPiA+ID4gPj4gfCBe fn4KPiA+ID4gPiA+ID4gPiA+PiAuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vanVtcF9sYWJlbC5o OjQxOjk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnYXNtX3ZvbGF0aWxlX2dvdG8nCj4g PiA+ID4gPiA+ID4gPj4gNDEgfCBhc21fdm9sYXRpbGVfZ290bygKPiA+ID4gPiA+ID4gPiA+PiB8 IF5+fn5+fn5+fn5+fn5+fn5+Cj4gPiA+ID4gPiA+ID4gPj4gbWFrZVsxXTogKioqIFtzY3JpcHRz L01ha2VmaWxlLmJ1aWxkOjI0OTogYXJjaC9yaXNjdi9rZXJuZWwvdmRzby92Z2V0dGltZW9mZGF5 Lm9dIEVycm9yIDEKPiA+ID4gPiA+ID4gPiA+PiBtYWtlOiAqKiogW2FyY2gvcmlzY3YvTWFrZWZp bGU6MTI4OiB2ZHNvX3ByZXBhcmVdIEVycm9yIDIKPiA+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4g PiA+ID4+IEhhdmluZyBhIHN0YXRpYyBicmFuY2ggaW4gY3B1X3JlbGF4KCkgaXMgcHJvYmxlbWF0 aWMgYmVjYXVzZSB0aGF0Cj4gPiA+ID4gPiA+ID4gPj4gZnVuY3Rpb24gaXMgd2lkZWx5IGlubGlu ZWQsIGluY2x1ZGluZyBpbiBzb21lIHF1aXRlIGNvbXBsZXggZnVuY3Rpb25zCj4gPiA+ID4gPiA+ ID4gPj4gbGlrZSBpbiB0aGUgVkRTTy4gQSBxdWljayBtZWFzdXJlbWVudCBzaG93cyB0aGlzIHN0 YXRpYyBicmFuY2ggaXMKPiA+ID4gPiA+ID4gPiA+PiByZXNwb25zaWJsZSBieSBpdHNlbGYgZm9y IGFyb3VuZCA0MCUgb2YgdGhlIGp1bXAgdGFibGUuCj4gPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ ID4gPiA+PiBEcm9wIHRoZSBzdGF0aWMgYnJhbmNoLCB3aGljaCBlbmRzIHVwIGJlaW5nIHRoZSBz YW1lIG51bWJlciBvZgo+ID4gPiA+ID4gPiA+ID4+IGluc3RydWN0aW9ucyBhbnl3YXkuIElmIFpp aGludHBhdXNlIGlzIHN1cHBvcnRlZCwgd2UgdHJhZGUgdGhlIG5vcCBmcm9tCj4gPiA+ID4gPiA+ ID4gPj4gdGhlIHN0YXRpYyBicmFuY2ggZm9yIGEgZGl2LiBJZiBaaWhpbnRwYXVzZSBpcyB1bnN1 cHBvcnRlZCwgd2UgdHJhZGUgdGhlCj4gPiA+ID4gPiA+ID4gPj4ganVtcCBmcm9tIHRoZSBzdGF0 aWMgYnJhbmNoIGZvciAod2hhdCBnZXRzIGludGVycHJldGVkIGFzKSBhIG5vcC4KPiA+ID4gPiA+ ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ID4+IEZpeGVzOiA4ZWIwNjBlMTAxODUgKCJhcmNoL3Jpc2N2 OiBhZGQgWmloaW50cGF1c2Ugc3VwcG9ydCIpCj4gPiA+ID4gPiA+ID4gPj4gU2lnbmVkLW9mZi1i eTogU2FtdWVsIEhvbGxhbmQgPHNhbXVlbEBzaG9sbGFuZC5vcmc+Cj4gPiA+ID4gPiA+ID4gPj4g LS0tCj4gPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPiA+PiBhcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL2h3Y2FwLmggfCAzIC0tLQo+ID4gPiA+ID4gPiA+ID4+IGFyY2gvcmlzY3YvaW5jbHVkZS9h c20vdmRzby9wcm9jZXNzb3IuaCB8IDI1ICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPiA+ID4g PiA+ID4gPiA+PiAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9u cygtKQo+ID4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4gZGlmZiAtLWdpdCBhL2FyY2gv cmlzY3YvaW5jbHVkZS9hc20vaHdjYXAuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdjYXAu aAo+ID4gPiA+ID4gPiA+ID4+IGluZGV4IDZmNTllYzY0MTc1ZS4uYjIxZDQ2ZTY4Mzg2IDEwMDY0 NAo+ID4gPiA+ID4gPiA+ID4+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdjYXAuaAo+ ID4gPiA+ID4gPiA+ID4+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdjYXAuaAo+ID4g PiA+ID4gPiA+ID4+IEBAIC02OCw3ICs2OCw2IEBAIGVudW0gcmlzY3ZfaXNhX2V4dF9pZCB7Cj4g PiA+ID4gPiA+ID4gPj4gKi8KPiA+ID4gPiA+ID4gPiA+PiBlbnVtIHJpc2N2X2lzYV9leHRfa2V5 IHsKPiA+ID4gPiA+ID4gPiA+PiAgICBSSVNDVl9JU0FfRVhUX0tFWV9GUFUsICAgICAgICAgIC8q IEZvciAnRicgYW5kICdEJyAqLwo+ID4gPiA+ID4gPiA+ID4+IC0gIFJJU0NWX0lTQV9FWFRfS0VZ X1pJSElOVFBBVVNFLAo+ID4gPiA+ID4gPiA+ID4+ICAgIFJJU0NWX0lTQV9FWFRfS0VZX01BWCwK PiA+ID4gPiA+ID4gPiA+PiB9Owo+ID4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4gQEAg LTg4LDggKzg3LDYgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSBpbnQgcmlzY3ZfaXNhX2V4dDJr ZXkoaW50IG51bSkKPiA+ID4gPiA+ID4gPiA+PiAgICAgICAgICAgIHJldHVybiBSSVNDVl9JU0Ff RVhUX0tFWV9GUFU7Cj4gPiA+ID4gPiA+ID4gPj4gICAgY2FzZSBSSVNDVl9JU0FfRVhUX2Q6Cj4g PiA+ID4gPiA+ID4gPj4gICAgICAgICAgICByZXR1cm4gUklTQ1ZfSVNBX0VYVF9LRVlfRlBVOwo+ ID4gPiA+ID4gPiA+ID4+IC0gIGNhc2UgUklTQ1ZfSVNBX0VYVF9aSUhJTlRQQVVTRToKPiA+ID4g PiA+ID4gPiA+PiAtICAgICAgICAgIHJldHVybiBSSVNDVl9JU0FfRVhUX0tFWV9aSUhJTlRQQVVT RTsKPiA+ID4gPiA+ID4gPiA+PiAgICBkZWZhdWx0Ogo+ID4gPiA+ID4gPiA+ID4+ICAgICAgICAg ICAgcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ID4gPiA+ID4gPj4gICAgfQo+ID4gPiA+ID4gPiA+ID4+ IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Zkc28vcHJvY2Vzc29yLmggYi9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Zkc28vcHJvY2Vzc29yLmgKPiA+ID4gPiA+ID4gPiA+PiBp bmRleCAxZTRmOGI0YWVmNzkuLjc4OWJkYjgyMTFhMiAxMDA2NDQKPiA+ID4gPiA+ID4gPiA+PiAt LS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Zkc28vcHJvY2Vzc29yLmgKPiA+ID4gPiA+ID4g PiA+PiArKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Zkc28vcHJvY2Vzc29yLmgKPiA+ID4g PiA+ID4gPiA+PiBAQCAtNCwzMCArNCwyNSBAQAo+ID4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ ID4gPj4gI2lmbmRlZiBfX0FTU0VNQkxZX18KPiA+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ ID4+IC0jaW5jbHVkZSA8bGludXgvanVtcF9sYWJlbC5oPgo+ID4gPiA+ID4gPiA+ID4+ICNpbmNs dWRlIDxhc20vYmFycmllci5oPgo+ID4gPiA+ID4gPiA+ID4+IC0jaW5jbHVkZSA8YXNtL2h3Y2Fw Lmg+Cj4gPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPiA+PiBzdGF0aWMgaW5saW5lIHZvaWQg Y3B1X3JlbGF4KHZvaWQpCj4gPiA+ID4gPiA+ID4gPj4gewo+ID4gPiA+ID4gPiA+ID4+IC0gIGlm ICghc3RhdGljX2JyYW5jaF9saWtlbHkoJnJpc2N2X2lzYV9leHRfa2V5c1tSSVNDVl9JU0FfRVhU X0tFWV9aSUhJTlRQQVVTRV0pKSB7Cj4gPiA+ID4gPiA+ID4gPj4gI2lmZGVmIF9fcmlzY3ZfbXVs ZGl2Cj4gPiA+ID4gPiA+ID4gPj4gLSAgICAgICAgICBpbnQgZHVtbXk7Cj4gPiA+ID4gPiA+ID4g Pj4gLSAgICAgICAgICAvKiBJbiBsaWV1IG9mIGEgaGFsdCBpbnN0cnVjdGlvbiwgaW5kdWNlIGEg bG9uZy1sYXRlbmN5IHN0YWxsLiAqLwo+ID4gPiA+ID4gPiA+ID4+IC0gICAgICAgICAgX19hc21f XyBfX3ZvbGF0aWxlX18gKCJkaXYgJTAsICUwLCB6ZXJvIiA6ICI9ciIgKGR1bW15KSk7Cj4gPiA+ ID4gPiA+ID4gPj4gKyAgaW50IGR1bW15Owo+ID4gPiA+ID4gPiA+ID4+ICsgIC8qIEluIGxpZXUg b2YgYSBoYWx0IGluc3RydWN0aW9uLCBpbmR1Y2UgYSBsb25nLWxhdGVuY3kgc3RhbGwuICovCj4g PiA+ID4gPiA+ID4gPj4gKyAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJkaXYgJTAsICUwLCB6ZXJv IiA6ICI9ciIgKGR1bW15KSk7Cj4gPiA+ID4gPiA+ID4gPj4gI2VuZGlmCj4gPiA+ID4gPiA+ID4g Pj4gLSAgfSBlbHNlIHsKPiA+ID4gPiA+ID4gPiA+PiAtICAgICAgICAgIC8qCj4gPiA+ID4gPiA+ ID4gPj4gLSAgICAgICAgICAgKiBSZWR1Y2UgaW5zdHJ1Y3Rpb24gcmV0aXJlbWVudC4KPiA+ID4g PiA+ID4gPiA+PiAtICAgICAgICAgICAqIFRoaXMgYXNzdW1lcyB0aGUgUEMgY2hhbmdlcy4KPiA+ ID4gPiA+ID4gPiA+PiAtICAgICAgICAgICAqLwo+ID4gPiA+ID4gPiA+ID4+ICsgIC8qCj4gPiA+ ID4gPiA+ID4gPj4gKyAgICogUmVkdWNlIGluc3RydWN0aW9uIHJldGlyZW1lbnQuCj4gPiA+ID4g PiA+ID4gPj4gKyAgICogVGhpcyBhc3N1bWVzIHRoZSBQQyBjaGFuZ2VzLgo+ID4gPiA+ID4gPiA+ ID4+ICsgICAqLwo+ID4gPiA+ID4gPiA+ID4+ICNpZmRlZiBfX3Jpc2N2X3ppaGludHBhdXNlCj4g PiA+ID4gPiA+ID4gPj4gLSAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInBhdXNlIik7 Cj4gPiA+ID4gPiA+ID4gPj4gKyAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJwYXVzZSIpOwo+ID4g PiA+ID4gPiA+ID4+ICNlbHNlCj4gPiA+ID4gPiA+ID4gPj4gLSAgICAgICAgICAvKiBFbmNvZGlu ZyBvZiB0aGUgcGF1c2UgaW5zdHJ1Y3Rpb24gKi8KPiA+ID4gPiA+ID4gPiA+PiAtICAgICAgICAg IF9fYXNtX18gX192b2xhdGlsZV9fICgiLjRieXRlIDB4MTAwMDAwRiIpOwo+ID4gPiA+ID4gPiA+ ID4+ICsgIC8qIEVuY29kaW5nIG9mIHRoZSBwYXVzZSBpbnN0cnVjdGlvbiAqLwo+ID4gPiA+ID4g PiA+ID4+ICsgIF9fYXNtX18gX192b2xhdGlsZV9fICgiLjRieXRlIDB4MTAwMDAwRiIpOwo+ID4g PiA+ID4gPiA+ID4+ICNlbmRpZgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IGhtbSwg dGhvdWdoIGJlZm9yZSB0aGlzIHBhcnQgb2YgdGhlIGNvZGUgd2FzIG9ubHkgZXZlciBhY2Nlc3Nl ZAo+ID4gPiA+ID4gPiA+ID4gd2hlbiB0aGUgemhpbnRwYXVzZSBleHRlbnNpb24gd2FzIHJlYWxs eSBhdmFpbGFibGUgb24gdGhlIHJ1bm5pbmcKPiA+ID4gPiA+ID4gPiA+IG1hY2hpbmUgd2hpbGUg bm93IHRoZSBwYXVzZSBpbnN0cnVjdGlvbiBpcyBjYWxsZWQgZXZlcnkgdGltZS4KPiA+ID4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBTbyBJJ20ganVzdCB3b25kZXJpbmcsIGNhbid0IHRoaXMg cnVuIGludG8gc29tZSAiaWxsZWdhbCBpbnN0cnVjdGlvbiIKPiA+ID4gPiA+ID4gPiA+IHRoaW5n eSBvbiBtYWNoaW5lcyBub3Qgc3VwcG9ydGluZyB0aGUgZXh0ZW5zaW9uPwo+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gTm8uIFRoZSBlbmNvZGluZyBmb3IgcGF1c2Ugd2FzIGRlbGliZXJhdGVs eSBjaG9zZW4gdG8gYmUgb25lIG9mIHRoZQo+ID4gPiA+ID4gPiA+IOKAnHVzZWxlc3PigJ0gZW5j b2RpbmdzIG9mIGZlbmNlLCB3aXRoIHRoZSBob3BlIHRoYXQgZXhpc3RpbmcKPiA+ID4gPiA+ID4g PiBtaWNyb2FyY2hpdGVjdHVyZXMgbWlnaHQgdGFrZSBhIHdoaWxlIHRvIGV4ZWN1dGUgaXQgYW5k IHRodXMgaXQgd291bGQKPiA+ID4gPiA+ID4gPiBzdGlsbCBmdW5jdGlvbiBhcyBhIHNsb3ctcnVu bmluZyBpbnN0cnVjdGlvbi4gSXTigJlzIHNvbWV3aGF0Cj4gPiA+ID4gPiA+ID4gcXVlc3Rpb25h YmxlIHdoZXRoZXIgdGhlIGRpdiBpcyBldmVuIG5lZWRlZCwgdGhlIHdvcnN0IHRoYXQgaGFwcGVu cyBpcwo+ID4gPiA+ID4gPiA+IGNwdV9yZWxheCBpc27igJl0IHZlcnkgcmVsYXhlZCBhbmQgeW91 IHNwaW4gYSBiaXQgZmFzdGVyLiBBbnkKPiA+ID4gPiA+ID4gPiBpbXBsZW1lbnRhdGlvbnMgd2hl cmUgdGhhdOKAmXMgdHJ1ZSBwcm9iYWJseSBhbHNvIGRvbuKAmXQgaGF2ZSBmYW5jeQo+ID4gPiA+ ID4gPiA+IGNsb2NrL3Bvd2VyIG1hbmFnZW1lbnQgYW55d2F5LCBhbmQgZGl2IGlzbuKAmXQgZ29p bmcgdG8gYmUgYSBsb3ctcG93ZXIKPiA+ID4gPiA+ID4gPiBvcGVyYXRpb24gc28gdGhlIG9ubHkg cmVhbCBlZmZlY3QgaXMgbGlrZWx5IGhhbW1lcmluZyBvbiBjb250ZW5kZWQKPiA+ID4gPiA+ID4g PiBhdG9taWNzIGEgYml0IG1vcmUsIGFuZCB3aG8gY2FyZXMgYWJvdXQgdGhhdCBvbiB0aGUgbG93 IGNvcmUgY291bnQKPiA+ID4gPiA+ID4gPiBzeXN0ZW1zIHdlIGhhdmUgdG9kYXkuCj4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+IHRoYW5rcyBhIGxvdCBmb3IgdGhhdCBleHBsYW5hdGlvbiwgd2hpY2gg bWFkZSB0aGluZ3MgYSBsb3QgY2xlYXJlci4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gU28gYXMg eW91IHNhaWQsIGRyb3BwaW5nIHRoZSBkaXYgcGFydCBtaWdodCBtYWtlIHRoZSBmdW5jdGlvbiBl dmVuIHNtYWxsZXIsCj4gPiA+ID4gPiA+IHRob3VnaCBzb21laG93IHBhcnQgb2YgbWUgd291bGQg d2FudCB0byBhZGQgc29tZSBzb3J0IG9mIGNvbW1lbnQgdG8KPiA+ID4gPiA+ID4gdGhlIGZ1bmN0 aW9uIGZvciB3aGVuIHRoZSBuZXh0IGRldmVsb3BlciBzdHVtYmxlcyBvdmVyIHRoZSB1bmNvbmRp dGlvbmFsCj4gPiA+ID4gPiA+IHVzZSBvZiBwYXVzZSA6LSkgLgo+ID4gPiA+ID4gPgo+ID4gPiA+ ID4KPiA+ID4gPiA+IEkgYWdyZWUuIElmIHRoYXQncyB3aGF0IG1pY3JvYXJjaCB3aWxsIGRvLCB3 ZSBjYW4gZHJvcCBkaXYgYWx0b2dldGhlci4KPiA+ID4gPiA+IFRob3VnaCBtaWNyb2FyY2ggbWF5 IGJlIHRyZWF0ZWQgYXMgbm9wIGV2ZW4gaWYgaXQgaXMgdW5kZXNpcmFibGUuCj4gPiA+ID4gPiBJ SVJDLCB0aGUgZGl2IHdhcyBpbnRyb2R1Y2VkIGZvciB0aGUgcm9ja2V0IGNoaXAgd2hpY2ggd291 bGQgaW5kdWNlIGEKPiA+ID4gPiA+IGxvbmcgbGF0ZW5jeSBzdGFsbCB3aXRoIGRpdiBpbnN0cnVj dGlvbiAoemVybyBhcyBvcGVyYW5kcykuCj4gPiA+ID4gPgo+ID4gPiA+ID4gRG9lcyBhbnkgb3Ro ZXIgY29yZSBvciBuZXdlciByb2NrZXQgY2hpcCBhY3R1YWxseSBpbmR1Y2UgYSBsYXRlbmN5Cj4g PiA+ID4gPiBzdGFsbCB3aXRoIGRpdiBpbnN0cnVjdGlvbiA/Cj4gPiA+ID4gPiBJZiBub3QsIGl0 IGlzIGVxdWl2YWxlbnQgdG8gTk9QIGFzIHdlbGwuIFdlIGNhbiBkZWZpbml0ZWx5IHJlbW92ZSB0 aGUgZGl2Lgo+ID4gPiA+ID4gVGhlIG9ubHkgY29yZXMgYWZmZWN0ZWQgd2lsbCBiZSB0aGUgb2xk ZXIgcm9ja2V0IGNvcmUuCj4gPiA+ID4gPgo+ID4gPiA+ID4gVGFnZ2luZyBzb21lIGZvbGtzIHRv IHVuZGVyc3RhbmQgd2hhdCB0aGVpciBjb3JlIGRvZXMuCj4gPiA+ID4gPgo+ID4gPiA+ID4gQFBh dWwgV2FsbXNsZXkgQEd1byBSZW4gQENvbm9yIERvb2xleSA/Cj4gPiA+ID4KPiA+ID4gPiBJIGFt IG5vIG1pY3JvYXJjaCBleHBlcnQgYnkgX2FueV8gc3RyZXRjaCBvZiB0aGUgaW1hZ2luYXRpb24s IGJ1dAo+ID4gPiA+IGZyb20gYSBxdWljayBleHBlcmltZW50IGl0IGxvb2tzIGxpa2UgdGhlIHU1 NHMgb24gUG9sYXJGaXJlIFNvQyBiZWhhdmUKPiA+ID4gPiBpbiB0aGUgc2FtZSB3YXksIGFuZCBk aXYgdy8gemVybyBvcGVyYW5kcyBkb2VzIGluIGZhY3QgdGFrZSBzaWduaWZpY2FudGx5Cj4gPiA+ ID4gbG9uZ2VyIHRoYW4gcmVndWxhciBkaXZpc2lvbiAobG9va3MgdG8gYmUgYWJvdXQgM3gpLgo+ ID4gPiA+Cj4gPiA+Cj4gPiA+IFRoYW5rcy4gRG8geW91IGhhdmUgYW55IGRhdGEgb24gaG93IG11 Y2ggdGhlICJwYXVzZSIgaW5zdHJ1Y3Rpb24gdGFrZXMuCj4gPgo+ID4gU28gdGhlc2UgbnVtYmVy cyB5b3UgbWF5IGNvbnNpZGVyIGFzIGJlaW5nIHB1bGxlZCBvdXQgb2YgYSBtYWdpYyBoYXQKPiA+ IGFzIGFsbCBJIGFtIGRvaW5nIGlzIHJlYWRpbmcgdGhlIGNvdW50ZXJzIGZyb20gdXNlcnNwYWNl IGFuZCB0aGVyZSBpcwo+ID4gc29tZSB2YXJpYW5jZSBldGMuIFBsdXMgdGhlIGZhY3QgdGhhdCBJ IGp1c3Qgc3RhcnRlZCBoYWNraW5nIGF0IHNvbWUKPiA+IGV4aXN0aW5nIGNvZGUgSSBoYWQgbHlp bmcgYXJvdW5kIGFzIEknbSBwcmV0dHkgc25vd2VkIHVuZGVyIGF0IHRoZQo+ID4gbW9tZW50Lgo+ ID4KPiA+IERvaW5nIHRoZSBmb2xsb3dpbmcgdGFrZXMgYWJvdXQgNzAgY3ljbGVzIG9uIGJvdGgg YSBQb2xhckZpcmUgU29DIGFuZCBhbgo+ID4gdW5tYXRjaGVkOgo+ID4gICAgICAgICBsb25nIGRp dmlzb3IgPSAyLCBkaXZpZGVuZCA9IDEwMDAwMCwgZGVzdDsKPiA+ICAgICAgICAgYXNtKCJkaXYg JTAsIHplcm8sIHplcm8iIDogIj1yIiAoZGVzdCkpOwo+ID4gYW5kIGVxdWF0ZXMgdG86Cj4gPiAg ICAgICAgIHNkICAgICAgYTUsLTQ4KHMwKQo+ID4gICAgICAgICBkaXYgICAgIGE1LHplcm8semVy bwo+ID4KPiA+IENsb2NraW5nIGluIGF0IGFib3V0IDQwIGN5Y2xlcyBpcyBzb21lIGFjdHVhbCBk aXZpc2lvbnMsIEkganVzdCBkaWQgdGhlCj4gPiBmb2xsb3dpbmcgYSBkb3plbiB0aW1lcywgZG9p bmcgYSB0cml2aWFsIGNvbXB1dGF0aW9uOgo+ID4gICAgICAgICBsb25nIGRpdmlzb3IgPSAyLCBk aXZpZGVuZCA9IDEwMDAwMCwgZGVzdDsKPiA+ICAgICAgICAgYXNtKCJkaXYgJTAsICUxLCAlMiIg OiAiPXIiIChkaXZpZGVuZCkgOiAiciIgKGRpdmlkZW5kKSwgInIiIChkaXZpc29yKSkKPiA+Cj4g PiBpZSwgYSBsb2FkIG9mIHRoZSBmb2xsb3dpbmc6Cj4gPiAgICAgICAgIHNkICAgICAgYTUsLTQ4 KHMwKQo+ID4gICAgICAgICBsZCAgICAgIGE1LC00OChzMCkKPiA+ICAgICAgICAgbGQgICAgICBh NCwtNDAoczApCj4gPiAgICAgICAgIGRpdiAgICAgYTUsYTUsYTQKPiA+Cj4gPiBTbyBjbGVhcmx5 IHRoZSBkaXYgdy8gemVybyBhcmdzIG1ha2VzIGEgZGlmZmVyZW5jZS4uLgo+ID4KPiA+IE9uIFBv bGFyRmlyZSBTb0MsIGAweDEwMDAwMEZgIHRha2VzIGFwcHJveCA2IGN5Y2xlcy4gT24gbXkgdW5t YXRjaGVkLCBpdAo+ID4gdGFrZXMgYXBwcm94IDQwLiBBZ2FpbiwgSSBqdXN0IGhhZCBhbiBhc20g YmxvY2sgJiBjYWxsZWQgdGhlIGluc3RydWN0aW9uCj4gPiBhIG51bWJlciB0aW1lcyBhbmQgdG9v ayB0aGUgYXZlcmFnZSAtIGhlcmUgaXQgd2FzIDQ4IHRpbWVzLgo+ID4KPiA+IFRha2UgdGhlIGFj dHVhbCBudW1iZXJzIHdpdGggYSBmaXN0IGZ1bGwgb2Ygc2FsdCwgYnV0IGF0IGxlYXN0IHRoZQo+ ID4gcmVsYXRpdmUgbnVtYmVycyBzaG91bGQgYmUgb2Ygc29tZSB1c2UgdG8geW91Lgo+ID4KPiA+ IEhvcGUgdGhhdCdzIHNvbWV3aGF0IGhlbHBmdWwsIG1heWJlIG5leHQgd2VlayBJIGNhbiBkbyBz b21ldGhpbmcgYQo+ID4gbGl0dGxlIG1vcmUgdXNlZnVsIGZvciB5b3UuLi4KPiA+Cj4gCj4gVGhh bmtzLiBJdCB3b3VsZCBiZSBnb29kIHRvIHVuZGVyc3RhbmQgd2hhdCBoYXBwZW5zIHdoZW4gInBh dXNlIiBpcwo+IGV4ZWN1dGVkIG9uIHRoZXNlIGJvYXJkcyA/CgpUaGUgYWN0dWFsIHBhdXNlIGlu c3RydWN0aW9uPyB1aGgsIHNvIHdpdGggdGhlIHVzdWFsICJJIGRvbid0IGtub3cgd2hhdApJIGFt IGRvaW5nIiBkaXNjbGFpbWVyLCBJIHJhbiBlYWNoIG9mIHRoZSAuaW5zbiBhbmQgcGF1c2UgaW5z dHJ1Y3Rpb24gNDgKdGltZXMgaW4gYSByb3cgYW5kIGNoZWNrZWQgdGhlIHRpbWUgZWxhcHNlZCB2 aWEgcmRjeWNsZSAmIHRoZW4gcmFuIHRoYXQKYyBwcm9ncmFtIDEwMDAgdGltZXMgaW4gYSBiYXNo IGxvb3AuIEdvdCB0aGUgYmVsb3csIHRoZSBpbnNucyB3ZXJlIHJ1bgpmaXJzdCBhbmQgdGhlbiB0 aGUgcGF1c2VzLgoJaW5zbglwYXVzZQptaW4JMi4zCTMuMgptYXgJOS41CTEwLjYKYXZnCTI3LjAJ MjkuMQo1JQkyLjkJNC4yCjk1JQkxOC4xCTE5LjEKClN3YXBwaW5nIHRoZSBwYXVzZSAmIGluc24g b3JkZXIgYXJvdW5kIG1hZGUgYSBtaW5vciBkaWZmZXJlbmNlLCBidXQgbm90CmVub3VnaCB0byBy ZXBvcnQgb24uIEknZCBiZSB2ZXJ5IHdhcnkgb2YgZHJhd2luZyBhbnkgcmVhbCBjb25jbHVzaW9u cwpmcm9tIHRoaXMgZGF0YSwgYnV0IGF0IGxlYXN0IGJvdGggYXJlIHJvdWdobHkgc2ltaWxhciAo YW5kIGNlcnRhaW5seSBub3QKZXZlbiBjbG9zZSB0byBkb2luZyB0aGUgZGl2IHcvIHplcm8gYXJn cy4KCkFnYWluLCBob3BlIHRoYXQgaXMgaGVscGZ1bD8KQ29ub3IuCgo+IAo+ID4gQ29ub3IuCj4g Pgo+ID4gPiBJIHVuZGVyc3RhbmQgdGhhdCBpdCBpcyBub3QgYXZhaWxhYmxlIGluIHRoZXNlIGNv cmVzLiBKdXN0IHdhbnRlZCB0bwo+ID4gPiB1bmRlcnN0YW5kIGlmIG1pY3JvYXJjaGl0ZWN0dXJl Cj4gPiA+IGFjdHVhbGx5IHRha2VzIGEgd2hpbGUgZXhlY3V0aW5nIHRoZSB1c2VsZXNzIGVuY29k aW5nIGFzIHBvaW50ZWQgb3V0IGJ5IEplc3NpY2EuCj4gPiA+Cj4gPiA+IElmIHRoYXQncyB0aGUg Y2FzZSwgd2UgY2FuIHJlbW92ZSB0aGUgZGl2IGluc3RydWN0aW9uIGFsdG9nZXRoZXIuCj4gPiA+ IE90aGVyd2lzZSwgdGhpcyBwYXRjaCB3aWxsIGNhdXNlIHNvbWUgcGVyZm9ybWFuY2UgcmVncmVz c2lvbgo+ID4gPiBmb3IgZXhpc3RpbmcgU29DIChIaUZpdmUgdW5sZWFzaGVkIGhhcyB0aGUgc2Ft ZSBjb3JlLiBOb3Qgc3VyZSBhYm91dAo+ID4gPiB1bm1hdGNoZWQgdGhvdWdoKS4KPiA+ID4gVGhp cyBuZWVkcyB0byBiZSBkb2N1bWVudGVkIGF0IGxlYXN0Lgo+ID4gPgo+ID4gPiA+IEhvcGUgdGhh dCdzIGhlbHBmdWwsCj4gPiA+ID4gQ29ub3IuCj4gPiA+ID4KPiA+ID4gPiAoSSBqdXN0IGRpZCBh IHF1aWNrIGNoZWNrIG9mIHdoYXQgcHJldHR5IG11Y2ggYW1vdW50ZWQgdG8gYSBidW5jaCBvZgo+ ID4gPiA+IGRpdiBhNSx6ZXJvLHplcm8gaW4gYSByb3cgdmVyc3VzIGRpdiBhNSxhNSxhNSkKPiA+ ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+IChQbGVhc2UgYWRkIGFueWJvZHkgd2hvIG1heSBoYXZl IGFuIGluc2lnaHQgdG8gZXhlY3V0aW9uIGZsb3cgb24KPiA+ID4gPiA+IGV4aXN0aW5nIExpbnV4 IGNhcGFibGUgY29yZXMpCj4gPiA+ID4gPgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtcmlzY3YK 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 5888BC433F5 for ; Sat, 1 Oct 2022 20:13:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229537AbiJAUNN (ORCPT ); Sat, 1 Oct 2022 16:13:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60560 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229436AbiJAUNK (ORCPT ); Sat, 1 Oct 2022 16:13:10 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24084167D6 for ; Sat, 1 Oct 2022 13:13:09 -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 dfw.source.kernel.org (Postfix) with ESMTPS id 973CC60C08 for ; Sat, 1 Oct 2022 20:13:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4D1FC433D6; Sat, 1 Oct 2022 20:13:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664655188; bh=p4bbi/+BpxxZznSylANKbcRAQO9GN1Me17P9pK9tkzs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=NuKNU1PGE+3KQB4XE92/eST/7dLw3usapznUW8ttJpMWr2K1/IOD54iz47xUzE7v0 H44jAPajpRlrnuVgT/tS5VrqMUspmZ/HwkIcjZWtpbdiDc22mRtZMLnsqUktfTDJTi 4USO4z4oXCL3jAAMCRvGFKKDd2gZTWa64nrw+aDQB86fjWPXUYUKQBOE/f6KUALAts f6i15xJdWLQiphlkY4bol1bFA4Z6WSxyVWBEkvv3ehK3WRkjaJKKorYGMLo1g/eX8J 4BMJM2Jmg1V+pTrz7ZaNSOsbL5Emuf4UgNObeK6dy2Z427V/5U/y33eyS2ET2mETOr 19LmnV41Tl/Cw== Date: Sat, 1 Oct 2022 21:13:01 +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 Wed, Sep 28, 2022 at 08:26:01PM -0700, Atish Patra wrote: > On Wed, Sep 28, 2022 at 2:16 PM Conor Dooley wrote: > > > > On Wed, Sep 28, 2022 at 12:21:55AM -0700, Atish Patra wrote: > > > On Sat, Sep 24, 2022 at 4:15 PM Conor Dooley wrote: > > > > > > > > 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). > > > > > > > > > > Thanks. Do you have any data on how much the "pause" instruction takes. > > > > So these numbers you may consider as being pulled out of a magic hat > > as all I am doing is reading the counters from userspace and there is > > some variance etc. Plus the fact that I just started hacking at some > > existing code I had lying around as I'm pretty snowed under at the > > moment. > > > > Doing the following takes about 70 cycles on both a PolarFire SoC and an > > unmatched: > > long divisor = 2, dividend = 100000, dest; > > asm("div %0, zero, zero" : "=r" (dest)); > > and equates to: > > sd a5,-48(s0) > > div a5,zero,zero > > > > Clocking in at about 40 cycles is some actual divisions, I just did the > > following a dozen times, doing a trivial computation: > > long divisor = 2, dividend = 100000, dest; > > asm("div %0, %1, %2" : "=r" (dividend) : "r" (dividend), "r" (divisor)) > > > > ie, a load of the following: > > sd a5,-48(s0) > > ld a5,-48(s0) > > ld a4,-40(s0) > > div a5,a5,a4 > > > > So clearly the div w/ zero args makes a difference... > > > > On PolarFire SoC, `0x100000F` takes approx 6 cycles. On my unmatched, it > > takes approx 40. Again, I just had an asm block & called the instruction > > a number times and took the average - here it was 48 times. > > > > Take the actual numbers with a fist full of salt, but at least the > > relative numbers should be of some use to you. > > > > Hope that's somewhat helpful, maybe next week I can do something a > > little more useful for you... > > > > Thanks. It would be good to understand what happens when "pause" is > executed on these boards ? The actual pause instruction? uhh, so with the usual "I don't know what I am doing" disclaimer, I ran each of the .insn and pause instruction 48 times in a row and checked the time elapsed via rdcycle & then ran that c program 1000 times in a bash loop. Got the below, the insns were run first and then the pauses. insn pause min 2.3 3.2 max 9.5 10.6 avg 27.0 29.1 5% 2.9 4.2 95% 18.1 19.1 Swapping the pause & insn order around made a minor difference, but not enough to report on. I'd be very wary of drawing any real conclusions from this data, but at least both are roughly similar (and certainly not even close to doing the div w/ zero args. Again, hope that is helpful? Conor. > > > Conor. > > > > > I understand that it is not available in these cores. Just wanted to > > > understand if microarchitecture > > > actually takes a while executing the useless encoding as pointed out by Jessica. > > > > > > If that's the case, we can remove the div instruction altogether. > > > Otherwise, this patch will cause some performance regression > > > for existing SoC (HiFive unleashed has the same core. Not sure about > > > unmatched though). > > > This needs to be documented at least. > > > > > > > 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) > > > > >