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 7F286C433FE for ; Tue, 1 Nov 2022 23:31:08 +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=faNrpt17+1sbqL/3Ve7T87ti4Acm7gzFbXRZio/7hAY=; b=gQQlrmhcsxpQaX L009Uo7JIL+vvD9bTf/w6Yiezsz3q0n01lxMCbBNbHx3u7Epn/LD0jJL8ZbPc2o3NnpPm09FxjlD8 XDc6dDPe2QANKNuB61AcsGqYIztYC/LGO2dA7/xO3XujllrUNt6ZeppPnbgF8UI+VN37vQkxFD1h8 BkEQcK5YmPyEz+NJ0u+nf7cBMzcS31nf4uq67r47YZetVjy8nY+2wNfBdvxkXSsVE3MR6OoaZ+rc2 nAxFbUUld5l5y5HTofw+RiR2z+kXg28XQZ9uT30PKCO4+2p+NVj1SUgDzpptwkue9aR/cmsczgziM c4W/rk3LCWXgV322KaMg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oq0ib-007g7X-4O; Tue, 01 Nov 2022 23:30:53 +0000 Received: from sin.source.kernel.org ([2604:1380:40e1:4800::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oq0iY-007g6m-9f for linux-riscv@lists.infradead.org; Tue, 01 Nov 2022 23:30:52 +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 sin.source.kernel.org (Postfix) with ESMTPS id E3A9ECE1EED; Tue, 1 Nov 2022 23:30:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 13845C433D7; Tue, 1 Nov 2022 23:30:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1667345445; bh=83+PYqo+5tSCKivi05nB2F4tUhi6hGii6abq64f1K6o=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=YoAgCf4OBDYux4QCJEG8xkGi/Zp49W104Ee+oFBdQA7xT+EIAS4NwKubnGIcqM6xx 2E5drQxi0aq1YoHk3NOr2hyGTa+2cbA36c1U+yXboECMNNf1kwQ8YMXALnaCHnUrVn OHkm2W9SBQxoRjK4+q+/bHM4C/YdH8yiodUd0+2NHPpr4lMcPH0LfvicnRjqRrlyWv lxTZnpO/pq+uiKne6YgvKKdmDLHO4ENA78jr808T5Q5axpLwe7g9Czowi4+3GaN3XG 3wyCGRlyDELaB0Q0D3HNU1xHxiyh5a9+mRqK/TYJT3fWW7hxJq7wEojHbPG3orQ4J2 CCoiHRXetF1Gw== Date: Tue, 1 Nov 2022 23:30:40 +0000 From: Conor Dooley To: "liaochang (A)" Cc: Chen Guokai , paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, rostedt@goodmis.org, mingo@redhat.com, sfr@canb.auug.org.au, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/8] riscv/kprobe: Prepare the skeleton to implement RISCV OPTPROBES feature Message-ID: References: <20221030090141.2550837-1-chenguokai17@mails.ucas.ac.cn> <20221030090141.2550837-2-chenguokai17@mails.ucas.ac.cn> <1fe22055-7458-e052-4438-0338da9e369c@huawei.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1fe22055-7458-e052-4438-0338da9e369c@huawei.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221101_163050_762722_5805C57B X-CRM114-Status: GOOD ( 40.49 ) 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 T24gVHVlLCBOb3YgMDEsIDIwMjIgYXQgMDc6MDc6NDRQTSArMDgwMCwgbGlhb2NoYW5nIChBKSB3 cm90ZToKPiBIae+8jENvbm9yLAo+IAo+IOWcqCAyMDIyLzExLzEgMzo0MiwgQ29ub3IgRG9vbGV5 IOWGmemBkzoKPiA+IEhleSBDaGVuIEd1b2thaSwKPiA+IAo+ID4gT24gU3VuLCBPY3QgMzAsIDIw MjIgYXQgMDU6MDE6MzRQTSArMDgwMCwgQ2hlbiBHdW9rYWkgd3JvdGU6Cj4gPj4gRnJvbTogTGlh byBDaGFuZyA8bGlhb2NoYW5nMUBodWF3ZWkuY29tPgo+ID4+Cj4gPj4gUHJlcGFyZSBza2VsZXRv biB0byBpbXBsZW1lbnQgb3B0aW1pemVkIGtwcm9iZSBvbiBSSVNDViwgaXQgY29uc2lzdHMKPiA+ PiBvZiBNYWtmaWxlLCBLY29uZmlnIGFuZCBzb21lIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBmaWxl czoga3Byb2JlLmggYW5kCj4gPj4gb3B0LmMgb3B0LmMgaW5jbHVkZXMgc29tZSBtYWNybywgdHlw ZSBkZWZpbml0aW9uIGFuZCBmdW5jdGlvbnMgcmVxdWlyZWQKPiA+PiBieSBrcHJvYmUgZnJhbWV3 b3JrLCBvcHRfdHJhbXBvbGluZS5TIHByb3ZpZGVzIGEgcGllY2Ugb2YgYXNzZW1ibHkgY29kZQo+ ID4+IHRlbXBsYXRlIHVzZWQgdG8gY29uc3RydWN0IHRoZSBkZXRvdXIgYnVmZmVyIGFzIHRoZSB0 YXJnZXQgb2YgbG9uZyBqdW1wCj4gPj4gaW5zdHJ1Y3Rpb24ocykgZm9yIGVhY2ggb3B0aW16ZWQg a3Byb2JlLgo+ID4+Cj4gPj4gU2luY2UgdGhlIGp1bXAgcmFuZ2Ugb2YgUEMtcmVsYXRpdmUgaW5z dHJ1Y3Rpb24gSkFMIGlzICsvLTFNLCB0aGF0IGlzCj4gPj4gdG9vIHNtYWxsIHRvIHJlYWNoIHRo ZSBkZXRvdXIgYnVmZmVyLCBoZW5jZSB0aGUgZm91ZGFtZW50YWwgaWRlYSB0bwo+ID4+IGFkZHJl c3MgT1BUUFJPQkVTIG9uIFJJU0NWIGlzIHRvIHJlcGxhY2UgJ0VCUkVBSycgd2l0aCAnQVVJUEMr SkFMUicuIHdoaWNoCj4gPj4gbWVhbnMgaXQgbmVlZHMgdG8gY2xvYmJlciBvbmUgbW9yZSBpbnN0 cnVjdGlvbiBiZXNpZGUgdGhlIGtwcm9iZQo+ID4+IGluc3RydWN0aW9uLCBmdXJ0aGVybW9yZSwg UklTQ1Ygc3VwcG9ydHMgaHliaXJkIFJWSSBhbmQgUlZDIGluIHNpbmdsZQo+ID4+IGtlcm5lbCBi aW5hcnksIHNvIGluIHRoZW9yeSBhIHBhaXIgb2YgJ0FVSVBDL0pBTFInIGlzIGFib3V0IHRvIGNs b2JiZXIKPiA+PiAxMCBieXRlcygzIFJWQyBhbmQgMSBSVkksIDIgYnl0ZXMgaXMgcGFkZGluZyBm b3IgYWxpZ25tZW50KSBhdCB3b3JzdAo+ID4+IGNhc2UuIFRoZSBzZWNvbmQgaGFyZHNvbWUgcHJv YmxlbSBpcyBsb29raW5nIGZvciBvbmUgaW50ZWdlciByZWdpc3RlciBhcwo+ID4+IHRoZSBkZXN0 aW5hdGlvbiBvZiAnQVVJUEMvSkFMUicgd2l0aG91dCBhbnkgc2lkZS1lZmZlY3QuCj4gPj4KPiA+ PiBNb3JlIHNvbHV0aW9uIGRldGFpbHMgd2lsbCBiZSBpbnRyb2R1Y2VkIGluIHRoZSBjb21pbmcg Y29tbWl0cy4KPiA+IAo+ID4gbml0OiB5b3UgY2FuIGRyb3AgdGhpcyByZWZlcmVuY2UgdG8gZnV0 dXJlIGNvbW1pdHMuCj4gPiAKPiA+Pgo+ID4+IENvLWRldmVsb3BlZC1ieTogQ2hlbiBHdW9rYWkg PGNoZW5ndW9rYWkxN0BtYWlscy51Y2FzLmFjLmNuPgo+ID4+IFNpZ25lZC1vZmYtYnk6IENoZW4g R3Vva2FpIDxjaGVuZ3Vva2FpMTdAbWFpbHMudWNhcy5hYy5jbj4KPiA+PiBTaWduZWQtb2ZmLWJ5 OiBMaWFvIENoYW5nIDxsaWFvY2hhbmcxQGh1YXdlaS5jb20+Cj4gPiAKPiA+IEZZSSwgeW91ciBz aWdub2ZmIHNob3VsZCBjb21lIGxhc3Qgc2luY2UgeW91J3JlIHNlbmRpbmcgdGhlIHBhdGNoZXMs IHNvCj4gPiB0aGlzIHdvdWxkIGJlY29tZToKPiA+IAo+ID4+IFNpZ25lZC1vZmYtYnk6IExpYW8g Q2hhbmcgPGxpYW9jaGFuZzFAaHVhd2VpLmNvbT4KPiA+PiBDby1kZXZlbG9wZWQtYnk6IENoZW4g R3Vva2FpIDxjaGVuZ3Vva2FpMTdAbWFpbHMudWNhcy5hYy5jbj4KPiA+PiBTaWduZWQtb2ZmLWJ5 OiBDaGVuIEd1b2thaSA8Y2hlbmd1b2thaTE3QG1haWxzLnVjYXMuYWMuY24+Cj4gPiAKPiA+IEkg bm90aWNlZCBvbiBzb21lIG9mIHRoZSBvdGhlciBwYXRjaGVzIHRoYXQgeW91ciBTb0IgaXMgbWlz c2luZyB0aGVyZSwKPiA+IGZvciBleGFtcGxlIHBhdGNoIDIuCj4gCj4gWWVzLCBpIGhhdmUgc2Vu dCBwYXRjaCAyIHRvIG1haWxpbmcgbGlzdCBsb25nIHRpbWUgYWdvLCBnb3Qgc29tZSBmZWVkYmFj ayBmcm9tCj4gUGFsbWVyIERlYmJlbHQuIEJlY2F1c2UgdGhhdCBwYXRjaCBpcyBkZXNpZ25lZCBm b3IgcmlzY3Ygb3B0cHJvYmUsIHNvIGkgYnJpbmcgaXQKPiB0byB0aGlzIHBhdGNoc2V0LgoKTm90 IHN1cmUgaWYgeW91IHVuZGVyc3Rvb2QgdGhlIHBvaW50IEkgd2FzIG1ha2luZyAtIHlvdSBuZWVk IHRvIGhhdmUgYSAKU2lnbmVkLW9mZi1ieTogQ2hlbiBHdW9rYWkgPGNoZW5ndW9rYWkxN0BtYWls cy51Y2FzLmFjLmNuPgphdCB0aGUgZW5kIG9mIGV2ZXJ5IHBhdGNoIHRoYXQgQ2hlbiBzZW5kcy4g UGF0Y2ggMiBkb2VzIG5vdCBoYXZlIG9uZS4KRm9yIHRoZSBvdGhlciBwYXRjaGVzLCB0aGUgb3Jk ZXIgc2hvdWxkIGJlIHlvdSwgZm9sbG93ZWQgYnkgQ2hlbiBzaW5jZQp0aGV5IGFyZSB0aGUgb25l IHRoYXQgc2VudCB0aGUgcGF0Y2ggdG8gdGhlIGxpc3QgdGhpcyB0aW1lLgoKU2VlOgpodHRwczov L3d3dy5rZXJuZWwub3JnL2RvYy9odG1sL2xhdGVzdC9wcm9jZXNzL3N1Ym1pdHRpbmctcGF0Y2hl cy5odG1sI3doZW4tdG8tdXNlLWFja2VkLWJ5LWNjLWFuZC1jby1kZXZlbG9wZWQtYnkKT3I6CkRv Y3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL3Byb2Nlc3Mvc3VibWl0dGluZy1wYXRjaGVz LnJzdAoKSW4gdGhlIHpoX0NOIGRvY3VtZW50LCB0aGUgcmVsZXZhbnQgc2VjdGlvbiBpczoK5L2V 5pe25L2/55SoQWNrZWQtYnk677yMQ0M677yM5ZKMQ28tRGV2ZWxvcGVkIGJ5OgoKSG9wZSB0aGF0 IGhlbHBzLApDb25vci4KCj4gPj4gLS0tCj4gPj4gIGFyY2gvcmlzY3YvS2NvbmZpZyAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDEgKwo+ID4+ICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2twcm9i ZXMuaCAgICAgICAgICB8IDMyICsrKysrKysrKysrKysrCj4gPj4gIGFyY2gvcmlzY3Yva2VybmVs L3Byb2Jlcy9NYWtlZmlsZSAgICAgICAgIHwgIDEgKwo+ID4+ICBhcmNoL3Jpc2N2L2tlcm5lbC9w cm9iZXMvb3B0LmMgICAgICAgICAgICB8IDUxICsrKysrKysrKysrKysrKysrKysrKysrCj4gPj4g IGFyY2gvcmlzY3Yva2VybmVsL3Byb2Jlcy9vcHRfdHJhbXBvbGluZS5TIHwgMTIgKysrKysrCj4g Pj4gIDUgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKQo+ID4+ICBjcmVhdGUgbW9kZSAx MDA2NDQgYXJjaC9yaXNjdi9rZXJuZWwvcHJvYmVzL29wdC5jCj4gPj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBhcmNoL3Jpc2N2L2tlcm5lbC9wcm9iZXMvb3B0X3RyYW1wb2xpbmUuUwo+ID4+Cj4gPj4g ZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvS2NvbmZpZyBiL2FyY2gvcmlzY3YvS2NvbmZpZwo+ID4+ IGluZGV4IDZiNDhhM2FlOTg0My4uY2EyOTMwNmM5M2UyIDEwMDY0NAo+ID4+IC0tLSBhL2FyY2gv cmlzY3YvS2NvbmZpZwo+ID4+ICsrKyBiL2FyY2gvcmlzY3YvS2NvbmZpZwo+ID4+IEBAIC05OSw2 ICs5OSw3IEBAIGNvbmZpZyBSSVNDVgo+ID4+ICAJc2VsZWN0IEhBVkVfS1BST0JFUyBpZiAhWElQ X0tFUk5FTAo+ID4+ICAJc2VsZWN0IEhBVkVfS1BST0JFU19PTl9GVFJBQ0UgaWYgIVhJUF9LRVJO RUwKPiA+PiAgCXNlbGVjdCBIQVZFX0tSRVRQUk9CRVMgaWYgIVhJUF9LRVJORUwKPiA+PiArCXNl bGVjdCBIQVZFX09QVFBST0JFUyBpZiAhWElQX0tFUk5FTAo+ID4+ICAJc2VsZWN0IEhBVkVfTU9W RV9QTUQKPiA+PiAgCXNlbGVjdCBIQVZFX01PVkVfUFVECj4gPj4gIAlzZWxlY3QgSEFWRV9QQ0kK PiA+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rcHJvYmVzLmggYi9hcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL2twcm9iZXMuaAo+ID4+IGluZGV4IDIxN2VmODlmMjJiOS4uMjJi NzNhMmZkMWZkIDEwMDY0NAo+ID4+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3Byb2Jl cy5oCj4gPj4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rcHJvYmVzLmgKPiA+PiBAQCAt NDMsNSArNDMsMzcgQEAgYm9vbCBrcHJvYmVfc2luZ2xlX3N0ZXBfaGFuZGxlcihzdHJ1Y3QgcHRf cmVncyAqcmVncyk7Cj4gPj4gIHZvaWQgX19rcmV0cHJvYmVfdHJhbXBvbGluZSh2b2lkKTsKPiA+ PiAgdm9pZCBfX2twcm9iZXMgKnRyYW1wb2xpbmVfcHJvYmVfaGFuZGxlcihzdHJ1Y3QgcHRfcmVn cyAqcmVncyk7Cj4gPj4gIAo+ID4+ICsjaWZkZWYgQ09ORklHX09QVFBST0JFUwo+ID4+ICsKPiA+ PiArLyogb3B0aW5zbiB0ZW1wbGF0ZSBhZGRyZXNzZXMgKi8KPiA+PiArZXh0ZXJuIF9fdmlzaWJs ZSBrcHJvYmVfb3Bjb2RlX3Qgb3B0cHJvYmVfdGVtcGxhdGVfZW50cnlbXTsKPiA+PiArZXh0ZXJu IF9fdmlzaWJsZSBrcHJvYmVfb3Bjb2RlX3Qgb3B0cHJvYmVfdGVtcGxhdGVfZW5kW107Cj4gPj4g Kwo+ID4+ICsjZGVmaW5lIE1BWF9PUFRJTlNOX1NJWkUJCQkJXAo+ID4+ICsJKCh1bnNpZ25lZCBs b25nKW9wdHByb2JlX3RlbXBsYXRlX2VuZCAtCQlcCj4gPj4gKwkgKHVuc2lnbmVkIGxvbmcpb3B0 cHJvYmVfdGVtcGxhdGVfZW50cnkpCj4gPj4gKwo+ID4+ICsvKgo+ID4+ICsgKiBGb3IgUlZJIGFu ZCBSVkMgaHliaXJkIGVuY29kaW5nIGtlcm5lbCwgYWx0aG91Z2h0IGxvbmcganVtcCBqdXN0IG5l ZWRzCj4gPj4gKyAqIDIgUlZJIGluc3RydWN0aW9ucyhBVUlQQytKQUxSKSwgb3B0aW1pemVkIGlu c3RydWN0aW9ucyBpcyAxMCBieXRlcyBsb25nCj4gPj4gKyAqIGF0IG1vc3QgdG8gZW5zdXJlIG5v IFJWSSB3b3VsZCBiZSB0cnVuY2F0ZWQgYWN0dWFsbHksIHNvIGl0IG1lYW5zIGZvdXIKPiA+PiAr ICogY29tYmluYXRpb25zOgo+ID4+ICsgKiAtIDIgUlZJCj4gPj4gKyAqIC0gNCBSVkMKPiA+PiAr ICogLSAyIFJWQyArIDEgUlZJCj4gPj4gKyAqIC0gMyBSVkMgKyAxIFJWSSAodHJ1bmNhdGVkLCBu ZWVkIHBhZGRpbmcpCj4gPj4gKyAqLwo+ID4+ICsjZGVmaW5lIE1BWF9DT1BJRURfSU5TTgkJNAo+ ID4+ICsjZGVmaW5lIE1BWF9PUFRJTUlaRURfTEVOR1RICTEwCj4gPj4gKwo+ID4+ICtzdHJ1Y3Qg YXJjaF9vcHRpbWl6ZWRfaW5zbiB7Cj4gPj4gKwlrcHJvYmVfb3Bjb2RlX3QgY29waWVkX2luc25b TUFYX0NPUElFRF9JTlNOXTsKPiA+PiArCS8qIGRldG91ciBjb2RlIGJ1ZmZlciAqLwo+ID4+ICsJ a3Byb2JlX29wY29kZV90ICppbnNuOwo+ID4+ICsJdW5zaWduZWQgbG9uZyBsZW5ndGg7Cj4gPj4g KwlpbnQgcmQ7Cj4gPj4gK307Cj4gPj4gKwo+ID4+ICsjZW5kaWYgLyogQ09ORklHX09QVFBST0JF UyAqLwo+ID4+ICAjZW5kaWYgLyogQ09ORklHX0tQUk9CRVMgKi8KPiA+PiAgI2VuZGlmIC8qIF9B U01fUklTQ1ZfS1BST0JFU19IICovCj4gPj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVs L3Byb2Jlcy9NYWtlZmlsZSBiL2FyY2gvcmlzY3Yva2VybmVsL3Byb2Jlcy9NYWtlZmlsZQo+ID4+ IGluZGV4IDdmMDg0MGRjYzMxYi4uNjI1NWI0NjAwODc1IDEwMDY0NAo+ID4+IC0tLSBhL2FyY2gv cmlzY3Yva2VybmVsL3Byb2Jlcy9NYWtlZmlsZQo+ID4+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVs L3Byb2Jlcy9NYWtlZmlsZQo+ID4+IEBAIC0zLDQgKzMsNSBAQCBvYmotJChDT05GSUdfS1BST0JF UykJCSs9IGtwcm9iZXMubyBkZWNvZGUtaW5zbi5vIHNpbXVsYXRlLWluc24ubwo+ID4+ICBvYmot JChDT05GSUdfS1BST0JFUykJCSs9IGtwcm9iZXNfdHJhbXBvbGluZS5vCj4gPj4gIG9iai0kKENP TkZJR19LUFJPQkVTX09OX0ZUUkFDRSkJKz0gZnRyYWNlLm8KPiA+PiAgb2JqLSQoQ09ORklHX1VQ Uk9CRVMpCQkrPSB1cHJvYmVzLm8gZGVjb2RlLWluc24ubyBzaW11bGF0ZS1pbnNuLm8KPiA+PiAr b2JqLSQoQ09ORklHX09QVFBST0JFUykJCSs9IG9wdC5vIG9wdF90cmFtcG9saW5lLm8KPiA+PiAg Q0ZMQUdTX1JFTU9WRV9zaW11bGF0ZS1pbnNuLm8gPSAkKENDX0ZMQUdTX0ZUUkFDRSkKPiA+PiBk aWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvcHJvYmVzL29wdC5jIGIvYXJjaC9yaXNjdi9r ZXJuZWwvcHJvYmVzL29wdC5jCj4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+PiBpbmRleCAw MDAwMDAwMDAwMDAuLjU2YzhhMjI3Yzg1Nwo+ID4+IC0tLSAvZGV2L251bGwKPiA+PiArKysgYi9h cmNoL3Jpc2N2L2tlcm5lbC9wcm9iZXMvb3B0LmMKPiA+PiBAQCAtMCwwICsxLDUxIEBACj4gPj4g Ky8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCj4gPj4gKy8qCj4g Pj4gKyAqICBLZXJuZWwgUHJvYmVzIEp1bXAgT3B0aW1pemF0aW9uIChPcHRwcm9iZXMpCj4gPj4g KyAqCj4gPj4gKyAqIENvcHlyaWdodCAoQykgR3Vva2FpIENoZW4sIDIwMjIKPiA+PiArICogQXV0 aG9yOiBHdW9rYWkgQ2hlbiBjaGVuZ3Vva2FpMTdAbWFpbHMudWNhcy5hYy5jbgo+ID4+ICsgKi8K PiA+PiArCj4gPj4gKyNkZWZpbmUgcHJfZm10KGZtdCkJIm9wdHByb2JlOiAiIGZtdAo+ID4+ICsK PiA+PiArI2luY2x1ZGUgPGxpbnV4L2twcm9iZXMuaD4KPiA+PiArI2luY2x1ZGUgPGFzbS9rcHJv YmVzLmg+Cj4gPj4gKwo+ID4+ICtpbnQgYXJjaF9wcmVwYXJlZF9vcHRpbnNuKHN0cnVjdCBhcmNo X29wdGltaXplZF9pbnNuICpvcHRpbnNuKQo+ID4+ICt7Cj4gPj4gKwlyZXR1cm4gMDsKPiA+PiAr fQo+ID4+ICsKPiA+PiAraW50IGFyY2hfY2hlY2tfb3B0aW1pemVkX2twcm9iZShzdHJ1Y3Qgb3B0 aW1pemVkX2twcm9iZSAqb3ApCj4gPj4gK3sKPiA+PiArCXJldHVybiAwOwo+ID4+ICt9Cj4gPj4g Kwo+ID4+ICtpbnQgYXJjaF9wcmVwYXJlX29wdGltaXplZF9rcHJvYmUoc3RydWN0IG9wdGltaXpl ZF9rcHJvYmUgKm9wLAo+ID4+ICsJCQkJICBzdHJ1Y3Qga3Byb2JlICpvcmlnKQo+ID4+ICt7Cj4g Pj4gKwlyZXR1cm4gMDsKPiA+PiArfQo+ID4+ICsKPiA+PiArdm9pZCBhcmNoX3JlbW92ZV9vcHRp bWl6ZWRfa3Byb2JlKHN0cnVjdCBvcHRpbWl6ZWRfa3Byb2JlICpvcCkKPiA+PiArewo+ID4+ICt9 Cj4gPj4gKwo+ID4+ICt2b2lkIGFyY2hfb3B0aW1pemVfa3Byb2JlcyhzdHJ1Y3QgbGlzdF9oZWFk ICpvcGxpc3QpCj4gPj4gK3sKPiA+PiArfQo+ID4+ICsKPiA+PiArdm9pZCBhcmNoX3Vub3B0aW1p emVfa3Byb2JlcyhzdHJ1Y3QgbGlzdF9oZWFkICpvcGxpc3QsCj4gPj4gKwkJCSAgICAgc3RydWN0 IGxpc3RfaGVhZCAqZG9uZV9saXN0KQo+ID4+ICt7Cj4gPj4gK30KPiA+PiArCj4gPj4gK3ZvaWQg YXJjaF91bm9wdGltaXplX2twcm9iZShzdHJ1Y3Qgb3B0aW1pemVkX2twcm9iZSAqb3ApCj4gPj4g K3sKPiA+PiArfQo+ID4+ICsKPiA+PiAraW50IGFyY2hfd2l0aGluX29wdGltaXplZF9rcHJvYmUo c3RydWN0IG9wdGltaXplZF9rcHJvYmUgKm9wLAo+ID4+ICsJCQkJIGtwcm9iZV9vcGNvZGVfdCAq YWRkcikKPiA+PiArewo+ID4+ICsJcmV0dXJuIDA7Cj4gPj4gK30KPiA+PiBkaWZmIC0tZ2l0IGEv YXJjaC9yaXNjdi9rZXJuZWwvcHJvYmVzL29wdF90cmFtcG9saW5lLlMgYi9hcmNoL3Jpc2N2L2tl cm5lbC9wcm9iZXMvb3B0X3RyYW1wb2xpbmUuUwo+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4g Pj4gaW5kZXggMDAwMDAwMDAwMDAwLi4xNjE2MGM0MzY3ZmYKPiA+PiAtLS0gL2Rldi9udWxsCj4g Pj4gKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvcHJvYmVzL29wdF90cmFtcG9saW5lLlMKPiA+PiBA QCAtMCwwICsxLDEyIEBACj4gPj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w LW9ubHkgKi8KPiA+PiArLyoKPiA+PiArICogQ29weXJpZ2h0IChDKSAyMDIyIEd1b2thaSBDaGVu Cj4gPj4gKyAqLwo+ID4+ICsKPiA+PiArI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KPiA+PiAr Cj4gPj4gKyNpbmNsZHVlIDxhc20vY3NyLmg+Cj4gPj4gKyNpbmNsdWRlIDxhc20vYXNtLW9mZnNl dHMuaD4KPiA+PiArCj4gPj4gK1NZTV9FTlRSWShvcHRwcm9iZV90ZW1wbGF0ZV9lbnRyeSwgU1lN X0xfR0xPQkFMLCBTWU1fQV9OT05FKQo+ID4+ICtTWU1fRU5UUlkob3B0cHJvYmVfdGVtcGxhdGVf ZW5kLCBTWU1fTF9HTE9CQUwsIFNZTV9BX05PTkUpCj4gPj4gLS0gCj4gPj4gMi4yNS4xCj4gPj4K PiA+Pgo+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gPj4gbGludXgtcmlzY3YgbWFpbGluZyBsaXN0Cj4gPj4gbGludXgtcmlzY3ZAbGlzdHMuaW5m cmFkZWFkLm9yZwo+ID4+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtcmlzY3YKPiA+IC4KPiAKPiAtLSAKPiBCUiwKPiBMaWFvLCBDaGFuZwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFp bGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo= 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 41710C433FE for ; Tue, 1 Nov 2022 23:30:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230019AbiKAXay (ORCPT ); Tue, 1 Nov 2022 19:30:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55976 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229894AbiKAXat (ORCPT ); Tue, 1 Nov 2022 19:30:49 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B9641A808 for ; Tue, 1 Nov 2022 16:30:48 -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 sin.source.kernel.org (Postfix) with ESMTPS id BEA6DCE1EE7 for ; Tue, 1 Nov 2022 23:30:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 13845C433D7; Tue, 1 Nov 2022 23:30:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1667345445; bh=83+PYqo+5tSCKivi05nB2F4tUhi6hGii6abq64f1K6o=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=YoAgCf4OBDYux4QCJEG8xkGi/Zp49W104Ee+oFBdQA7xT+EIAS4NwKubnGIcqM6xx 2E5drQxi0aq1YoHk3NOr2hyGTa+2cbA36c1U+yXboECMNNf1kwQ8YMXALnaCHnUrVn OHkm2W9SBQxoRjK4+q+/bHM4C/YdH8yiodUd0+2NHPpr4lMcPH0LfvicnRjqRrlyWv lxTZnpO/pq+uiKne6YgvKKdmDLHO4ENA78jr808T5Q5axpLwe7g9Czowi4+3GaN3XG 3wyCGRlyDELaB0Q0D3HNU1xHxiyh5a9+mRqK/TYJT3fWW7hxJq7wEojHbPG3orQ4J2 CCoiHRXetF1Gw== Date: Tue, 1 Nov 2022 23:30:40 +0000 From: Conor Dooley To: "liaochang (A)" Cc: Chen Guokai , paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, rostedt@goodmis.org, mingo@redhat.com, sfr@canb.auug.org.au, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/8] riscv/kprobe: Prepare the skeleton to implement RISCV OPTPROBES feature Message-ID: References: <20221030090141.2550837-1-chenguokai17@mails.ucas.ac.cn> <20221030090141.2550837-2-chenguokai17@mails.ucas.ac.cn> <1fe22055-7458-e052-4438-0338da9e369c@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1fe22055-7458-e052-4438-0338da9e369c@huawei.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Nov 01, 2022 at 07:07:44PM +0800, liaochang (A) wrote: > Hi,Conor, > > 在 2022/11/1 3:42, Conor Dooley 写道: > > Hey Chen Guokai, > > > > On Sun, Oct 30, 2022 at 05:01:34PM +0800, Chen Guokai wrote: > >> From: Liao Chang > >> > >> Prepare skeleton to implement optimized kprobe on RISCV, it consists > >> of Makfile, Kconfig and some architecture specific files: kprobe.h and > >> opt.c opt.c includes some macro, type definition and functions required > >> by kprobe framework, opt_trampoline.S provides a piece of assembly code > >> template used to construct the detour buffer as the target of long jump > >> instruction(s) for each optimzed kprobe. > >> > >> Since the jump range of PC-relative instruction JAL is +/-1M, that is > >> too small to reach the detour buffer, hence the foudamental idea to > >> address OPTPROBES on RISCV is to replace 'EBREAK' with 'AUIPC+JALR'. which > >> means it needs to clobber one more instruction beside the kprobe > >> instruction, furthermore, RISCV supports hybird RVI and RVC in single > >> kernel binary, so in theory a pair of 'AUIPC/JALR' is about to clobber > >> 10 bytes(3 RVC and 1 RVI, 2 bytes is padding for alignment) at worst > >> case. The second hardsome problem is looking for one integer register as > >> the destination of 'AUIPC/JALR' without any side-effect. > >> > >> More solution details will be introduced in the coming commits. > > > > nit: you can drop this reference to future commits. > > > >> > >> Co-developed-by: Chen Guokai > >> Signed-off-by: Chen Guokai > >> Signed-off-by: Liao Chang > > > > FYI, your signoff should come last since you're sending the patches, so > > this would become: > > > >> Signed-off-by: Liao Chang > >> Co-developed-by: Chen Guokai > >> Signed-off-by: Chen Guokai > > > > I noticed on some of the other patches that your SoB is missing there, > > for example patch 2. > > Yes, i have sent patch 2 to mailing list long time ago, got some feedback from > Palmer Debbelt. Because that patch is designed for riscv optprobe, so i bring it > to this patchset. Not sure if you understood the point I was making - you need to have a Signed-off-by: Chen Guokai at the end of every patch that Chen sends. Patch 2 does not have one. For the other patches, the order should be you, followed by Chen since they are the one that sent the patch to the list this time. See: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#when-to-use-acked-by-cc-and-co-developed-by Or: Documentation/translations/zh_CN/process/submitting-patches.rst In the zh_CN document, the relevant section is: 何时使用Acked-by:,CC:,和Co-Developed by: Hope that helps, Conor. > >> --- > >> arch/riscv/Kconfig | 1 + > >> arch/riscv/include/asm/kprobes.h | 32 ++++++++++++++ > >> arch/riscv/kernel/probes/Makefile | 1 + > >> arch/riscv/kernel/probes/opt.c | 51 +++++++++++++++++++++++ > >> arch/riscv/kernel/probes/opt_trampoline.S | 12 ++++++ > >> 5 files changed, 97 insertions(+) > >> create mode 100644 arch/riscv/kernel/probes/opt.c > >> create mode 100644 arch/riscv/kernel/probes/opt_trampoline.S > >> > >> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > >> index 6b48a3ae9843..ca29306c93e2 100644 > >> --- a/arch/riscv/Kconfig > >> +++ b/arch/riscv/Kconfig > >> @@ -99,6 +99,7 @@ config RISCV > >> select HAVE_KPROBES if !XIP_KERNEL > >> select HAVE_KPROBES_ON_FTRACE if !XIP_KERNEL > >> select HAVE_KRETPROBES if !XIP_KERNEL > >> + select HAVE_OPTPROBES if !XIP_KERNEL > >> select HAVE_MOVE_PMD > >> select HAVE_MOVE_PUD > >> select HAVE_PCI > >> diff --git a/arch/riscv/include/asm/kprobes.h b/arch/riscv/include/asm/kprobes.h > >> index 217ef89f22b9..22b73a2fd1fd 100644 > >> --- a/arch/riscv/include/asm/kprobes.h > >> +++ b/arch/riscv/include/asm/kprobes.h > >> @@ -43,5 +43,37 @@ bool kprobe_single_step_handler(struct pt_regs *regs); > >> void __kretprobe_trampoline(void); > >> void __kprobes *trampoline_probe_handler(struct pt_regs *regs); > >> > >> +#ifdef CONFIG_OPTPROBES > >> + > >> +/* optinsn template addresses */ > >> +extern __visible kprobe_opcode_t optprobe_template_entry[]; > >> +extern __visible kprobe_opcode_t optprobe_template_end[]; > >> + > >> +#define MAX_OPTINSN_SIZE \ > >> + ((unsigned long)optprobe_template_end - \ > >> + (unsigned long)optprobe_template_entry) > >> + > >> +/* > >> + * For RVI and RVC hybird encoding kernel, althought long jump just needs > >> + * 2 RVI instructions(AUIPC+JALR), optimized instructions is 10 bytes long > >> + * at most to ensure no RVI would be truncated actually, so it means four > >> + * combinations: > >> + * - 2 RVI > >> + * - 4 RVC > >> + * - 2 RVC + 1 RVI > >> + * - 3 RVC + 1 RVI (truncated, need padding) > >> + */ > >> +#define MAX_COPIED_INSN 4 > >> +#define MAX_OPTIMIZED_LENGTH 10 > >> + > >> +struct arch_optimized_insn { > >> + kprobe_opcode_t copied_insn[MAX_COPIED_INSN]; > >> + /* detour code buffer */ > >> + kprobe_opcode_t *insn; > >> + unsigned long length; > >> + int rd; > >> +}; > >> + > >> +#endif /* CONFIG_OPTPROBES */ > >> #endif /* CONFIG_KPROBES */ > >> #endif /* _ASM_RISCV_KPROBES_H */ > >> diff --git a/arch/riscv/kernel/probes/Makefile b/arch/riscv/kernel/probes/Makefile > >> index 7f0840dcc31b..6255b4600875 100644 > >> --- a/arch/riscv/kernel/probes/Makefile > >> +++ b/arch/riscv/kernel/probes/Makefile > >> @@ -3,4 +3,5 @@ obj-$(CONFIG_KPROBES) += kprobes.o decode-insn.o simulate-insn.o > >> obj-$(CONFIG_KPROBES) += kprobes_trampoline.o > >> obj-$(CONFIG_KPROBES_ON_FTRACE) += ftrace.o > >> obj-$(CONFIG_UPROBES) += uprobes.o decode-insn.o simulate-insn.o > >> +obj-$(CONFIG_OPTPROBES) += opt.o opt_trampoline.o > >> CFLAGS_REMOVE_simulate-insn.o = $(CC_FLAGS_FTRACE) > >> diff --git a/arch/riscv/kernel/probes/opt.c b/arch/riscv/kernel/probes/opt.c > >> new file mode 100644 > >> index 000000000000..56c8a227c857 > >> --- /dev/null > >> +++ b/arch/riscv/kernel/probes/opt.c > >> @@ -0,0 +1,51 @@ > >> +// SPDX-License-Identifier: GPL-2.0-or-later > >> +/* > >> + * Kernel Probes Jump Optimization (Optprobes) > >> + * > >> + * Copyright (C) Guokai Chen, 2022 > >> + * Author: Guokai Chen chenguokai17@mails.ucas.ac.cn > >> + */ > >> + > >> +#define pr_fmt(fmt) "optprobe: " fmt > >> + > >> +#include > >> +#include > >> + > >> +int arch_prepared_optinsn(struct arch_optimized_insn *optinsn) > >> +{ > >> + return 0; > >> +} > >> + > >> +int arch_check_optimized_kprobe(struct optimized_kprobe *op) > >> +{ > >> + return 0; > >> +} > >> + > >> +int arch_prepare_optimized_kprobe(struct optimized_kprobe *op, > >> + struct kprobe *orig) > >> +{ > >> + return 0; > >> +} > >> + > >> +void arch_remove_optimized_kprobe(struct optimized_kprobe *op) > >> +{ > >> +} > >> + > >> +void arch_optimize_kprobes(struct list_head *oplist) > >> +{ > >> +} > >> + > >> +void arch_unoptimize_kprobes(struct list_head *oplist, > >> + struct list_head *done_list) > >> +{ > >> +} > >> + > >> +void arch_unoptimize_kprobe(struct optimized_kprobe *op) > >> +{ > >> +} > >> + > >> +int arch_within_optimized_kprobe(struct optimized_kprobe *op, > >> + kprobe_opcode_t *addr) > >> +{ > >> + return 0; > >> +} > >> diff --git a/arch/riscv/kernel/probes/opt_trampoline.S b/arch/riscv/kernel/probes/opt_trampoline.S > >> new file mode 100644 > >> index 000000000000..16160c4367ff > >> --- /dev/null > >> +++ b/arch/riscv/kernel/probes/opt_trampoline.S > >> @@ -0,0 +1,12 @@ > >> +/* SPDX-License-Identifier: GPL-2.0-only */ > >> +/* > >> + * Copyright (C) 2022 Guokai Chen > >> + */ > >> + > >> +#include > >> + > >> +#incldue > >> +#include > >> + > >> +SYM_ENTRY(optprobe_template_entry, SYM_L_GLOBAL, SYM_A_NONE) > >> +SYM_ENTRY(optprobe_template_end, SYM_L_GLOBAL, SYM_A_NONE) > >> -- > >> 2.25.1 > >> > >> > >> _______________________________________________ > >> linux-riscv mailing list > >> linux-riscv@lists.infradead.org > >> http://lists.infradead.org/mailman/listinfo/linux-riscv > > . > > -- > BR, > Liao, Chang