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 457C3ECAAD8 for ; Fri, 23 Sep 2022 07:18: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:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QMur9ohTQ/NZXpgpOl+phL/C+2Rkw3/QDtSf6EuM1Lk=; b=eYQDTeR+zuBXGp 95ow99Ua0IAQr3B6PiU1MW6du2J05Hg4WGQDK4Mt32Ww7sVTUzIPJibv0AVh4SR3MMHBrLtsssfUz ObnMkNQg9BbRkIGWwHKBJdXiHp/+wpgFQyoXk4i+cWgMsCTnjL43sAz/U3QPNyFkGqBWVMuNSU2Ah qVktJvJVdCiEKm+8Eqb+M3IfY6SLySmKglVq8IubGZYHeFzU3RrYRG0HqHcJQMct/eOsn9dGNPyP5 nZ/76cPeWCD6maGRbz6GZltEFZGdkE8at9EbX/u6ajT5J8TrplwNt0+T6TqF597ofh88UZDDzy4RF OfBFahJKHfZFQe+MfJbg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1obcwa-002elG-Ia; Fri, 23 Sep 2022 07:17:52 +0000 Received: from gloria.sntech.de ([185.11.138.130]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1obcwX-002ehP-7p for linux-riscv@lists.infradead.org; Fri, 23 Sep 2022 07:17:50 +0000 Received: from p508fdb48.dip0.t-ipconnect.de ([80.143.219.72] helo=phil.localnet) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1obcwQ-0004Yg-Mr; Fri, 23 Sep 2022 09:17:42 +0200 From: Heiko Stuebner To: Jessica Clarke Cc: 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 Date: Fri, 23 Sep 2022 09:17:41 +0200 Message-ID: <13396584.uLZWGnKmhe@phil> In-Reply-To: <2E96A836-764D-4D07-AB79-3861B9CC2B1F@jrtc27.com> References: <20220922060958.44203-1-samuel@sholland.org> <2546376.ElGaqSPkdT@phil> <2E96A836-764D-4D07-AB79-3861B9CC2B1F@jrtc27.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220923_001749_317168_933A2FEB X-CRM114-Status: GOOD ( 33.09 ) 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 SGksCgpBbSBEb25uZXJzdGFnLCAyMi4gU2VwdGVtYmVyIDIwMjIsIDE3OjUyOjQ2IENFU1Qgc2No cmllYiBKZXNzaWNhIENsYXJrZToKPiBPbiAyMiBTZXB0IDIwMjIsIGF0IDE2OjQ1LCBIZWlrbyBT dHVlYm5lciA8aGVpa29Ac250ZWNoLmRlPiB3cm90ZToKPiA+IAo+ID4gQW0gRG9ubmVyc3RhZywg MjIuIFNlcHRlbWJlciAyMDIyLCAwODowOTo1OCBDRVNUIHNjaHJpZWIgU2FtdWVsIEhvbGxhbmQ6 Cj4gPj4gY29tbWl0IDhlYjA2MGUxMDE4NSAoImFyY2gvcmlzY3Y6IGFkZCBaaWhpbnRwYXVzZSBz dXBwb3J0IikgYnJva2UKPiA+PiBidWlsZGluZyB3aXRoIENPTkZJR19DQ19PUFRJTUlaRV9GT1Jf U0laRSBlbmFibGVkIChnY2MgMTEuMS4wKToKPiA+PiAKPiA+PiBDQyBhcmNoL3Jpc2N2L2tlcm5l bC92ZHNvL3ZnZXR0aW1lb2ZkYXkubwo+ID4+IEluIGZpbGUgaW5jbHVkZWQgZnJvbSA8Y29tbWFu ZC1saW5lPjoKPiA+PiAuL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vanVtcF9sYWJlbC5oOiBJbiBm dW5jdGlvbiAnY3B1X3JlbGF4JzoKPiA+PiAuLy4vaW5jbHVkZS9saW51eC9jb21waWxlcl90eXBl cy5oOjI4NTozMzogd2FybmluZzogJ2FzbScgb3BlcmFuZCAwIHByb2JhYmx5IGRvZXMgbm90IG1h dGNoIGNvbnN0cmFpbnRzCj4gPj4gMjg1IHwgI2RlZmluZSBhc21fdm9sYXRpbGVfZ290byh4Li4u KSBhc20gZ290byh4KQo+ID4+IHwgXn5+Cj4gPj4gLi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2p1 bXBfbGFiZWwuaDo0MTo5OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ2FzbV92b2xhdGls ZV9nb3RvJwo+ID4+IDQxIHwgYXNtX3ZvbGF0aWxlX2dvdG8oCj4gPj4gfCBefn5+fn5+fn5+fn5+ fn5+fgo+ID4+IC4vLi9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyX3R5cGVzLmg6Mjg1OjMzOiBlcnJv cjogaW1wb3NzaWJsZSBjb25zdHJhaW50IGluICdhc20nCj4gPj4gMjg1IHwgI2RlZmluZSBhc21f dm9sYXRpbGVfZ290byh4Li4uKSBhc20gZ290byh4KQo+ID4+IHwgXn5+Cj4gPj4gLi9hcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaDo0MTo5OiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8gJ2FzbV92b2xhdGlsZV9nb3RvJwo+ID4+IDQxIHwgYXNtX3ZvbGF0aWxlX2dvdG8oCj4g Pj4gfCBefn5+fn5+fn5+fn5+fn5+fgo+ID4+IG1ha2VbMV06ICoqKiBbc2NyaXB0cy9NYWtlZmls ZS5idWlsZDoyNDk6IGFyY2gvcmlzY3Yva2VybmVsL3Zkc28vdmdldHRpbWVvZmRheS5vXSBFcnJv ciAxCj4gPj4gbWFrZTogKioqIFthcmNoL3Jpc2N2L01ha2VmaWxlOjEyODogdmRzb19wcmVwYXJl XSBFcnJvciAyCj4gPj4gCj4gPj4gSGF2aW5nIGEgc3RhdGljIGJyYW5jaCBpbiBjcHVfcmVsYXgo KSBpcyBwcm9ibGVtYXRpYyBiZWNhdXNlIHRoYXQKPiA+PiBmdW5jdGlvbiBpcyB3aWRlbHkgaW5s aW5lZCwgaW5jbHVkaW5nIGluIHNvbWUgcXVpdGUgY29tcGxleCBmdW5jdGlvbnMKPiA+PiBsaWtl IGluIHRoZSBWRFNPLiBBIHF1aWNrIG1lYXN1cmVtZW50IHNob3dzIHRoaXMgc3RhdGljIGJyYW5j aCBpcwo+ID4+IHJlc3BvbnNpYmxlIGJ5IGl0c2VsZiBmb3IgYXJvdW5kIDQwJSBvZiB0aGUganVt cCB0YWJsZS4KPiA+PiAKPiA+PiBEcm9wIHRoZSBzdGF0aWMgYnJhbmNoLCB3aGljaCBlbmRzIHVw IGJlaW5nIHRoZSBzYW1lIG51bWJlciBvZgo+ID4+IGluc3RydWN0aW9ucyBhbnl3YXkuIElmIFpp aGludHBhdXNlIGlzIHN1cHBvcnRlZCwgd2UgdHJhZGUgdGhlIG5vcCBmcm9tCj4gPj4gdGhlIHN0 YXRpYyBicmFuY2ggZm9yIGEgZGl2LiBJZiBaaWhpbnRwYXVzZSBpcyB1bnN1cHBvcnRlZCwgd2Ug dHJhZGUgdGhlCj4gPj4ganVtcCBmcm9tIHRoZSBzdGF0aWMgYnJhbmNoIGZvciAod2hhdCBnZXRz IGludGVycHJldGVkIGFzKSBhIG5vcC4KPiA+PiAKPiA+PiBGaXhlczogOGViMDYwZTEwMTg1ICgi YXJjaC9yaXNjdjogYWRkIFppaGludHBhdXNlIHN1cHBvcnQiKQo+ID4+IFNpZ25lZC1vZmYtYnk6 IFNhbXVlbCBIb2xsYW5kIDxzYW11ZWxAc2hvbGxhbmQub3JnPgo+ID4+IC0tLQo+ID4+IAo+ID4+ IGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdjYXAuaCB8IDMgLS0tCj4gPj4gYXJjaC9yaXNjdi9p bmNsdWRlL2FzbS92ZHNvL3Byb2Nlc3Nvci5oIHwgMjUgKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LQo+ID4+IDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0p Cj4gPj4gCj4gPj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdjYXAuaCBi L2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdjYXAuaAo+ID4+IGluZGV4IDZmNTllYzY0MTc1ZS4u YjIxZDQ2ZTY4Mzg2IDEwMDY0NAo+ID4+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdj YXAuaAo+ID4+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdjYXAuaAo+ID4+IEBAIC02 OCw3ICs2OCw2IEBAIGVudW0gcmlzY3ZfaXNhX2V4dF9pZCB7Cj4gPj4gKi8KPiA+PiBlbnVtIHJp c2N2X2lzYV9leHRfa2V5IHsKPiA+PiAJUklTQ1ZfSVNBX0VYVF9LRVlfRlBVLAkJLyogRm9yICdG JyBhbmQgJ0QnICovCj4gPj4gLQlSSVNDVl9JU0FfRVhUX0tFWV9aSUhJTlRQQVVTRSwKPiA+PiAJ UklTQ1ZfSVNBX0VYVF9LRVlfTUFYLAo+ID4+IH07Cj4gPj4gCj4gPj4gQEAgLTg4LDggKzg3LDYg QEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSBpbnQgcmlzY3ZfaXNhX2V4dDJrZXkoaW50IG51bSkK PiA+PiAJCXJldHVybiBSSVNDVl9JU0FfRVhUX0tFWV9GUFU7Cj4gPj4gCWNhc2UgUklTQ1ZfSVNB X0VYVF9kOgo+ID4+IAkJcmV0dXJuIFJJU0NWX0lTQV9FWFRfS0VZX0ZQVTsKPiA+PiAtCWNhc2Ug UklTQ1ZfSVNBX0VYVF9aSUhJTlRQQVVTRToKPiA+PiAtCQlyZXR1cm4gUklTQ1ZfSVNBX0VYVF9L RVlfWklISU5UUEFVU0U7Cj4gPj4gCWRlZmF1bHQ6Cj4gPj4gCQlyZXR1cm4gLUVJTlZBTDsKPiA+ PiAJfQo+ID4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Zkc28vcHJvY2Vz c29yLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Zkc28vcHJvY2Vzc29yLmgKPiA+PiBpbmRl eCAxZTRmOGI0YWVmNzkuLjc4OWJkYjgyMTFhMiAxMDA2NDQKPiA+PiAtLS0gYS9hcmNoL3Jpc2N2 L2luY2x1ZGUvYXNtL3Zkc28vcHJvY2Vzc29yLmgKPiA+PiArKysgYi9hcmNoL3Jpc2N2L2luY2x1 ZGUvYXNtL3Zkc28vcHJvY2Vzc29yLmgKPiA+PiBAQCAtNCwzMCArNCwyNSBAQAo+ID4+IAo+ID4+ ICNpZm5kZWYgX19BU1NFTUJMWV9fCj4gPj4gCj4gPj4gLSNpbmNsdWRlIDxsaW51eC9qdW1wX2xh YmVsLmg+Cj4gPj4gI2luY2x1ZGUgPGFzbS9iYXJyaWVyLmg+Cj4gPj4gLSNpbmNsdWRlIDxhc20v aHdjYXAuaD4KPiA+PiAKPiA+PiBzdGF0aWMgaW5saW5lIHZvaWQgY3B1X3JlbGF4KHZvaWQpCj4g Pj4gewo+ID4+IC0JaWYgKCFzdGF0aWNfYnJhbmNoX2xpa2VseSgmcmlzY3ZfaXNhX2V4dF9rZXlz W1JJU0NWX0lTQV9FWFRfS0VZX1pJSElOVFBBVVNFXSkpIHsKPiA+PiAjaWZkZWYgX19yaXNjdl9t dWxkaXYKPiA+PiAtCQlpbnQgZHVtbXk7Cj4gPj4gLQkJLyogSW4gbGlldSBvZiBhIGhhbHQgaW5z dHJ1Y3Rpb24sIGluZHVjZSBhIGxvbmctbGF0ZW5jeSBzdGFsbC4gKi8KPiA+PiAtCQlfX2FzbV9f IF9fdm9sYXRpbGVfXyAoImRpdiAlMCwgJTAsIHplcm8iIDogIj1yIiAoZHVtbXkpKTsKPiA+PiAr CWludCBkdW1teTsKPiA+PiArCS8qIEluIGxpZXUgb2YgYSBoYWx0IGluc3RydWN0aW9uLCBpbmR1 Y2UgYSBsb25nLWxhdGVuY3kgc3RhbGwuICovCj4gPj4gKwlfX2FzbV9fIF9fdm9sYXRpbGVfXyAo ImRpdiAlMCwgJTAsIHplcm8iIDogIj1yIiAoZHVtbXkpKTsKPiA+PiAjZW5kaWYKPiA+PiAtCX0g ZWxzZSB7Cj4gPj4gLQkJLyoKPiA+PiAtCQkgKiBSZWR1Y2UgaW5zdHJ1Y3Rpb24gcmV0aXJlbWVu dC4KPiA+PiAtCQkgKiBUaGlzIGFzc3VtZXMgdGhlIFBDIGNoYW5nZXMuCj4gPj4gLQkJICovCj4g Pj4gKwkvKgo+ID4+ICsJICogUmVkdWNlIGluc3RydWN0aW9uIHJldGlyZW1lbnQuCj4gPj4gKwkg KiBUaGlzIGFzc3VtZXMgdGhlIFBDIGNoYW5nZXMuCj4gPj4gKwkgKi8KPiA+PiAjaWZkZWYgX19y aXNjdl96aWhpbnRwYXVzZQo+ID4+IC0JCV9fYXNtX18gX192b2xhdGlsZV9fICgicGF1c2UiKTsK PiA+PiArCV9fYXNtX18gX192b2xhdGlsZV9fICgicGF1c2UiKTsKPiA+PiAjZWxzZQo+ID4+IC0J CS8qIEVuY29kaW5nIG9mIHRoZSBwYXVzZSBpbnN0cnVjdGlvbiAqLwo+ID4+IC0JCV9fYXNtX18g X192b2xhdGlsZV9fICgiLjRieXRlIDB4MTAwMDAwRiIpOwo+ID4+ICsJLyogRW5jb2Rpbmcgb2Yg dGhlIHBhdXNlIGluc3RydWN0aW9uICovCj4gPj4gKwlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIi40 Ynl0ZSAweDEwMDAwMEYiKTsKPiA+PiAjZW5kaWYKPiA+IAo+ID4gaG1tLCB0aG91Z2ggYmVmb3Jl IHRoaXMgcGFydCBvZiB0aGUgY29kZSB3YXMgb25seSBldmVyIGFjY2Vzc2VkCj4gPiB3aGVuIHRo ZSB6aGludHBhdXNlIGV4dGVuc2lvbiB3YXMgcmVhbGx5IGF2YWlsYWJsZSBvbiB0aGUgcnVubmlu Zwo+ID4gbWFjaGluZSB3aGlsZSBub3cgdGhlIHBhdXNlIGluc3RydWN0aW9uIGlzIGNhbGxlZCBl dmVyeSB0aW1lLgo+ID4gCj4gPiBTbyBJJ20ganVzdCB3b25kZXJpbmcsIGNhbid0IHRoaXMgcnVu IGludG8gc29tZSAiaWxsZWdhbCBpbnN0cnVjdGlvbiIKPiA+IHRoaW5neSBvbiBtYWNoaW5lcyBu b3Qgc3VwcG9ydGluZyB0aGUgZXh0ZW5zaW9uPwo+IAo+IE5vLiBUaGUgZW5jb2RpbmcgZm9yIHBh dXNlIHdhcyBkZWxpYmVyYXRlbHkgY2hvc2VuIHRvIGJlIG9uZSBvZiB0aGUKPiDigJx1c2VsZXNz 4oCdIGVuY29kaW5ncyBvZiBmZW5jZSwgd2l0aCB0aGUgaG9wZSB0aGF0IGV4aXN0aW5nCj4gbWlj cm9hcmNoaXRlY3R1cmVzIG1pZ2h0IHRha2UgYSB3aGlsZSB0byBleGVjdXRlIGl0IGFuZCB0aHVz IGl0IHdvdWxkCj4gc3RpbGwgZnVuY3Rpb24gYXMgYSBzbG93LXJ1bm5pbmcgaW5zdHJ1Y3Rpb24u IEl04oCZcyBzb21ld2hhdAo+IHF1ZXN0aW9uYWJsZSB3aGV0aGVyIHRoZSBkaXYgaXMgZXZlbiBu ZWVkZWQsIHRoZSB3b3JzdCB0aGF0IGhhcHBlbnMgaXMKPiBjcHVfcmVsYXggaXNu4oCZdCB2ZXJ5 IHJlbGF4ZWQgYW5kIHlvdSBzcGluIGEgYml0IGZhc3Rlci4gQW55Cj4gaW1wbGVtZW50YXRpb25z IHdoZXJlIHRoYXTigJlzIHRydWUgcHJvYmFibHkgYWxzbyBkb27igJl0IGhhdmUgZmFuY3kKPiBj bG9jay9wb3dlciBtYW5hZ2VtZW50IGFueXdheSwgYW5kIGRpdiBpc27igJl0IGdvaW5nIHRvIGJl IGEgbG93LXBvd2VyCj4gb3BlcmF0aW9uIHNvIHRoZSBvbmx5IHJlYWwgZWZmZWN0IGlzIGxpa2Vs eSBoYW1tZXJpbmcgb24gY29udGVuZGVkCj4gYXRvbWljcyBhIGJpdCBtb3JlLCBhbmQgd2hvIGNh cmVzIGFib3V0IHRoYXQgb24gdGhlIGxvdyBjb3JlIGNvdW50Cj4gc3lzdGVtcyB3ZSBoYXZlIHRv ZGF5LgoKdGhhbmtzIGEgbG90IGZvciB0aGF0IGV4cGxhbmF0aW9uLCB3aGljaCBtYWRlIHRoaW5n cyBhIGxvdCBjbGVhcmVyLgoKU28gYXMgeW91IHNhaWQsIGRyb3BwaW5nIHRoZSBkaXYgcGFydCBt aWdodCBtYWtlIHRoZSBmdW5jdGlvbiBldmVuIHNtYWxsZXIsCnRob3VnaCBzb21laG93IHBhcnQg b2YgbWUgd291bGQgd2FudCB0byBhZGQgc29tZSBzb3J0IG9mIGNvbW1lbnQgdG8KdGhlIGZ1bmN0 aW9uIGZvciB3aGVuIHRoZSBuZXh0IGRldmVsb3BlciBzdHVtYmxlcyBvdmVyIHRoZSB1bmNvbmRp dGlvbmFsCnVzZSBvZiBwYXVzZSA6LSkgLgoKCkhlaWtvCgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51 eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK 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 2F7DAC6FA82 for ; Fri, 23 Sep 2022 07:18:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230379AbiIWHSL convert rfc822-to-8bit (ORCPT ); Fri, 23 Sep 2022 03:18:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55340 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230297AbiIWHSA (ORCPT ); Fri, 23 Sep 2022 03:18:00 -0400 Received: from gloria.sntech.de (gloria.sntech.de [185.11.138.130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DDF8E12B487 for ; Fri, 23 Sep 2022 00:17:52 -0700 (PDT) Received: from p508fdb48.dip0.t-ipconnect.de ([80.143.219.72] helo=phil.localnet) by gloria.sntech.de with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1obcwQ-0004Yg-Mr; Fri, 23 Sep 2022 09:17:42 +0200 From: Heiko Stuebner To: Jessica Clarke Cc: 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 Date: Fri, 23 Sep 2022 09:17:41 +0200 Message-ID: <13396584.uLZWGnKmhe@phil> In-Reply-To: <2E96A836-764D-4D07-AB79-3861B9CC2B1F@jrtc27.com> References: <20220922060958.44203-1-samuel@sholland.org> <2546376.ElGaqSPkdT@phil> <2E96A836-764D-4D07-AB79-3861B9CC2B1F@jrtc27.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 :-) . Heiko