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 30DF1C4321E for ; Fri, 2 Dec 2022 13:18:47 +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=z2F1FcxBLYJ0AOMo6Oy4qc9KGceoB38wrykBfQmpZ/o=; b=yue9J6DikyApzv +F+Apq2Ao8ki/cuVvLpmp/yCtc0G/Q7av011xGatwM+GaGQ02JFU75gjedDINs22bn2NcclCRepzc cFyIpCJcUoiwlnHMI7Chtadj2ASbgyteFcfHsFe7zvUD7rLqZq7ZAckziqoW5fEkAg6So+BUBI35J KZJ/7Pu/LCTGyxveOWJrOgk1yCuMbM7NQ9nrs5r0lAcZz6lea8dyugx58a9pu8bpe+jNlaQ00vNRM /sasy5A0muxzk4RKg4my5tddekv8/lHINX9Boacf0SuqlUDhDxbvDnzVxATtMx5fnfskR6Lc4/gjl EEsXwqOWrrFU8RzJp/Mg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p15vL-00GaTW-Il; Fri, 02 Dec 2022 13:17:51 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p15vI-00GaSh-7D for linux-arm-kernel@lists.infradead.org; Fri, 02 Dec 2022 13:17:50 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CE2B323A; Fri, 2 Dec 2022 05:17:44 -0800 (PST) Received: from FVFF77S0Q05N (unknown [10.57.38.229]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9DB9C3F73D; Fri, 2 Dec 2022 05:17:36 -0800 (PST) Date: Fri, 2 Dec 2022 13:17:30 +0000 From: Mark Rutland To: "Masami Hiramatsu (Google)" Cc: Catalin Marinas , Will Deacon , Mark Brown , Kalesh Singh , Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Sandeepa Prabhu Subject: Re: [PATCH v2 1/3] arm64: Prohibit instrumentation on arch_stack_walk() Message-ID: References: <166994750386.439920.1754385804350980158.stgit@devnote3> <166994751368.439920.3236636557520824664.stgit@devnote3> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <166994751368.439920.3236636557520824664.stgit@devnote3> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221202_051748_377142_EF940541 X-CRM114-Status: GOOD ( 29.33 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBEZWMgMDIsIDIwMjIgYXQgMTE6MTg6MzNBTSArMDkwMCwgTWFzYW1pIEhpcmFtYXRz dSAoR29vZ2xlKSB3cm90ZToKPiBGcm9tOiBNYXNhbWkgSGlyYW1hdHN1IChHb29nbGUpIDxtaGly YW1hdEBrZXJuZWwub3JnPgo+IAo+IE1hcmsgYXJjaF9zdGFja193YWxrKCkgYXMgbm9pbnN0ciBp bnN0ZWFkIG9mIG5vdHJhY2UgYW5kIGlubGluZSBmdW5jdGlvbnMKPiBjYWxsZWQgZnJvbSBhcmNo X3N0YWNrX3dhbGsoKSBhcyBfX2Fsd2F5c19pbmxpbmUgc28gdGhhdCB1c2VyIGRvZXMgbm90Cj4g cHV0IGFueSBpbnN0cnVtZW50YXRpb25zIG9uIGl0LCBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gY2Fu IGJlIHVzZWQgZnJvbQo+IHJldHVybl9hZGRyZXNzKCkgd2hpY2ggaXMgdXNlZCBieSBsb2NrZGVw LgoKSG1tbS4uLiBzaW5jZSBhcmNoX3N0YWNrX3dhbGsgaXMgbWFya2VkIGFzIG5vdHJhY2UsIHRo YXQgd2lsbCBiZSBwcm9oaWJpdGVkIGJ5CmRlZmF1bHQgdW5sZXNzIHRoZSBrZXJuZWwgd2FzIGJ1 aWx0IHdpdGggQ09ORklHX0tQUk9CRV9FVkVOVFNfT05fTk9UUkFDRT15LAphbmQgdGhlIGNvbW1p dCBtZXNzYWdlIGZvciB0aGF0IHNheXM6CgrilIIgVGhpcyBvcHRpb24gZGlzYWJsZXMgc3VjaCBw cm90ZWN0aW9uIGFuZCBhbGxvd3MgeW91IHRvIHB1dCBrcHJvYmUgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKU ggrilIIgZXZlbnRzIG9uIGZ0cmFjZSBmdW5jdGlvbnMgZm9yIGRlYnVnZ2luZyBmdHJhY2UgYnkg aXRzZWxmLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggrilIIgTm90ZSB0aGF0IHRoaXMgbWln aHQgbGV0IHlvdSBzaG9vdCB5b3Vyc2VsZiBpbiB0aGUgZm9vdC4KCi4uLiBhbmQgSUlVQyB3ZSBn ZW5lcmFsbHkgZG9uJ3QgZXhwZWN0IHBlb3BsZSB0byBzZXQgdGhhdCwgYW5kIHRoYXQgbWlnaHQg YmUKd29ydGggY2FsbGluZyBvdXQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLgoKPiBXaXRob3V0IHRo aXMsIGlmIHRoZSBrZXJuZWwgYnVpbHQgd2l0aCBDT05GSUdfTE9DS0RFUD15LCBqdXN0IHByb2Jp bmcKPiBhcmNoX3N0YWNrX3dhbGsoKSB2aWEgPHRyYWNlZnM+L2twcm9iZV9ldmVudHMgd2lsbCBj cmFzaCB0aGUga2VybmVsIG9uCj4gYXJtNjQuCj4gCj4gICMgZWNobyBwIGFyY2hfc3RhY2tfd2Fs ayA+PiAke1RSQUNFRlN9L2twcm9iZV9ldmVudHMKPiAgIyBlY2hvIDEgPiAke1RSQUNFRlN9L2V2 ZW50cy9rcHJvYmVzL2VuYWJsZQoKSSBoYWQgYSBnbyBhdCB0ZXN0aW5nIHRoaXMgcGF0Y2gsIGFu ZCBpdCBmaXhlcyB0aGUgY3Jhc2ggd2l0aCB0aGUgcmVwcm9kdWNlcgphYm92ZSwgYnV0IHRoZXJl IGFyZSBwbGVudHkgb2Ygb3RoZXIgaW5zdGFuY2VzIGluIHN0YWNrdHJhY2UuYyB0aGF0IGxlYWQg dG8gdGhlCnNhbWUgc29ydCBvZiBjcmFzaCwgZS5nLgoKIyBlY2hvIHAgc3RhY2tpbmZvX2dldF90 YXNrID4+ICR7VFJBQ0VGU30va3Byb2JlX2V2ZW50cwojIGVjaG8gMSA+ICR7VFJBQ0VGU30vZXZl bnRzL2twcm9iZXMvZW5hYmxlCgouLi4gc28gSSB0aGluayB0aGVyZSdzIG1vcmUgdGhhdCB3ZSBu ZWVkIHRvIGRvIHRvIGZpeCB0aGlzIGdlbmVyYWxseS4KCk5vdGU6IEkgZm91bmQgaW50ZXJlc3Rp bmcgZnVuY3Rpb25zIHRvIHRyeSB0cmFjaW5nIGJ5IGxvb2tpbmcgYXQgdGhlIG91dHB1dCBvZjoK CiAgYWFyY2g2NC1saW51eC1vYmpkdW1wIC10IGFyY2gvYXJtNjQva2VybmVsL3N0YWNrdHJhY2Uu byB8IGdyZXAgLXcgJy50ZXh0JwoKVGhhdCBhbGwgc2FpZCwgSSB0aGluayB0aGlzIHBhdGNoIGlz IG5pY2UtdG8taGF2ZSwgYW5kIHRoYXQgd2UgY2FuIGFkZHJlc3MgdGhlCm90aGVyIGNhc2VzIGFz IGEgZm9sbG93LXVwLCBzbyBmb3IgdGhpcyBwYXRjaCBhcy1pcyAod2l0aCBvciB3aXRob3V0IHNv bWUKd29yZGluZyByZWdhcmRpbmcgQ09ORklHX0tQUk9CRV9FVkVOVFNfT05fTk9UUkFDRSk6CgpB Y2tlZC1ieTogTWFyayBSdXRsYW5kIDxtYXJrLnJ1dGxhbmRAYXJtLmNvbT4KCk1hcmsuCgo+ICAg a3Byb2JlczogRmFpbGVkIHRvIHJlY292ZXIgZnJvbSByZWVudGVyZWQga3Byb2Jlcy4KPiAgIGtw cm9iZXM6IER1bXAga3Byb2JlOgo+ICAgLnN5bWJvbF9uYW1lID0gYXJjaF9zdGFja193YWxrLCAu b2Zmc2V0ID0gMCwgLmFkZHIgPSBhcmNoX3N0YWNrX3dhbGsrMHgwLzB4MWMwCj4gICAtLS0tLS0t LS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KPiAgIGtlcm5lbCBCVUcgYXQgYXJjaC9hcm02 NC9rZXJuZWwvcHJvYmVzL2twcm9iZXMuYzoyNDEhCj4gICBrcHJvYmVzOiBGYWlsZWQgdG8gcmVj b3ZlciBmcm9tIHJlZW50ZXJlZCBrcHJvYmVzLgo+ICAga3Byb2JlczogRHVtcCBrcHJvYmU6Cj4g ICAuc3ltYm9sX25hbWUgPSBhcmNoX3N0YWNrX3dhbGssIC5vZmZzZXQgPSAwLCAuYWRkciA9IGFy Y2hfc3RhY2tfd2FsaysweDAvMHgxYzAKPiAgIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0t LS0tLS0tLQo+ICAga2VybmVsIEJVRyBhdCBhcmNoL2FybTY0L2tlcm5lbC9wcm9iZXMva3Byb2Jl cy5jOjI0MSEKPiAgIFBSRUVNUFQgU01QCj4gICBNb2R1bGVzIGxpbmtlZCBpbjoKPiAgIENQVTog MCBQSUQ6IDE3IENvbW06IG1pZ3JhdGlvbi8wIFRhaW50ZWQ6IEcgICAgICAgICAgICAgICAgIE4g Ni4xLjAtcmM1KyAjNgo+ICAgSGFyZHdhcmUgbmFtZTogbGludXgsZHVtbXktdmlydCAoRFQpCj4g ICBTdG9wcGVyOiAweDAgPC0gMHgwCj4gICBwc3RhdGU6IDYwMDAwM2M1IChuWkN2IERBSUYgLVBB TiAtVUFPIC1UQ08gLURJVCAtU1NCUyBCVFlQRT0tLSkKPiAgIHBjIDoga3Byb2JlX2JyZWFrcG9p bnRfaGFuZGxlcisweDE3OC8weDE3Ywo+ICAgbHIgOiBrcHJvYmVfYnJlYWtwb2ludF9oYW5kbGVy KzB4MTc4LzB4MTdjCj4gICBzcCA6IGZmZmY4MDAwMDgwZDMwOTAKPiAgIHgyOTogZmZmZjgwMDAw ODBkMzA5MCB4Mjg6IGZmZmYwZGY1ODQ1Nzk4YzAgeDI3OiBmZmZmYzRmNTkwNTdhNzc0Cj4gICB4 MjY6IGZmZmYwZGY1ZmZiYmE3NzAgeDI1OiBmZmZmMGRmNThmNDIwZjE4IHgyNDogZmZmZjQ5MDA2 ZjY0MTAwMAo+ICAgeDIzOiBmZmZmYzRmNTkwNTc5NzY4IHgyMjogZmZmZjBkZjU4ZjQyMGYxOCB4 MjE6IGZmZmY4MDAwMDgwZDMxYzAKPiAgIHgyMDogZmZmZmM0ZjU5MDU3OTc2OCB4MTk6IGZmZmZj NGY1OTA1Nzk3NzAgeDE4OiAwMDAwMDAwMDAwMDAwMDA2Cj4gICB4MTc6IDVmNmI2MzYxNzQ3MzVm NjggeDE2OiA2MzcyNjEyMDNkMjA3MjY0IHgxNTogNjQ2MTJlMjAyYzMwMjAzZAo+ICAgeDE0OiAy MDc0NjU3MzY2NjY2ZjJlIHgxMzogMzA2MzMxNzgzMDJmMzA3OCB4MTI6IDMwMmI2YjZjNjE3NzVm NmIKPiAgIHgxMTogNjM2MTc0NzM1ZjY4NjM3MiB4MTA6IGZmZmZjNGY1OTBkYzViZDggeDkgOiBm ZmZmYzRmNThlYjMxOTU4Cj4gICB4OCA6IDAwMDAwMDAwZmZmZmVmZmYgeDcgOiBmZmZmYzRmNTkw ZGM1YmQ4IHg2IDogODAwMDAwMDBmZmZmZjAwMAo+ICAgeDUgOiAwMDAwMDAwMDAwMDBiZmY0IHg0 IDogMDAwMDAwMDAwMDAwMDAwMCB4MyA6IDAwMDAwMDAwMDAwMDAwMDAKPiAgIHgyIDogMDAwMDAw MDAwMDAwMDAwMCB4MSA6IGZmZmYwZGY1ODQ1Nzk4YzAgeDAgOiAwMDAwMDAwMDAwMDAwMDY0Cj4g ICBDYWxsIHRyYWNlOgo+ICAga3Byb2JlczogRmFpbGVkIHRvIHJlY292ZXIgZnJvbSByZWVudGVy ZWQga3Byb2Jlcy4KPiAgIGtwcm9iZXM6IER1bXAga3Byb2JlOgo+ICAgLnN5bWJvbF9uYW1lID0g YXJjaF9zdGFja193YWxrLCAub2Zmc2V0ID0gMCwgLmFkZHIgPSBhcmNoX3N0YWNrX3dhbGsrMHgw LzB4MWMwCj4gICAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KPiAgIGtlcm5l bCBCVUcgYXQgYXJjaC9hcm02NC9rZXJuZWwvcHJvYmVzL2twcm9iZXMuYzoyNDEhCj4gCj4gRml4 ZXM6IDM5ZWYzNjJkMmQ0NSAoImFybTY0OiBNYWtlIHJldHVybl9hZGRyZXNzKCkgdXNlIGFyY2hf c3RhY2tfd2FsaygpIikKPiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwo+IFNpZ25lZC1vZmYt Ynk6IE1hc2FtaSBIaXJhbWF0c3UgKEdvb2dsZSkgPG1oaXJhbWF0QGtlcm5lbC5vcmc+Cj4gLS0t Cj4gIENoYW5nZXMgaW4gdjI6Cj4gICAtIFVzZSBub2luc3RyIGluc3RlYWQgb2YgTk9LUFJPQkVf U1lNQk9MKCkKPiAgIC0gVXNlIF9fYWx3YXlzX2lubGluZSBiZWNhdXNlIG5va3Byb2JlX2lubGlu ZSB3aWxsIGJlIGNoYW5nZWQgaWYKPiAgICAgQ09ORklHX0tQUk9CRVM9bi4KPiAgIC0gRml4IGlu ZGVudGF0aW9uLgo+IC0tLQo+ICBhcmNoL2FybTY0L2tlcm5lbC9zdGFja3RyYWNlLmMgfCAgIDEw ICsrKysrLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rZXJuZWwvc3RhY2t0cmFjZS5jIGIv YXJjaC9hcm02NC9rZXJuZWwvc3RhY2t0cmFjZS5jCj4gaW5kZXggNjM0Mjc5YjNiMDNkLi4xMTdl MmMxODBmM2MgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvc3RhY2t0cmFjZS5jCj4g KysrIGIvYXJjaC9hcm02NC9rZXJuZWwvc3RhY2t0cmFjZS5jCj4gQEAgLTIzLDggKzIzLDggQEAK PiAgICoKPiAgICogVGhlIHJlZ3MgbXVzdCBiZSBvbiBhIHN0YWNrIGN1cnJlbnRseSBvd25lZCBi eSB0aGUgY2FsbGluZyB0YXNrLgo+ICAgKi8KPiAtc3RhdGljIGlubGluZSB2b2lkIHVud2luZF9p bml0X2Zyb21fcmVncyhzdHJ1Y3QgdW53aW5kX3N0YXRlICpzdGF0ZSwKPiAtCQkJCQkgc3RydWN0 IHB0X3JlZ3MgKnJlZ3MpCj4gK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCB1bndpbmRfaW5p dF9mcm9tX3JlZ3Moc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUsCj4gKwkJCQkJCSAgc3RydWN0 IHB0X3JlZ3MgKnJlZ3MpCj4gIHsKPiAgCXVud2luZF9pbml0X2NvbW1vbihzdGF0ZSwgY3VycmVu dCk7Cj4gIAo+IEBAIC01OCw4ICs1OCw4IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCB1 bndpbmRfaW5pdF9mcm9tX2NhbGxlcihzdHJ1Y3QgdW53aW5kX3N0YXRlICpzdGF0ZSkKPiAgICog ZHVyYXRpb24gb2YgdGhlIHVud2luZCwgb3IgdGhlIHVud2luZCB3aWxsIGJlIGJvZ3VzLiBJdCBp cyBuZXZlciB2YWxpZCB0bwo+ICAgKiBjYWxsIHRoaXMgZm9yIHRoZSBjdXJyZW50IHRhc2suCj4g ICAqLwo+IC1zdGF0aWMgaW5saW5lIHZvaWQgdW53aW5kX2luaXRfZnJvbV90YXNrKHN0cnVjdCB1 bndpbmRfc3RhdGUgKnN0YXRlLAo+IC0JCQkJCSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCj4g K3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCB1bndpbmRfaW5pdF9mcm9tX3Rhc2soc3RydWN0 IHVud2luZF9zdGF0ZSAqc3RhdGUsCj4gKwkJCQkJCSAgc3RydWN0IHRhc2tfc3RydWN0ICp0YXNr KQo+ICB7Cj4gIAl1bndpbmRfaW5pdF9jb21tb24oc3RhdGUsIHRhc2spOwo+ICAKPiBAQCAtMTg2 LDcgKzE4Niw3IEBAIHZvaWQgc2hvd19zdGFjayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgdW5z aWduZWQgbG9uZyAqc3AsIGNvbnN0IGNoYXIgKmxvZ2x2bCkKPiAgCQkJOiBzdGFja2luZm9fZ2V0 X3Vua25vd24oKTsJCVwKPiAgCX0pCj4gIAo+IC1ub2lubGluZSBub3RyYWNlIHZvaWQgYXJjaF9z dGFja193YWxrKHN0YWNrX3RyYWNlX2NvbnN1bWVfZm4gY29uc3VtZV9lbnRyeSwKPiArbm9pbmxp bmUgbm9pbnN0ciB2b2lkIGFyY2hfc3RhY2tfd2FsayhzdGFja190cmFjZV9jb25zdW1lX2ZuIGNv bnN1bWVfZW50cnksCj4gIAkJCSAgICAgIHZvaWQgKmNvb2tpZSwgc3RydWN0IHRhc2tfc3RydWN0 ICp0YXNrLAo+ICAJCQkgICAgICBzdHJ1Y3QgcHRfcmVncyAqcmVncykKPiAgewo+IAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= 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 351B5C4321E for ; Fri, 2 Dec 2022 13:17:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233210AbiLBNRt (ORCPT ); Fri, 2 Dec 2022 08:17:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48300 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233062AbiLBNRp (ORCPT ); Fri, 2 Dec 2022 08:17:45 -0500 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 9EFE521BE for ; Fri, 2 Dec 2022 05:17:38 -0800 (PST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CE2B323A; Fri, 2 Dec 2022 05:17:44 -0800 (PST) Received: from FVFF77S0Q05N (unknown [10.57.38.229]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9DB9C3F73D; Fri, 2 Dec 2022 05:17:36 -0800 (PST) Date: Fri, 2 Dec 2022 13:17:30 +0000 From: Mark Rutland To: "Masami Hiramatsu (Google)" Cc: Catalin Marinas , Will Deacon , Mark Brown , Kalesh Singh , Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Sandeepa Prabhu Subject: Re: [PATCH v2 1/3] arm64: Prohibit instrumentation on arch_stack_walk() Message-ID: References: <166994750386.439920.1754385804350980158.stgit@devnote3> <166994751368.439920.3236636557520824664.stgit@devnote3> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <166994751368.439920.3236636557520824664.stgit@devnote3> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Dec 02, 2022 at 11:18:33AM +0900, Masami Hiramatsu (Google) wrote: > From: Masami Hiramatsu (Google) > > Mark arch_stack_walk() as noinstr instead of notrace and inline functions > called from arch_stack_walk() as __always_inline so that user does not > put any instrumentations on it, because this function can be used from > return_address() which is used by lockdep. Hmmm... since arch_stack_walk is marked as notrace, that will be prohibited by default unless the kernel was built with CONFIG_KPROBE_EVENTS_ON_NOTRACE=y, and the commit message for that says: │ This option disables such protection and allows you to put kprobe │ │ events on ftrace functions for debugging ftrace by itself. │ │ Note that this might let you shoot yourself in the foot. ... and IIUC we generally don't expect people to set that, and that might be worth calling out in the commit message. > Without this, if the kernel built with CONFIG_LOCKDEP=y, just probing > arch_stack_walk() via /kprobe_events will crash the kernel on > arm64. > > # echo p arch_stack_walk >> ${TRACEFS}/kprobe_events > # echo 1 > ${TRACEFS}/events/kprobes/enable I had a go at testing this patch, and it fixes the crash with the reproducer above, but there are plenty of other instances in stacktrace.c that lead to the same sort of crash, e.g. # echo p stackinfo_get_task >> ${TRACEFS}/kprobe_events # echo 1 > ${TRACEFS}/events/kprobes/enable ... so I think there's more that we need to do to fix this generally. Note: I found interesting functions to try tracing by looking at the output of: aarch64-linux-objdump -t arch/arm64/kernel/stacktrace.o | grep -w '.text' That all said, I think this patch is nice-to-have, and that we can address the other cases as a follow-up, so for this patch as-is (with or without some wording regarding CONFIG_KPROBE_EVENTS_ON_NOTRACE): Acked-by: Mark Rutland Mark. > kprobes: Failed to recover from reentered kprobes. > kprobes: Dump kprobe: > .symbol_name = arch_stack_walk, .offset = 0, .addr = arch_stack_walk+0x0/0x1c0 > ------------[ cut here ]------------ > kernel BUG at arch/arm64/kernel/probes/kprobes.c:241! > kprobes: Failed to recover from reentered kprobes. > kprobes: Dump kprobe: > .symbol_name = arch_stack_walk, .offset = 0, .addr = arch_stack_walk+0x0/0x1c0 > ------------[ cut here ]------------ > kernel BUG at arch/arm64/kernel/probes/kprobes.c:241! > PREEMPT SMP > Modules linked in: > CPU: 0 PID: 17 Comm: migration/0 Tainted: G N 6.1.0-rc5+ #6 > Hardware name: linux,dummy-virt (DT) > Stopper: 0x0 <- 0x0 > pstate: 600003c5 (nZCv DAIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > pc : kprobe_breakpoint_handler+0x178/0x17c > lr : kprobe_breakpoint_handler+0x178/0x17c > sp : ffff8000080d3090 > x29: ffff8000080d3090 x28: ffff0df5845798c0 x27: ffffc4f59057a774 > x26: ffff0df5ffbba770 x25: ffff0df58f420f18 x24: ffff49006f641000 > x23: ffffc4f590579768 x22: ffff0df58f420f18 x21: ffff8000080d31c0 > x20: ffffc4f590579768 x19: ffffc4f590579770 x18: 0000000000000006 > x17: 5f6b636174735f68 x16: 637261203d207264 x15: 64612e202c30203d > x14: 2074657366666f2e x13: 30633178302f3078 x12: 302b6b6c61775f6b > x11: 636174735f686372 x10: ffffc4f590dc5bd8 x9 : ffffc4f58eb31958 > x8 : 00000000ffffefff x7 : ffffc4f590dc5bd8 x6 : 80000000fffff000 > x5 : 000000000000bff4 x4 : 0000000000000000 x3 : 0000000000000000 > x2 : 0000000000000000 x1 : ffff0df5845798c0 x0 : 0000000000000064 > Call trace: > kprobes: Failed to recover from reentered kprobes. > kprobes: Dump kprobe: > .symbol_name = arch_stack_walk, .offset = 0, .addr = arch_stack_walk+0x0/0x1c0 > ------------[ cut here ]------------ > kernel BUG at arch/arm64/kernel/probes/kprobes.c:241! > > Fixes: 39ef362d2d45 ("arm64: Make return_address() use arch_stack_walk()") > Cc: stable@vger.kernel.org > Signed-off-by: Masami Hiramatsu (Google) > --- > Changes in v2: > - Use noinstr instead of NOKPROBE_SYMBOL() > - Use __always_inline because nokprobe_inline will be changed if > CONFIG_KPROBES=n. > - Fix indentation. > --- > arch/arm64/kernel/stacktrace.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c > index 634279b3b03d..117e2c180f3c 100644 > --- a/arch/arm64/kernel/stacktrace.c > +++ b/arch/arm64/kernel/stacktrace.c > @@ -23,8 +23,8 @@ > * > * The regs must be on a stack currently owned by the calling task. > */ > -static inline void unwind_init_from_regs(struct unwind_state *state, > - struct pt_regs *regs) > +static __always_inline void unwind_init_from_regs(struct unwind_state *state, > + struct pt_regs *regs) > { > unwind_init_common(state, current); > > @@ -58,8 +58,8 @@ static __always_inline void unwind_init_from_caller(struct unwind_state *state) > * duration of the unwind, or the unwind will be bogus. It is never valid to > * call this for the current task. > */ > -static inline void unwind_init_from_task(struct unwind_state *state, > - struct task_struct *task) > +static __always_inline void unwind_init_from_task(struct unwind_state *state, > + struct task_struct *task) > { > unwind_init_common(state, task); > > @@ -186,7 +186,7 @@ void show_stack(struct task_struct *tsk, unsigned long *sp, const char *loglvl) > : stackinfo_get_unknown(); \ > }) > > -noinline notrace void arch_stack_walk(stack_trace_consume_fn consume_entry, > +noinline noinstr void arch_stack_walk(stack_trace_consume_fn consume_entry, > void *cookie, struct task_struct *task, > struct pt_regs *regs) > { >