From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx3-rdu2.redhat.com ([66.187.233.73] helo=mx1.redhat.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fVV4h-0006ub-CS for kexec@lists.infradead.org; Wed, 20 Jun 2018 04:50:33 +0000 Subject: Re: [PATCH 4/4 V3] Help to dump the old memory encrypted into vmcore file From: lijiang References: <20180616082714.32035-1-lijiang@redhat.com> <20180616082714.32035-5-lijiang@redhat.com> <20180619031653.GA7101@dhcp-128-65.nay.redhat.com> Message-ID: Date: Wed, 20 Jun 2018 12:50:11 +0800 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: Dave Young Cc: thomas.lendacky@amd.com, iommu@lists.linux-foundation.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org 5ZyoIDIwMTjlubQwNuaciDE55pelIDIyOjQ2LCBsaWppYW5nIOWGmemBkzoKPiDlnKggMjAxOOW5 tDA25pyIMTnml6UgMTE6MTYsIERhdmUgWW91bmcg5YaZ6YGTOgo+PiBPbiAwNi8xNi8xOCBhdCAw NDoyN3BtLCBMaWFuYm8gSmlhbmcgd3JvdGU6Cj4+PiBJbiBrZHVtcCBtb2RlLCB3ZSBuZWVkIHRv IGR1bXAgdGhlIG9sZCBtZW1vcnkgaW50byB2bWNvcmUgZmlsZSwKPj4+IGlmIFNNRSBpcyBlbmFi bGVkIGluIHRoZSBmaXJzdCBrZXJuZWwsIHdlIG11c3QgcmVtYXAgdGhlIG9sZAo+Pj4gbWVtb3J5 IGluIGVuY3J5cHRlZCBtYW5uZXIsIHdoaWNoIHdpbGwgYmUgYXV0b21hdGljYWxseSBkZWNyeXB0 ZWQKPj4+IHdoZW4gd2UgcmVhZCBmcm9tIERSQU0uIEl0IGhlbHBzIHRvIHBhcnNlIHRoZSB2bWNv cmUgZm9yIHNvbWUgdG9vbHMuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogTGlhbmJvIEppYW5nIDxs aWppYW5nQHJlZGhhdC5jb20+Cj4+PiAtLS0KPj4+IFNvbWUgY2hhbmdlczoKPj4+IDEuIGFkZCBh IG5ldyBmaWxlIGFuZCBtb2RpZnkgTWFrZWZpbGUuCj4+PiAyLiByZW1vdmUgc29tZSBjb2RlIGlu IHNldl9hY3RpdmUoKS4KPj4+Cj4+PiAgYXJjaC94ODYva2VybmVsL01ha2VmaWxlICAgICAgICAg ICAgIHwgIDEgKwo+Pj4gIGFyY2gveDg2L2tlcm5lbC9jcmFzaF9kdW1wX2VuY3J5cHQuYyB8IDUz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4gIGZzL3Byb2Mvdm1jb3Jl LmMgICAgICAgICAgICAgICAgICAgICB8IDIwICsrKysrKysrKystLS0tCj4+PiAgaW5jbHVkZS9s aW51eC9jcmFzaF9kdW1wLmggICAgICAgICAgIHwgMTEgKysrKysrKysKPj4+ICA0IGZpbGVzIGNo YW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4+PiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGFyY2gveDg2L2tlcm5lbC9jcmFzaF9kdW1wX2VuY3J5cHQuYwo+Pj4KPj4+IGRpZmYg LS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZp bGUKPj4+IGluZGV4IDAyZDZmNWMuLmFmYjViYWQgMTAwNjQ0Cj4+PiAtLS0gYS9hcmNoL3g4Ni9r ZXJuZWwvTWFrZWZpbGUKPj4+ICsrKyBiL2FyY2gveDg2L2tlcm5lbC9NYWtlZmlsZQo+Pj4gQEAg LTk2LDYgKzk2LDcgQEAgb2JqLSQoQ09ORklHX0tFWEVDX0NPUkUpCSs9IG1hY2hpbmVfa2V4ZWNf JChCSVRTKS5vCj4+PiAgb2JqLSQoQ09ORklHX0tFWEVDX0NPUkUpCSs9IHJlbG9jYXRlX2tlcm5l bF8kKEJJVFMpLm8gY3Jhc2gubwo+Pj4gIG9iai0kKENPTkZJR19LRVhFQ19GSUxFKQkrPSBrZXhl Yy1iemltYWdlNjQubwo+Pj4gIG9iai0kKENPTkZJR19DUkFTSF9EVU1QKQkrPSBjcmFzaF9kdW1w XyQoQklUUykubwo+Pj4gK29iai0kKENPTkZJR19BTURfTUVNX0VOQ1JZUFQpCSs9IGNyYXNoX2R1 bXBfZW5jcnlwdC5vCj4+PiAgb2JqLXkJCQkJKz0ga3Byb2Jlcy8KPj4+ICBvYmotJChDT05GSUdf TU9EVUxFUykJCSs9IG1vZHVsZS5vCj4+PiAgb2JqLSQoQ09ORklHX0RPVUJMRUZBVUxUKQkrPSBk b3VibGVmYXVsdC5vCj4+PiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NyYXNoX2R1bXBf ZW5jcnlwdC5jIGIvYXJjaC94ODYva2VybmVsL2NyYXNoX2R1bXBfZW5jcnlwdC5jCj4+PiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMC4uZTQ0ZWYzMwo+Pj4gLS0tIC9kZXYv bnVsbAo+Pj4gKysrIGIvYXJjaC94ODYva2VybmVsL2NyYXNoX2R1bXBfZW5jcnlwdC5jCj4+PiBA QCAtMCwwICsxLDUzIEBACj4+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAK Pj4+ICsvKgo+Pj4gKyAqCU1lbW9yeSBwcmVzZXJ2aW5nIHJlYm9vdCByZWxhdGVkIGNvZGUuCj4+ PiArICoKPj4+ICsgKglDcmVhdGVkIGJ5OiBMaWFuYm8gSmlhbmcgKGxpamlhbmdAcmVkaGF0LmNv bSkKPj4+ICsgKglDb3B5cmlnaHQgKEMpIFJlZEhhdCBDb3Jwb3JhdGlvbiwgMjAxOC4gQWxsIHJp Z2h0cyByZXNlcnZlZAo+Pj4gKyAqLwo+Pj4gKwo+Pj4gKyNpbmNsdWRlIDxsaW51eC9lcnJuby5o Pgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9jcmFzaF9kdW1wLmg+Cj4+PiArI2luY2x1ZGUgPGxpbnV4 L3VhY2Nlc3MuaD4KPj4+ICsjaW5jbHVkZSA8bGludXgvaW8uaD4KPj4+ICsKPj4+ICsvKioKPj4+ ICsgKiBjb3B5X29sZG1lbV9wYWdlX2VuY3J5cHRlZCAtIGNvcHkgb25lIHBhZ2UgZnJvbSAib2xk bWVtIGVuY3J5cHRlZCIKPj4+ICsgKiBAcGZuOiBwYWdlIGZyYW1lIG51bWJlciB0byBiZSBjb3Bp ZWQKPj4+ICsgKiBAYnVmOiB0YXJnZXQgbWVtb3J5IGFkZHJlc3MgZm9yIHRoZSBjb3B5OyB0aGlz IGNhbiBiZSBpbiBrZXJuZWwgYWRkcmVzcwo+Pj4gKyAqCXNwYWNlIG9yIHVzZXIgYWRkcmVzcyBz cGFjZSAoc2VlIEB1c2VyYnVmKQo+Pj4gKyAqIEBjc2l6ZTogbnVtYmVyIG9mIGJ5dGVzIHRvIGNv cHkKPj4+ICsgKiBAb2Zmc2V0OiBvZmZzZXQgaW4gYnl0ZXMgaW50byB0aGUgcGFnZSAoYmFzZWQg b24gcGZuKSB0byBiZWdpbiB0aGUgY29weQo+Pj4gKyAqIEB1c2VyYnVmOiBpZiBzZXQsIEBidWYg aXMgaW4gdXNlciBhZGRyZXNzIHNwYWNlLCB1c2UgY29weV90b191c2VyKCksCj4+PiArICoJb3Ro ZXJ3aXNlIEBidWYgaXMgaW4ga2VybmVsIGFkZHJlc3Mgc3BhY2UsIHVzZSBtZW1jcHkoKS4KPj4+ ICsgKgo+Pj4gKyAqIENvcHkgYSBwYWdlIGZyb20gIm9sZG1lbSBlbmNyeXB0ZWQiLiBGb3IgdGhp cyBwYWdlLCB0aGVyZSBpcyBubyBwdGUKPj4+ICsgKiBtYXBwZWQgaW4gdGhlIGN1cnJlbnQga2Vy bmVsLiBXZSBzdGl0Y2ggdXAgYSBwdGUsIHNpbWlsYXIgdG8KPj4+ICsgKiBrbWFwX2F0b21pYy4K Pj4+ICsgKi8KPj4+ICsKPj4+ICtzc2l6ZV90IGNvcHlfb2xkbWVtX3BhZ2VfZW5jcnlwdGVkKHVu c2lnbmVkIGxvbmcgcGZuLCBjaGFyICpidWYsCj4+PiArCQlzaXplX3QgY3NpemUsIHVuc2lnbmVk IGxvbmcgb2Zmc2V0LCBpbnQgdXNlcmJ1ZikKPj4+ICt7Cj4+PiArCXZvaWQgICp2YWRkcjsKPj4+ ICsKPj4+ICsJaWYgKCFjc2l6ZSkKPj4+ICsJCXJldHVybiAwOwo+Pj4gKwo+Pj4gKwl2YWRkciA9 IChfX2ZvcmNlIHZvaWQgKilpb3JlbWFwX2VuY3J5cHRlZChwZm4gPDwgUEFHRV9TSElGVCwKPj4+ ICsJCQkJCQkgIFBBR0VfU0laRSk7Cj4+PiArCWlmICghdmFkZHIpCj4+PiArCQlyZXR1cm4gLUVO T01FTTsKPj4+ICsKPj4+ICsJaWYgKHVzZXJidWYpIHsKPj4+ICsJCWlmIChjb3B5X3RvX3VzZXIo KHZvaWQgX191c2VyICopYnVmLCB2YWRkciArIG9mZnNldCwgY3NpemUpKSB7Cj4+PiArCQkJaW91 bm1hcCgodm9pZCBfX2lvbWVtICopdmFkZHIpOwo+Pj4gKwkJCXJldHVybiAtRUZBVUxUOwo+Pj4g KwkJfQo+Pj4gKwl9IGVsc2UKPj4+ICsJCW1lbWNweShidWYsIHZhZGRyICsgb2Zmc2V0LCBjc2l6 ZSk7Cj4+PiArCj4+PiArCXNldF9pb3VubWFwX25vbmxhenkoKTsKPj4+ICsJaW91bm1hcCgodm9p ZCBfX2lvbWVtICopdmFkZHIpOwo+Pj4gKwlyZXR1cm4gY3NpemU7Cj4+PiArfQo+Pj4gZGlmZiAt LWdpdCBhL2ZzL3Byb2Mvdm1jb3JlLmMgYi9mcy9wcm9jL3ZtY29yZS5jCj4+PiBpbmRleCBhNDVm MGFmLi41MjAwMjY2IDEwMDY0NAo+Pj4gLS0tIGEvZnMvcHJvYy92bWNvcmUuYwo+Pj4gKysrIGIv ZnMvcHJvYy92bWNvcmUuYwo+Pj4gQEAgLTI1LDYgKzI1LDggQEAKPj4+ICAjaW5jbHVkZSA8bGlu dXgvdWFjY2Vzcy5oPgo+Pj4gICNpbmNsdWRlIDxhc20vaW8uaD4KPj4+ICAjaW5jbHVkZSAiaW50 ZXJuYWwuaCIKPj4+ICsjaW5jbHVkZSA8bGludXgvbWVtX2VuY3J5cHQuaD4KPj4+ICsjaW5jbHVk ZSA8YXNtL3BndGFibGUuaD4KPj4+ICAKPj4+ICAvKiBMaXN0IHJlcHJlc2VudGluZyBjaHVua3Mg b2YgY29udGlndW91cyBtZW1vcnkgYXJlYXMgYW5kIHRoZWlyIG9mZnNldHMgaW4KPj4+ICAgKiB2 bWNvcmUgZmlsZS4KPj4+IEBAIC04Niw3ICs4OCw4IEBAIHN0YXRpYyBpbnQgcGZuX2lzX3JhbSh1 bnNpZ25lZCBsb25nIHBmbikKPj4+ICAKPj4+ICAvKiBSZWFkcyBhIHBhZ2UgZnJvbSB0aGUgb2xk bWVtIGRldmljZSBmcm9tIGdpdmVuIG9mZnNldC4gKi8KPj4+ICBzdGF0aWMgc3NpemVfdCByZWFk X2Zyb21fb2xkbWVtKGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LAo+Pj4gLQkJCQl1NjQgKnBwb3Ms IGludCB1c2VyYnVmKQo+Pj4gKwkJCQl1NjQgKnBwb3MsIGludCB1c2VyYnVmLAo+Pj4gKwkJCQli b29sIGVuY3J5cHRlZCkKPj4+ICB7Cj4+PiAgCXVuc2lnbmVkIGxvbmcgcGZuLCBvZmZzZXQ7Cj4+ PiAgCXNpemVfdCBucl9ieXRlczsKPj4+IEBAIC0xMDgsOCArMTExLDExIEBAIHN0YXRpYyBzc2l6 ZV90IHJlYWRfZnJvbV9vbGRtZW0oY2hhciAqYnVmLCBzaXplX3QgY291bnQsCj4+PiAgCQlpZiAo cGZuX2lzX3JhbShwZm4pID09IDApCj4+PiAgCQkJbWVtc2V0KGJ1ZiwgMCwgbnJfYnl0ZXMpOwo+ Pj4gIAkJZWxzZSB7Cj4+PiAtCQkJdG1wID0gY29weV9vbGRtZW1fcGFnZShwZm4sIGJ1ZiwgbnJf Ynl0ZXMsCj4+PiAtCQkJCQkJb2Zmc2V0LCB1c2VyYnVmKTsKPj4+ICsJCQl0bXAgPSBlbmNyeXB0 ZWQgPyBjb3B5X29sZG1lbV9wYWdlX2VuY3J5cHRlZChwZm4sCj4+PiArCQkJCQkgICAgYnVmLCBu cl9ieXRlcywgb2Zmc2V0LCB1c2VyYnVmKQo+Pj4gKwkJCQkJOiBjb3B5X29sZG1lbV9wYWdlKHBm biwgYnVmLCBucl9ieXRlcywKPj4+ICsJCQkJCQkJICAgb2Zmc2V0LCB1c2VyYnVmKTsKPj4+ICsK Pj4+ICAJCQlpZiAodG1wIDwgMCkKPj4+ICAJCQkJcmV0dXJuIHRtcDsKPj4+ICAJCX0KPj4+IEBA IC0xNDMsNyArMTQ5LDcgQEAgdm9pZCBfX3dlYWsgZWxmY29yZWhkcl9mcmVlKHVuc2lnbmVkIGxv bmcgbG9uZyBhZGRyKQo+Pj4gICAqLwo+Pj4gIHNzaXplX3QgX193ZWFrIGVsZmNvcmVoZHJfcmVh ZChjaGFyICpidWYsIHNpemVfdCBjb3VudCwgdTY0ICpwcG9zKQo+Pj4gIHsKPj4+IC0JcmV0dXJu IHJlYWRfZnJvbV9vbGRtZW0oYnVmLCBjb3VudCwgcHBvcywgMCk7Cj4+PiArCXJldHVybiByZWFk X2Zyb21fb2xkbWVtKGJ1ZiwgY291bnQsIHBwb3MsIDAsIGZhbHNlKTsKPj4KPj4gVGhlIGVsZiBo ZWFkZXIgYWN0dWFsbHkgc3RheXMgaW4ga2R1bXAga2VybmVsIHJlc2VydmVkIG1lbW9yeSBzbyBp dCBpcwo+PiBub3QgIm9sZG1lbSIsIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiBpcyBtaXNsZWFkaW5n IGFuZCBkb2luZyB1bm5lY2Vzc2FyeQo+PiB0aGluZ3MuICBCdXQgYXMgZm9yIHlvdXIgcGF0Y2gg bWF5YmUgdXNpbmcgaXQgYXMgaXMgaXMgZ29vZCBmb3IgdGhlIHRpbWUKPj4gYmVpbmcgYW5kIGFk ZCBhIGNvZGUgY29tbWVudCB3aHkgdGhlIGVuY3J5cHRlZCBpcyAiZmFsc2UiLgo+Pgo+IFRoYW5r IHlvdSwgRGF2ZS4gSXQgaXMgYSBnb29kIGlkZWEgdG8gYWRkIHNvbWUgY29tbWVudHMgZm9yIHRo ZSBjb2RlLgo+IEkgcmVjaGVja2VkIHRoZSBjb2RlLCB0aGUgZWxmIGhlYWRlciBzaG91bGQgYmUg c3RpbGwgdGhlIG9sZCBtZW1vcnkgaW4gdGhlIGZpcnN0IGtlcm5lbCwKPiBidXQgd2h5IGlzIHRo ZSBvbGQgbWVtb3J5IHVuZW5jcnlwdGVkPyBCZWNhdXNlIGl0IGNvcGllcyB0aGUgZWxmIGhlYWRl ciBmcm9tIHRoZSBtZW1vcnkKPiBlbmNyeXB0ZWQodXNlciBzcGFjZSkgdG8gdGhlIG1lbW9yeSB1 bmVuY3J5cHRlZChrZXJuZWwgc3BhY2UpIHdoZW4gU01FIGlzIGFjdGl2YXRlZCBpbiB0aGUKPiBm aXJzdCBrZXJuZWwsIHRoaXMgb3BlcmF0aW9uIGp1c3QgbGVhZHMgdG8gZGVjcnlwdGlvbi4KPiAK SSBqdXN0IGtub3cgeW91ciBtZWFucywgd2UgYWxsb2NhdGVkIHRoZSBtZW1vcnkgdW5lbmNyeXB0 ZWQoa2VybmVsIHNwYWNlKSBpbiByZXNlcnZlZApjcmFzaCBtZW1vcnksIGZyb20gdGhpcyBwb2lu dCBvZiB2aWV3LCBpdCBpcyBub3QgIm9sZG1lbSIuIFRoYW5rcyBmb3IgeW91ciBjb21tZW50cy4K ClRoYW5rcy4KTGlhbmJvCgo+IFRoYW5rcy4KPiBMaWFuYm8KPj4gCS8qIGVsZmNvcmVoZHIgc3Rh eXMgaW4ga2R1bXAga2VybmVsIG1lbW9yeSBhbmQgaXQgaXMgbm90IGVuY3J5cHRlZC4gKi8KPj4g CXJldHVybiByZWFkX2Zyb21fb2xkbWVtKGJ1ZiwgY291bnQsIHBwb3MsIDAsIGZhbHNlKTsKPj4K Pj4KPj4gSSdtIHRoaW5raW5nIHRvIG1vdmUgdGhlIGZ1bmN0aW9uIHRvIHNvbWV0aGluZyBsaWtl IGJlbG93LCBzdGlsbCBub3Qgc3VyZQo+PiBtZW1yZW1hcCB3b3JrcyBvbiBldmVyeSBhcmNoZXMg b3Igbm90LCBzdGlsbCBuZWVkIG1vcmUgdGVzdAo+Pgo+PiBkaWZmIC0tZ2l0IGEvZnMvcHJvYy92 bWNvcmUuYyBiL2ZzL3Byb2Mvdm1jb3JlLmMKPj4gaW5kZXggY2ZiNjY3NDMzMWZkLi40MGMwMWNj NDJiMzggMTAwNjQ0Cj4+IC0tLSBhL2ZzL3Byb2Mvdm1jb3JlLmMKPj4gKysrIGIvZnMvcHJvYy92 bWNvcmUuYwo+PiBAQCAtMTM2LDYgKzEzNiwyNCBAQCBzdGF0aWMgc3NpemVfdCByZWFkX2Zyb21f b2xkbWVtKGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LAo+PiAgCXJldHVybiByZWFkOwo+PiAgfQo+ PiAgCj4+ICtzdGF0aWMgc3NpemVfdCByZWFkX2Zyb21fbWVtKGNoYXIgKmJ1Ziwgc2l6ZV90IGNv dW50LCB1NjQgKnBwb3MpCj4+ICt7Cj4+ICsJcmVzb3VyY2Vfc2l6ZV90IG9mZnNldCA9IChyZXNv dXJjZV9zaXplX3QpKnBwb3M7Cj4+ICsJY2hhciAqa2J1ZjsKPj4gKwo+PiArCWlmICghY291bnQp Cj4+ICsJCXJldHVybiAwOwo+PiArCj4+ICsJa2J1ZiA9IG1lbXJlbWFwKG9mZnNldCwgY291bnQs IE1FTVJFTUFQX1dCKTsKPj4gKwlpZiAoIWtidWYpCj4+ICsJCXJldHVybiAwOwo+PiArCj4+ICsJ bWVtY3B5KGJ1Ziwga2J1ZiwgY291bnQpOwo+PiArCW1lbXVubWFwKGtidWYpOwo+PiArCj4+ICsJ cmV0dXJuIGNvdW50Owo+PiArfQo+PiArCj4+ICAvKgo+PiAgICogQXJjaGl0ZWN0dXJlcyBtYXkg b3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBhbGxvY2F0ZSBFTEYgaGVhZGVyIGluIDJuZCBrZXJu ZWwKPj4gICAqLwo+PiBAQCAtMTU1LDcgKzE3Myw3IEBAIHZvaWQgX193ZWFrIGVsZmNvcmVoZHJf ZnJlZSh1bnNpZ25lZCBsb25nIGxvbmcgYWRkcikKPj4gICAqLwo+PiAgc3NpemVfdCBfX3dlYWsg ZWxmY29yZWhkcl9yZWFkKGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCB1NjQgKnBwb3MpCj4+ICB7 Cj4+IC0JcmV0dXJuIHJlYWRfZnJvbV9vbGRtZW0oYnVmLCBjb3VudCwgcHBvcywgMCk7Cj4+ICsJ cmV0dXJuIHJlYWRfZnJvbV9tZW0oYnVmLCBjb3VudCwgcHBvcyk7Cj4+ICB9Cj4+ICAKPj4gIC8q Cj4+ICAKPj4KPj4+ICB9Cj4+PiAgCj4+PiAgLyoKPj4+IEBAIC0xNTEsNyArMTU3LDcgQEAgc3Np emVfdCBfX3dlYWsgZWxmY29yZWhkcl9yZWFkKGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCB1NjQg KnBwb3MpCj4+PiAgICovCj4+PiAgc3NpemVfdCBfX3dlYWsgZWxmY29yZWhkcl9yZWFkX25vdGVz KGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCB1NjQgKnBwb3MpCj4+PiAgewo+Pj4gLQlyZXR1cm4g cmVhZF9mcm9tX29sZG1lbShidWYsIGNvdW50LCBwcG9zLCAwKTsKPj4+ICsJcmV0dXJuIHJlYWRf ZnJvbV9vbGRtZW0oYnVmLCBjb3VudCwgcHBvcywgMCwgc21lX2FjdGl2ZSgpKTsKPj4+ICB9Cj4+ PiAgCj4+PiAgLyoKPj4+IEBAIC0xNjEsNiArMTY3LDcgQEAgaW50IF9fd2VhayByZW1hcF9vbGRt ZW1fcGZuX3JhbmdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAo+Pj4gIAkJCQkgIHVuc2ln bmVkIGxvbmcgZnJvbSwgdW5zaWduZWQgbG9uZyBwZm4sCj4+PiAgCQkJCSAgdW5zaWduZWQgbG9u ZyBzaXplLCBwZ3Byb3RfdCBwcm90KQo+Pj4gIHsKPj4+ICsJcHJvdCA9IHBncHJvdF9lbmNyeXB0 ZWQocHJvdCk7Cj4+PiAgCXJldHVybiByZW1hcF9wZm5fcmFuZ2Uodm1hLCBmcm9tLCBwZm4sIHNp emUsIHByb3QpOwo+Pj4gIH0KPj4+ICAKPj4+IEBAIC0yMzUsNyArMjQyLDggQEAgc3RhdGljIHNz aXplX3QgX19yZWFkX3ZtY29yZShjaGFyICpidWZmZXIsIHNpemVfdCBidWZsZW4sIGxvZmZfdCAq ZnBvcywKPj4+ICAJCQkJCSAgICBtLT5vZmZzZXQgKyBtLT5zaXplIC0gKmZwb3MsCj4+PiAgCQkJ CQkgICAgYnVmbGVuKTsKPj4+ICAJCQlzdGFydCA9IG0tPnBhZGRyICsgKmZwb3MgLSBtLT5vZmZz ZXQ7Cj4+PiAtCQkJdG1wID0gcmVhZF9mcm9tX29sZG1lbShidWZmZXIsIHRzeiwgJnN0YXJ0LCB1 c2VyYnVmKTsKPj4+ICsJCQl0bXAgPSByZWFkX2Zyb21fb2xkbWVtKGJ1ZmZlciwgdHN6LCAmc3Rh cnQsIHVzZXJidWYsCj4+PiArCQkJCQkJc21lX2FjdGl2ZSgpKTsKPj4+ICAJCQlpZiAodG1wIDwg MCkKPj4+ICAJCQkJcmV0dXJuIHRtcDsKPj4+ICAJCQlidWZsZW4gLT0gdHN6Owo+Pj4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvY3Jhc2hfZHVtcC5oIGIvaW5jbHVkZS9saW51eC9jcmFzaF9k dW1wLmgKPj4+IGluZGV4IGY3YWMyYWEuLmYzNDE0ZmYgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNsdWRl L2xpbnV4L2NyYXNoX2R1bXAuaAo+Pj4gKysrIGIvaW5jbHVkZS9saW51eC9jcmFzaF9kdW1wLmgK Pj4+IEBAIC0yNSw2ICsyNSwxNyBAQCBleHRlcm4gaW50IHJlbWFwX29sZG1lbV9wZm5fcmFuZ2Uo c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCj4+PiAgCj4+PiAgZXh0ZXJuIHNzaXplX3QgY29w eV9vbGRtZW1fcGFnZSh1bnNpZ25lZCBsb25nLCBjaGFyICosIHNpemVfdCwKPj4+ICAJCQkJCQl1 bnNpZ25lZCBsb25nLCBpbnQpOwo+Pj4gKyNpZmRlZiBDT05GSUdfQU1EX01FTV9FTkNSWVBUCj4+ PiArZXh0ZXJuIHNzaXplX3QgY29weV9vbGRtZW1fcGFnZV9lbmNyeXB0ZWQodW5zaWduZWQgbG9u ZyBwZm4sIGNoYXIgKmJ1ZiwKPj4+ICsJCQkJCSAgIHNpemVfdCBjc2l6ZSwgdW5zaWduZWQgbG9u ZyBvZmZzZXQsCj4+PiArCQkJCQkgICBpbnQgdXNlcmJ1Zik7Cj4+PiArI2Vsc2UKPj4+ICtzdGF0 aWMgaW5saW5lIHNzaXplX3QgY29weV9vbGRtZW1fcGFnZV9lbmNyeXB0ZWQodW5zaWduZWQgbG9u ZyBwZm4sIGNoYXIgKmJ1ZiwKPj4+ICsJCQkJCXNpemVfdCBjc2l6ZSwgdW5zaWduZWQgbG9uZyBv ZmZzZXQsCj4+PiArCQkJCQlpbnQgdXNlcmJ1Zikgewo+Pgo+PiBQZXJzb25hbGx5IEkgcHJlZmVy IGJlbG93IGJlY2F1c2UgaXQgaXMgdG9vIGxvbmc6Cj4+Cj4+IHN0YXRpYyBpbmxpbmUKPj4gc3Np emVfdCBjb3B5X29sZG1lbV9wYWdlX2VuY3J5cHRlZCh1bnNpZ25lZCBsb25nIHBmbiwgY2hhciAq YnVmLCBzaXplX3QgY3NpemUsCj4+IAkJCQkgICB1bnNpZ25lZCBsb25nIG9mZnNldCwgaW50IHVz ZXJidWYpCj4+IHsKPj4gCXJldHVybiAwOwo+PiB9Cj4+IAkJCQo+Pgo+Pj4gKwlyZXR1cm4gY3Np emU7Cj4+Cj4+IEFzIGFib3ZlIGl0IHNob3VsZCBiZSByZXR1cm4gMDsKPj4KR3JlYXQsIFRoYW5r IHlvdSwgRGF2ZS4KCkxpYW5ibwo+Pj4gK30KPj4+ICsjZW5kaWYKPj4+ICB2b2lkIHZtY29yZV9j bGVhbnVwKHZvaWQpOwo+Pj4gIAo+Pj4gIC8qIEFyY2hpdGVjdHVyZSBjb2RlIGRlZmluZXMgdGhp cyBpZiB0aGVyZSBhcmUgb3RoZXIgcG9zc2libGUgRUxGCj4+PiAtLSAKPj4+IDIuOS41Cj4+Pgo+ Pj4KPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+ PiBrZXhlYyBtYWlsaW5nIGxpc3QKPj4+IGtleGVjQGxpc3RzLmluZnJhZGVhZC5vcmcKPj4+IGh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMKPj4KPj4gVGhh bmtzCj4+IERhdmUKPj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmtleGVjIG1haWxpbmcgbGlzdAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMK From mboxrd@z Thu Jan 1 00:00:00 1970 From: lijiang Subject: Re: [PATCH 4/4 V3] Help to dump the old memory encrypted into vmcore file Date: Wed, 20 Jun 2018 12:50:11 +0800 Message-ID: References: <20180616082714.32035-1-lijiang@redhat.com> <20180616082714.32035-5-lijiang@redhat.com> <20180619031653.GA7101@dhcp-128-65.nay.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Dave Young Cc: thomas.lendacky-5C7GfCeVMHo@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: iommu@lists.linux-foundation.org 5ZyoIDIwMTjlubQwNuaciDE55pelIDIyOjQ2LCBsaWppYW5nIOWGmemBkzoKPiDlnKggMjAxOOW5 tDA25pyIMTnml6UgMTE6MTYsIERhdmUgWW91bmcg5YaZ6YGTOgo+PiBPbiAwNi8xNi8xOCBhdCAw NDoyN3BtLCBMaWFuYm8gSmlhbmcgd3JvdGU6Cj4+PiBJbiBrZHVtcCBtb2RlLCB3ZSBuZWVkIHRv IGR1bXAgdGhlIG9sZCBtZW1vcnkgaW50byB2bWNvcmUgZmlsZSwKPj4+IGlmIFNNRSBpcyBlbmFi bGVkIGluIHRoZSBmaXJzdCBrZXJuZWwsIHdlIG11c3QgcmVtYXAgdGhlIG9sZAo+Pj4gbWVtb3J5 IGluIGVuY3J5cHRlZCBtYW5uZXIsIHdoaWNoIHdpbGwgYmUgYXV0b21hdGljYWxseSBkZWNyeXB0 ZWQKPj4+IHdoZW4gd2UgcmVhZCBmcm9tIERSQU0uIEl0IGhlbHBzIHRvIHBhcnNlIHRoZSB2bWNv cmUgZm9yIHNvbWUgdG9vbHMuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogTGlhbmJvIEppYW5nIDxs aWppYW5nQHJlZGhhdC5jb20+Cj4+PiAtLS0KPj4+IFNvbWUgY2hhbmdlczoKPj4+IDEuIGFkZCBh IG5ldyBmaWxlIGFuZCBtb2RpZnkgTWFrZWZpbGUuCj4+PiAyLiByZW1vdmUgc29tZSBjb2RlIGlu IHNldl9hY3RpdmUoKS4KPj4+Cj4+PiAgYXJjaC94ODYva2VybmVsL01ha2VmaWxlICAgICAgICAg ICAgIHwgIDEgKwo+Pj4gIGFyY2gveDg2L2tlcm5lbC9jcmFzaF9kdW1wX2VuY3J5cHQuYyB8IDUz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4gIGZzL3Byb2Mvdm1jb3Jl LmMgICAgICAgICAgICAgICAgICAgICB8IDIwICsrKysrKysrKystLS0tCj4+PiAgaW5jbHVkZS9s aW51eC9jcmFzaF9kdW1wLmggICAgICAgICAgIHwgMTEgKysrKysrKysKPj4+ICA0IGZpbGVzIGNo YW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4+PiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGFyY2gveDg2L2tlcm5lbC9jcmFzaF9kdW1wX2VuY3J5cHQuYwo+Pj4KPj4+IGRpZmYg LS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZp bGUKPj4+IGluZGV4IDAyZDZmNWMuLmFmYjViYWQgMTAwNjQ0Cj4+PiAtLS0gYS9hcmNoL3g4Ni9r ZXJuZWwvTWFrZWZpbGUKPj4+ICsrKyBiL2FyY2gveDg2L2tlcm5lbC9NYWtlZmlsZQo+Pj4gQEAg LTk2LDYgKzk2LDcgQEAgb2JqLSQoQ09ORklHX0tFWEVDX0NPUkUpCSs9IG1hY2hpbmVfa2V4ZWNf JChCSVRTKS5vCj4+PiAgb2JqLSQoQ09ORklHX0tFWEVDX0NPUkUpCSs9IHJlbG9jYXRlX2tlcm5l bF8kKEJJVFMpLm8gY3Jhc2gubwo+Pj4gIG9iai0kKENPTkZJR19LRVhFQ19GSUxFKQkrPSBrZXhl Yy1iemltYWdlNjQubwo+Pj4gIG9iai0kKENPTkZJR19DUkFTSF9EVU1QKQkrPSBjcmFzaF9kdW1w XyQoQklUUykubwo+Pj4gK29iai0kKENPTkZJR19BTURfTUVNX0VOQ1JZUFQpCSs9IGNyYXNoX2R1 bXBfZW5jcnlwdC5vCj4+PiAgb2JqLXkJCQkJKz0ga3Byb2Jlcy8KPj4+ICBvYmotJChDT05GSUdf TU9EVUxFUykJCSs9IG1vZHVsZS5vCj4+PiAgb2JqLSQoQ09ORklHX0RPVUJMRUZBVUxUKQkrPSBk b3VibGVmYXVsdC5vCj4+PiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NyYXNoX2R1bXBf ZW5jcnlwdC5jIGIvYXJjaC94ODYva2VybmVsL2NyYXNoX2R1bXBfZW5jcnlwdC5jCj4+PiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMC4uZTQ0ZWYzMwo+Pj4gLS0tIC9kZXYv bnVsbAo+Pj4gKysrIGIvYXJjaC94ODYva2VybmVsL2NyYXNoX2R1bXBfZW5jcnlwdC5jCj4+PiBA QCAtMCwwICsxLDUzIEBACj4+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAK Pj4+ICsvKgo+Pj4gKyAqCU1lbW9yeSBwcmVzZXJ2aW5nIHJlYm9vdCByZWxhdGVkIGNvZGUuCj4+ PiArICoKPj4+ICsgKglDcmVhdGVkIGJ5OiBMaWFuYm8gSmlhbmcgKGxpamlhbmdAcmVkaGF0LmNv bSkKPj4+ICsgKglDb3B5cmlnaHQgKEMpIFJlZEhhdCBDb3Jwb3JhdGlvbiwgMjAxOC4gQWxsIHJp Z2h0cyByZXNlcnZlZAo+Pj4gKyAqLwo+Pj4gKwo+Pj4gKyNpbmNsdWRlIDxsaW51eC9lcnJuby5o Pgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9jcmFzaF9kdW1wLmg+Cj4+PiArI2luY2x1ZGUgPGxpbnV4 L3VhY2Nlc3MuaD4KPj4+ICsjaW5jbHVkZSA8bGludXgvaW8uaD4KPj4+ICsKPj4+ICsvKioKPj4+ ICsgKiBjb3B5X29sZG1lbV9wYWdlX2VuY3J5cHRlZCAtIGNvcHkgb25lIHBhZ2UgZnJvbSAib2xk bWVtIGVuY3J5cHRlZCIKPj4+ICsgKiBAcGZuOiBwYWdlIGZyYW1lIG51bWJlciB0byBiZSBjb3Bp ZWQKPj4+ICsgKiBAYnVmOiB0YXJnZXQgbWVtb3J5IGFkZHJlc3MgZm9yIHRoZSBjb3B5OyB0aGlz IGNhbiBiZSBpbiBrZXJuZWwgYWRkcmVzcwo+Pj4gKyAqCXNwYWNlIG9yIHVzZXIgYWRkcmVzcyBz cGFjZSAoc2VlIEB1c2VyYnVmKQo+Pj4gKyAqIEBjc2l6ZTogbnVtYmVyIG9mIGJ5dGVzIHRvIGNv cHkKPj4+ICsgKiBAb2Zmc2V0OiBvZmZzZXQgaW4gYnl0ZXMgaW50byB0aGUgcGFnZSAoYmFzZWQg b24gcGZuKSB0byBiZWdpbiB0aGUgY29weQo+Pj4gKyAqIEB1c2VyYnVmOiBpZiBzZXQsIEBidWYg aXMgaW4gdXNlciBhZGRyZXNzIHNwYWNlLCB1c2UgY29weV90b191c2VyKCksCj4+PiArICoJb3Ro ZXJ3aXNlIEBidWYgaXMgaW4ga2VybmVsIGFkZHJlc3Mgc3BhY2UsIHVzZSBtZW1jcHkoKS4KPj4+ ICsgKgo+Pj4gKyAqIENvcHkgYSBwYWdlIGZyb20gIm9sZG1lbSBlbmNyeXB0ZWQiLiBGb3IgdGhp cyBwYWdlLCB0aGVyZSBpcyBubyBwdGUKPj4+ICsgKiBtYXBwZWQgaW4gdGhlIGN1cnJlbnQga2Vy bmVsLiBXZSBzdGl0Y2ggdXAgYSBwdGUsIHNpbWlsYXIgdG8KPj4+ICsgKiBrbWFwX2F0b21pYy4K Pj4+ICsgKi8KPj4+ICsKPj4+ICtzc2l6ZV90IGNvcHlfb2xkbWVtX3BhZ2VfZW5jcnlwdGVkKHVu c2lnbmVkIGxvbmcgcGZuLCBjaGFyICpidWYsCj4+PiArCQlzaXplX3QgY3NpemUsIHVuc2lnbmVk IGxvbmcgb2Zmc2V0LCBpbnQgdXNlcmJ1ZikKPj4+ICt7Cj4+PiArCXZvaWQgICp2YWRkcjsKPj4+ ICsKPj4+ICsJaWYgKCFjc2l6ZSkKPj4+ICsJCXJldHVybiAwOwo+Pj4gKwo+Pj4gKwl2YWRkciA9 IChfX2ZvcmNlIHZvaWQgKilpb3JlbWFwX2VuY3J5cHRlZChwZm4gPDwgUEFHRV9TSElGVCwKPj4+ ICsJCQkJCQkgIFBBR0VfU0laRSk7Cj4+PiArCWlmICghdmFkZHIpCj4+PiArCQlyZXR1cm4gLUVO T01FTTsKPj4+ICsKPj4+ICsJaWYgKHVzZXJidWYpIHsKPj4+ICsJCWlmIChjb3B5X3RvX3VzZXIo KHZvaWQgX191c2VyICopYnVmLCB2YWRkciArIG9mZnNldCwgY3NpemUpKSB7Cj4+PiArCQkJaW91 bm1hcCgodm9pZCBfX2lvbWVtICopdmFkZHIpOwo+Pj4gKwkJCXJldHVybiAtRUZBVUxUOwo+Pj4g KwkJfQo+Pj4gKwl9IGVsc2UKPj4+ICsJCW1lbWNweShidWYsIHZhZGRyICsgb2Zmc2V0LCBjc2l6 ZSk7Cj4+PiArCj4+PiArCXNldF9pb3VubWFwX25vbmxhenkoKTsKPj4+ICsJaW91bm1hcCgodm9p ZCBfX2lvbWVtICopdmFkZHIpOwo+Pj4gKwlyZXR1cm4gY3NpemU7Cj4+PiArfQo+Pj4gZGlmZiAt LWdpdCBhL2ZzL3Byb2Mvdm1jb3JlLmMgYi9mcy9wcm9jL3ZtY29yZS5jCj4+PiBpbmRleCBhNDVm MGFmLi41MjAwMjY2IDEwMDY0NAo+Pj4gLS0tIGEvZnMvcHJvYy92bWNvcmUuYwo+Pj4gKysrIGIv ZnMvcHJvYy92bWNvcmUuYwo+Pj4gQEAgLTI1LDYgKzI1LDggQEAKPj4+ICAjaW5jbHVkZSA8bGlu dXgvdWFjY2Vzcy5oPgo+Pj4gICNpbmNsdWRlIDxhc20vaW8uaD4KPj4+ICAjaW5jbHVkZSAiaW50 ZXJuYWwuaCIKPj4+ICsjaW5jbHVkZSA8bGludXgvbWVtX2VuY3J5cHQuaD4KPj4+ICsjaW5jbHVk ZSA8YXNtL3BndGFibGUuaD4KPj4+ICAKPj4+ICAvKiBMaXN0IHJlcHJlc2VudGluZyBjaHVua3Mg b2YgY29udGlndW91cyBtZW1vcnkgYXJlYXMgYW5kIHRoZWlyIG9mZnNldHMgaW4KPj4+ICAgKiB2 bWNvcmUgZmlsZS4KPj4+IEBAIC04Niw3ICs4OCw4IEBAIHN0YXRpYyBpbnQgcGZuX2lzX3JhbSh1 bnNpZ25lZCBsb25nIHBmbikKPj4+ICAKPj4+ICAvKiBSZWFkcyBhIHBhZ2UgZnJvbSB0aGUgb2xk bWVtIGRldmljZSBmcm9tIGdpdmVuIG9mZnNldC4gKi8KPj4+ICBzdGF0aWMgc3NpemVfdCByZWFk X2Zyb21fb2xkbWVtKGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LAo+Pj4gLQkJCQl1NjQgKnBwb3Ms IGludCB1c2VyYnVmKQo+Pj4gKwkJCQl1NjQgKnBwb3MsIGludCB1c2VyYnVmLAo+Pj4gKwkJCQli b29sIGVuY3J5cHRlZCkKPj4+ICB7Cj4+PiAgCXVuc2lnbmVkIGxvbmcgcGZuLCBvZmZzZXQ7Cj4+ PiAgCXNpemVfdCBucl9ieXRlczsKPj4+IEBAIC0xMDgsOCArMTExLDExIEBAIHN0YXRpYyBzc2l6 ZV90IHJlYWRfZnJvbV9vbGRtZW0oY2hhciAqYnVmLCBzaXplX3QgY291bnQsCj4+PiAgCQlpZiAo cGZuX2lzX3JhbShwZm4pID09IDApCj4+PiAgCQkJbWVtc2V0KGJ1ZiwgMCwgbnJfYnl0ZXMpOwo+ Pj4gIAkJZWxzZSB7Cj4+PiAtCQkJdG1wID0gY29weV9vbGRtZW1fcGFnZShwZm4sIGJ1ZiwgbnJf Ynl0ZXMsCj4+PiAtCQkJCQkJb2Zmc2V0LCB1c2VyYnVmKTsKPj4+ICsJCQl0bXAgPSBlbmNyeXB0 ZWQgPyBjb3B5X29sZG1lbV9wYWdlX2VuY3J5cHRlZChwZm4sCj4+PiArCQkJCQkgICAgYnVmLCBu cl9ieXRlcywgb2Zmc2V0LCB1c2VyYnVmKQo+Pj4gKwkJCQkJOiBjb3B5X29sZG1lbV9wYWdlKHBm biwgYnVmLCBucl9ieXRlcywKPj4+ICsJCQkJCQkJICAgb2Zmc2V0LCB1c2VyYnVmKTsKPj4+ICsK Pj4+ICAJCQlpZiAodG1wIDwgMCkKPj4+ICAJCQkJcmV0dXJuIHRtcDsKPj4+ICAJCX0KPj4+IEBA IC0xNDMsNyArMTQ5LDcgQEAgdm9pZCBfX3dlYWsgZWxmY29yZWhkcl9mcmVlKHVuc2lnbmVkIGxv bmcgbG9uZyBhZGRyKQo+Pj4gICAqLwo+Pj4gIHNzaXplX3QgX193ZWFrIGVsZmNvcmVoZHJfcmVh ZChjaGFyICpidWYsIHNpemVfdCBjb3VudCwgdTY0ICpwcG9zKQo+Pj4gIHsKPj4+IC0JcmV0dXJu IHJlYWRfZnJvbV9vbGRtZW0oYnVmLCBjb3VudCwgcHBvcywgMCk7Cj4+PiArCXJldHVybiByZWFk X2Zyb21fb2xkbWVtKGJ1ZiwgY291bnQsIHBwb3MsIDAsIGZhbHNlKTsKPj4KPj4gVGhlIGVsZiBo ZWFkZXIgYWN0dWFsbHkgc3RheXMgaW4ga2R1bXAga2VybmVsIHJlc2VydmVkIG1lbW9yeSBzbyBp dCBpcwo+PiBub3QgIm9sZG1lbSIsIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiBpcyBtaXNsZWFkaW5n IGFuZCBkb2luZyB1bm5lY2Vzc2FyeQo+PiB0aGluZ3MuICBCdXQgYXMgZm9yIHlvdXIgcGF0Y2gg bWF5YmUgdXNpbmcgaXQgYXMgaXMgaXMgZ29vZCBmb3IgdGhlIHRpbWUKPj4gYmVpbmcgYW5kIGFk ZCBhIGNvZGUgY29tbWVudCB3aHkgdGhlIGVuY3J5cHRlZCBpcyAiZmFsc2UiLgo+Pgo+IFRoYW5r IHlvdSwgRGF2ZS4gSXQgaXMgYSBnb29kIGlkZWEgdG8gYWRkIHNvbWUgY29tbWVudHMgZm9yIHRo ZSBjb2RlLgo+IEkgcmVjaGVja2VkIHRoZSBjb2RlLCB0aGUgZWxmIGhlYWRlciBzaG91bGQgYmUg c3RpbGwgdGhlIG9sZCBtZW1vcnkgaW4gdGhlIGZpcnN0IGtlcm5lbCwKPiBidXQgd2h5IGlzIHRo ZSBvbGQgbWVtb3J5IHVuZW5jcnlwdGVkPyBCZWNhdXNlIGl0IGNvcGllcyB0aGUgZWxmIGhlYWRl ciBmcm9tIHRoZSBtZW1vcnkKPiBlbmNyeXB0ZWQodXNlciBzcGFjZSkgdG8gdGhlIG1lbW9yeSB1 bmVuY3J5cHRlZChrZXJuZWwgc3BhY2UpIHdoZW4gU01FIGlzIGFjdGl2YXRlZCBpbiB0aGUKPiBm aXJzdCBrZXJuZWwsIHRoaXMgb3BlcmF0aW9uIGp1c3QgbGVhZHMgdG8gZGVjcnlwdGlvbi4KPiAK SSBqdXN0IGtub3cgeW91ciBtZWFucywgd2UgYWxsb2NhdGVkIHRoZSBtZW1vcnkgdW5lbmNyeXB0 ZWQoa2VybmVsIHNwYWNlKSBpbiByZXNlcnZlZApjcmFzaCBtZW1vcnksIGZyb20gdGhpcyBwb2lu dCBvZiB2aWV3LCBpdCBpcyBub3QgIm9sZG1lbSIuIFRoYW5rcyBmb3IgeW91ciBjb21tZW50cy4K ClRoYW5rcy4KTGlhbmJvCgo+IFRoYW5rcy4KPiBMaWFuYm8KPj4gCS8qIGVsZmNvcmVoZHIgc3Rh eXMgaW4ga2R1bXAga2VybmVsIG1lbW9yeSBhbmQgaXQgaXMgbm90IGVuY3J5cHRlZC4gKi8KPj4g CXJldHVybiByZWFkX2Zyb21fb2xkbWVtKGJ1ZiwgY291bnQsIHBwb3MsIDAsIGZhbHNlKTsKPj4K Pj4KPj4gSSdtIHRoaW5raW5nIHRvIG1vdmUgdGhlIGZ1bmN0aW9uIHRvIHNvbWV0aGluZyBsaWtl IGJlbG93LCBzdGlsbCBub3Qgc3VyZQo+PiBtZW1yZW1hcCB3b3JrcyBvbiBldmVyeSBhcmNoZXMg b3Igbm90LCBzdGlsbCBuZWVkIG1vcmUgdGVzdAo+Pgo+PiBkaWZmIC0tZ2l0IGEvZnMvcHJvYy92 bWNvcmUuYyBiL2ZzL3Byb2Mvdm1jb3JlLmMKPj4gaW5kZXggY2ZiNjY3NDMzMWZkLi40MGMwMWNj NDJiMzggMTAwNjQ0Cj4+IC0tLSBhL2ZzL3Byb2Mvdm1jb3JlLmMKPj4gKysrIGIvZnMvcHJvYy92 bWNvcmUuYwo+PiBAQCAtMTM2LDYgKzEzNiwyNCBAQCBzdGF0aWMgc3NpemVfdCByZWFkX2Zyb21f b2xkbWVtKGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LAo+PiAgCXJldHVybiByZWFkOwo+PiAgfQo+ PiAgCj4+ICtzdGF0aWMgc3NpemVfdCByZWFkX2Zyb21fbWVtKGNoYXIgKmJ1Ziwgc2l6ZV90IGNv dW50LCB1NjQgKnBwb3MpCj4+ICt7Cj4+ICsJcmVzb3VyY2Vfc2l6ZV90IG9mZnNldCA9IChyZXNv dXJjZV9zaXplX3QpKnBwb3M7Cj4+ICsJY2hhciAqa2J1ZjsKPj4gKwo+PiArCWlmICghY291bnQp Cj4+ICsJCXJldHVybiAwOwo+PiArCj4+ICsJa2J1ZiA9IG1lbXJlbWFwKG9mZnNldCwgY291bnQs IE1FTVJFTUFQX1dCKTsKPj4gKwlpZiAoIWtidWYpCj4+ICsJCXJldHVybiAwOwo+PiArCj4+ICsJ bWVtY3B5KGJ1Ziwga2J1ZiwgY291bnQpOwo+PiArCW1lbXVubWFwKGtidWYpOwo+PiArCj4+ICsJ cmV0dXJuIGNvdW50Owo+PiArfQo+PiArCj4+ICAvKgo+PiAgICogQXJjaGl0ZWN0dXJlcyBtYXkg b3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBhbGxvY2F0ZSBFTEYgaGVhZGVyIGluIDJuZCBrZXJu ZWwKPj4gICAqLwo+PiBAQCAtMTU1LDcgKzE3Myw3IEBAIHZvaWQgX193ZWFrIGVsZmNvcmVoZHJf ZnJlZSh1bnNpZ25lZCBsb25nIGxvbmcgYWRkcikKPj4gICAqLwo+PiAgc3NpemVfdCBfX3dlYWsg ZWxmY29yZWhkcl9yZWFkKGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCB1NjQgKnBwb3MpCj4+ICB7 Cj4+IC0JcmV0dXJuIHJlYWRfZnJvbV9vbGRtZW0oYnVmLCBjb3VudCwgcHBvcywgMCk7Cj4+ICsJ cmV0dXJuIHJlYWRfZnJvbV9tZW0oYnVmLCBjb3VudCwgcHBvcyk7Cj4+ICB9Cj4+ICAKPj4gIC8q Cj4+ICAKPj4KPj4+ICB9Cj4+PiAgCj4+PiAgLyoKPj4+IEBAIC0xNTEsNyArMTU3LDcgQEAgc3Np emVfdCBfX3dlYWsgZWxmY29yZWhkcl9yZWFkKGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCB1NjQg KnBwb3MpCj4+PiAgICovCj4+PiAgc3NpemVfdCBfX3dlYWsgZWxmY29yZWhkcl9yZWFkX25vdGVz KGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCB1NjQgKnBwb3MpCj4+PiAgewo+Pj4gLQlyZXR1cm4g cmVhZF9mcm9tX29sZG1lbShidWYsIGNvdW50LCBwcG9zLCAwKTsKPj4+ICsJcmV0dXJuIHJlYWRf ZnJvbV9vbGRtZW0oYnVmLCBjb3VudCwgcHBvcywgMCwgc21lX2FjdGl2ZSgpKTsKPj4+ICB9Cj4+ PiAgCj4+PiAgLyoKPj4+IEBAIC0xNjEsNiArMTY3LDcgQEAgaW50IF9fd2VhayByZW1hcF9vbGRt ZW1fcGZuX3JhbmdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAo+Pj4gIAkJCQkgIHVuc2ln bmVkIGxvbmcgZnJvbSwgdW5zaWduZWQgbG9uZyBwZm4sCj4+PiAgCQkJCSAgdW5zaWduZWQgbG9u ZyBzaXplLCBwZ3Byb3RfdCBwcm90KQo+Pj4gIHsKPj4+ICsJcHJvdCA9IHBncHJvdF9lbmNyeXB0 ZWQocHJvdCk7Cj4+PiAgCXJldHVybiByZW1hcF9wZm5fcmFuZ2Uodm1hLCBmcm9tLCBwZm4sIHNp emUsIHByb3QpOwo+Pj4gIH0KPj4+ICAKPj4+IEBAIC0yMzUsNyArMjQyLDggQEAgc3RhdGljIHNz aXplX3QgX19yZWFkX3ZtY29yZShjaGFyICpidWZmZXIsIHNpemVfdCBidWZsZW4sIGxvZmZfdCAq ZnBvcywKPj4+ICAJCQkJCSAgICBtLT5vZmZzZXQgKyBtLT5zaXplIC0gKmZwb3MsCj4+PiAgCQkJ CQkgICAgYnVmbGVuKTsKPj4+ICAJCQlzdGFydCA9IG0tPnBhZGRyICsgKmZwb3MgLSBtLT5vZmZz ZXQ7Cj4+PiAtCQkJdG1wID0gcmVhZF9mcm9tX29sZG1lbShidWZmZXIsIHRzeiwgJnN0YXJ0LCB1 c2VyYnVmKTsKPj4+ICsJCQl0bXAgPSByZWFkX2Zyb21fb2xkbWVtKGJ1ZmZlciwgdHN6LCAmc3Rh cnQsIHVzZXJidWYsCj4+PiArCQkJCQkJc21lX2FjdGl2ZSgpKTsKPj4+ICAJCQlpZiAodG1wIDwg MCkKPj4+ICAJCQkJcmV0dXJuIHRtcDsKPj4+ICAJCQlidWZsZW4gLT0gdHN6Owo+Pj4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvY3Jhc2hfZHVtcC5oIGIvaW5jbHVkZS9saW51eC9jcmFzaF9k dW1wLmgKPj4+IGluZGV4IGY3YWMyYWEuLmYzNDE0ZmYgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNsdWRl L2xpbnV4L2NyYXNoX2R1bXAuaAo+Pj4gKysrIGIvaW5jbHVkZS9saW51eC9jcmFzaF9kdW1wLmgK Pj4+IEBAIC0yNSw2ICsyNSwxNyBAQCBleHRlcm4gaW50IHJlbWFwX29sZG1lbV9wZm5fcmFuZ2Uo c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCj4+PiAgCj4+PiAgZXh0ZXJuIHNzaXplX3QgY29w eV9vbGRtZW1fcGFnZSh1bnNpZ25lZCBsb25nLCBjaGFyICosIHNpemVfdCwKPj4+ICAJCQkJCQl1 bnNpZ25lZCBsb25nLCBpbnQpOwo+Pj4gKyNpZmRlZiBDT05GSUdfQU1EX01FTV9FTkNSWVBUCj4+ PiArZXh0ZXJuIHNzaXplX3QgY29weV9vbGRtZW1fcGFnZV9lbmNyeXB0ZWQodW5zaWduZWQgbG9u ZyBwZm4sIGNoYXIgKmJ1ZiwKPj4+ICsJCQkJCSAgIHNpemVfdCBjc2l6ZSwgdW5zaWduZWQgbG9u ZyBvZmZzZXQsCj4+PiArCQkJCQkgICBpbnQgdXNlcmJ1Zik7Cj4+PiArI2Vsc2UKPj4+ICtzdGF0 aWMgaW5saW5lIHNzaXplX3QgY29weV9vbGRtZW1fcGFnZV9lbmNyeXB0ZWQodW5zaWduZWQgbG9u ZyBwZm4sIGNoYXIgKmJ1ZiwKPj4+ICsJCQkJCXNpemVfdCBjc2l6ZSwgdW5zaWduZWQgbG9uZyBv ZmZzZXQsCj4+PiArCQkJCQlpbnQgdXNlcmJ1Zikgewo+Pgo+PiBQZXJzb25hbGx5IEkgcHJlZmVy IGJlbG93IGJlY2F1c2UgaXQgaXMgdG9vIGxvbmc6Cj4+Cj4+IHN0YXRpYyBpbmxpbmUKPj4gc3Np emVfdCBjb3B5X29sZG1lbV9wYWdlX2VuY3J5cHRlZCh1bnNpZ25lZCBsb25nIHBmbiwgY2hhciAq YnVmLCBzaXplX3QgY3NpemUsCj4+IAkJCQkgICB1bnNpZ25lZCBsb25nIG9mZnNldCwgaW50IHVz ZXJidWYpCj4+IHsKPj4gCXJldHVybiAwOwo+PiB9Cj4+IAkJCQo+Pgo+Pj4gKwlyZXR1cm4gY3Np emU7Cj4+Cj4+IEFzIGFib3ZlIGl0IHNob3VsZCBiZSByZXR1cm4gMDsKPj4KR3JlYXQsIFRoYW5r IHlvdSwgRGF2ZS4KCkxpYW5ibwo+Pj4gK30KPj4+ICsjZW5kaWYKPj4+ICB2b2lkIHZtY29yZV9j bGVhbnVwKHZvaWQpOwo+Pj4gIAo+Pj4gIC8qIEFyY2hpdGVjdHVyZSBjb2RlIGRlZmluZXMgdGhp cyBpZiB0aGVyZSBhcmUgb3RoZXIgcG9zc2libGUgRUxGCj4+PiAtLSAKPj4+IDIuOS41Cj4+Pgo+ Pj4KPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+ PiBrZXhlYyBtYWlsaW5nIGxpc3QKPj4+IGtleGVjQGxpc3RzLmluZnJhZGVhZC5vcmcKPj4+IGh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMKPj4KPj4gVGhh bmtzCj4+IERhdmUKPj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KaW9tbXUgbWFpbGluZyBsaXN0CmlvbW11QGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3Jn Cmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lvbW11 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 X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 40166C1B0F2 for ; Wed, 20 Jun 2018 04:50:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E08DD20836 for ; Wed, 20 Jun 2018 04:50:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E08DD20836 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753832AbeFTEuY (ORCPT ); Wed, 20 Jun 2018 00:50:24 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:55472 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751422AbeFTEuU (ORCPT ); Wed, 20 Jun 2018 00:50:20 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C913579D36; Wed, 20 Jun 2018 04:50:19 +0000 (UTC) Received: from localhost.localdomain (ovpn-12-88.pek2.redhat.com [10.72.12.88]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4A9A476EF; Wed, 20 Jun 2018 04:50:14 +0000 (UTC) Subject: Re: [PATCH 4/4 V3] Help to dump the old memory encrypted into vmcore file From: lijiang To: Dave Young Cc: linux-kernel@vger.kernel.org, thomas.lendacky@amd.com, iommu@lists.linux-foundation.org, kexec@lists.infradead.org References: <20180616082714.32035-1-lijiang@redhat.com> <20180616082714.32035-5-lijiang@redhat.com> <20180619031653.GA7101@dhcp-128-65.nay.redhat.com> Message-ID: Date: Wed, 20 Jun 2018 12:50:11 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Wed, 20 Jun 2018 04:50:19 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Wed, 20 Jun 2018 04:50:19 +0000 (UTC) for IP:'10.11.54.5' DOMAIN:'int-mx05.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'lijiang@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 在 2018年06月19日 22:46, lijiang 写道: > 在 2018年06月19日 11:16, Dave Young 写道: >> On 06/16/18 at 04:27pm, Lianbo Jiang wrote: >>> In kdump mode, we need to dump the old memory into vmcore file, >>> if SME is enabled in the first kernel, we must remap the old >>> memory in encrypted manner, which will be automatically decrypted >>> when we read from DRAM. It helps to parse the vmcore for some tools. >>> >>> Signed-off-by: Lianbo Jiang >>> --- >>> Some changes: >>> 1. add a new file and modify Makefile. >>> 2. remove some code in sev_active(). >>> >>> arch/x86/kernel/Makefile | 1 + >>> arch/x86/kernel/crash_dump_encrypt.c | 53 ++++++++++++++++++++++++++++++++++++ >>> fs/proc/vmcore.c | 20 ++++++++++---- >>> include/linux/crash_dump.h | 11 ++++++++ >>> 4 files changed, 79 insertions(+), 6 deletions(-) >>> create mode 100644 arch/x86/kernel/crash_dump_encrypt.c >>> >>> diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile >>> index 02d6f5c..afb5bad 100644 >>> --- a/arch/x86/kernel/Makefile >>> +++ b/arch/x86/kernel/Makefile >>> @@ -96,6 +96,7 @@ obj-$(CONFIG_KEXEC_CORE) += machine_kexec_$(BITS).o >>> obj-$(CONFIG_KEXEC_CORE) += relocate_kernel_$(BITS).o crash.o >>> obj-$(CONFIG_KEXEC_FILE) += kexec-bzimage64.o >>> obj-$(CONFIG_CRASH_DUMP) += crash_dump_$(BITS).o >>> +obj-$(CONFIG_AMD_MEM_ENCRYPT) += crash_dump_encrypt.o >>> obj-y += kprobes/ >>> obj-$(CONFIG_MODULES) += module.o >>> obj-$(CONFIG_DOUBLEFAULT) += doublefault.o >>> diff --git a/arch/x86/kernel/crash_dump_encrypt.c b/arch/x86/kernel/crash_dump_encrypt.c >>> new file mode 100644 >>> index 0000000..e44ef33 >>> --- /dev/null >>> +++ b/arch/x86/kernel/crash_dump_encrypt.c >>> @@ -0,0 +1,53 @@ >>> +// SPDX-License-Identifier: GPL-2.0 >>> +/* >>> + * Memory preserving reboot related code. >>> + * >>> + * Created by: Lianbo Jiang (lijiang@redhat.com) >>> + * Copyright (C) RedHat Corporation, 2018. All rights reserved >>> + */ >>> + >>> +#include >>> +#include >>> +#include >>> +#include >>> + >>> +/** >>> + * copy_oldmem_page_encrypted - copy one page from "oldmem encrypted" >>> + * @pfn: page frame number to be copied >>> + * @buf: target memory address for the copy; this can be in kernel address >>> + * space or user address space (see @userbuf) >>> + * @csize: number of bytes to copy >>> + * @offset: offset in bytes into the page (based on pfn) to begin the copy >>> + * @userbuf: if set, @buf is in user address space, use copy_to_user(), >>> + * otherwise @buf is in kernel address space, use memcpy(). >>> + * >>> + * Copy a page from "oldmem encrypted". For this page, there is no pte >>> + * mapped in the current kernel. We stitch up a pte, similar to >>> + * kmap_atomic. >>> + */ >>> + >>> +ssize_t copy_oldmem_page_encrypted(unsigned long pfn, char *buf, >>> + size_t csize, unsigned long offset, int userbuf) >>> +{ >>> + void *vaddr; >>> + >>> + if (!csize) >>> + return 0; >>> + >>> + vaddr = (__force void *)ioremap_encrypted(pfn << PAGE_SHIFT, >>> + PAGE_SIZE); >>> + if (!vaddr) >>> + return -ENOMEM; >>> + >>> + if (userbuf) { >>> + if (copy_to_user((void __user *)buf, vaddr + offset, csize)) { >>> + iounmap((void __iomem *)vaddr); >>> + return -EFAULT; >>> + } >>> + } else >>> + memcpy(buf, vaddr + offset, csize); >>> + >>> + set_iounmap_nonlazy(); >>> + iounmap((void __iomem *)vaddr); >>> + return csize; >>> +} >>> diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c >>> index a45f0af..5200266 100644 >>> --- a/fs/proc/vmcore.c >>> +++ b/fs/proc/vmcore.c >>> @@ -25,6 +25,8 @@ >>> #include >>> #include >>> #include "internal.h" >>> +#include >>> +#include >>> >>> /* List representing chunks of contiguous memory areas and their offsets in >>> * vmcore file. >>> @@ -86,7 +88,8 @@ static int pfn_is_ram(unsigned long pfn) >>> >>> /* Reads a page from the oldmem device from given offset. */ >>> static ssize_t read_from_oldmem(char *buf, size_t count, >>> - u64 *ppos, int userbuf) >>> + u64 *ppos, int userbuf, >>> + bool encrypted) >>> { >>> unsigned long pfn, offset; >>> size_t nr_bytes; >>> @@ -108,8 +111,11 @@ static ssize_t read_from_oldmem(char *buf, size_t count, >>> if (pfn_is_ram(pfn) == 0) >>> memset(buf, 0, nr_bytes); >>> else { >>> - tmp = copy_oldmem_page(pfn, buf, nr_bytes, >>> - offset, userbuf); >>> + tmp = encrypted ? copy_oldmem_page_encrypted(pfn, >>> + buf, nr_bytes, offset, userbuf) >>> + : copy_oldmem_page(pfn, buf, nr_bytes, >>> + offset, userbuf); >>> + >>> if (tmp < 0) >>> return tmp; >>> } >>> @@ -143,7 +149,7 @@ void __weak elfcorehdr_free(unsigned long long addr) >>> */ >>> ssize_t __weak elfcorehdr_read(char *buf, size_t count, u64 *ppos) >>> { >>> - return read_from_oldmem(buf, count, ppos, 0); >>> + return read_from_oldmem(buf, count, ppos, 0, false); >> >> The elf header actually stays in kdump kernel reserved memory so it is >> not "oldmem", the original function is misleading and doing unnecessary >> things. But as for your patch maybe using it as is is good for the time >> being and add a code comment why the encrypted is "false". >> > Thank you, Dave. It is a good idea to add some comments for the code. > I rechecked the code, the elf header should be still the old memory in the first kernel, > but why is the old memory unencrypted? Because it copies the elf header from the memory > encrypted(user space) to the memory unencrypted(kernel space) when SME is activated in the > first kernel, this operation just leads to decryption. > I just know your means, we allocated the memory unencrypted(kernel space) in reserved crash memory, from this point of view, it is not "oldmem". Thanks for your comments. Thanks. Lianbo > Thanks. > Lianbo >> /* elfcorehdr stays in kdump kernel memory and it is not encrypted. */ >> return read_from_oldmem(buf, count, ppos, 0, false); >> >> >> I'm thinking to move the function to something like below, still not sure >> memremap works on every arches or not, still need more test >> >> diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c >> index cfb6674331fd..40c01cc42b38 100644 >> --- a/fs/proc/vmcore.c >> +++ b/fs/proc/vmcore.c >> @@ -136,6 +136,24 @@ static ssize_t read_from_oldmem(char *buf, size_t count, >> return read; >> } >> >> +static ssize_t read_from_mem(char *buf, size_t count, u64 *ppos) >> +{ >> + resource_size_t offset = (resource_size_t)*ppos; >> + char *kbuf; >> + >> + if (!count) >> + return 0; >> + >> + kbuf = memremap(offset, count, MEMREMAP_WB); >> + if (!kbuf) >> + return 0; >> + >> + memcpy(buf, kbuf, count); >> + memunmap(kbuf); >> + >> + return count; >> +} >> + >> /* >> * Architectures may override this function to allocate ELF header in 2nd kernel >> */ >> @@ -155,7 +173,7 @@ void __weak elfcorehdr_free(unsigned long long addr) >> */ >> ssize_t __weak elfcorehdr_read(char *buf, size_t count, u64 *ppos) >> { >> - return read_from_oldmem(buf, count, ppos, 0); >> + return read_from_mem(buf, count, ppos); >> } >> >> /* >> >> >>> } >>> >>> /* >>> @@ -151,7 +157,7 @@ ssize_t __weak elfcorehdr_read(char *buf, size_t count, u64 *ppos) >>> */ >>> ssize_t __weak elfcorehdr_read_notes(char *buf, size_t count, u64 *ppos) >>> { >>> - return read_from_oldmem(buf, count, ppos, 0); >>> + return read_from_oldmem(buf, count, ppos, 0, sme_active()); >>> } >>> >>> /* >>> @@ -161,6 +167,7 @@ int __weak remap_oldmem_pfn_range(struct vm_area_struct *vma, >>> unsigned long from, unsigned long pfn, >>> unsigned long size, pgprot_t prot) >>> { >>> + prot = pgprot_encrypted(prot); >>> return remap_pfn_range(vma, from, pfn, size, prot); >>> } >>> >>> @@ -235,7 +242,8 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos, >>> m->offset + m->size - *fpos, >>> buflen); >>> start = m->paddr + *fpos - m->offset; >>> - tmp = read_from_oldmem(buffer, tsz, &start, userbuf); >>> + tmp = read_from_oldmem(buffer, tsz, &start, userbuf, >>> + sme_active()); >>> if (tmp < 0) >>> return tmp; >>> buflen -= tsz; >>> diff --git a/include/linux/crash_dump.h b/include/linux/crash_dump.h >>> index f7ac2aa..f3414ff 100644 >>> --- a/include/linux/crash_dump.h >>> +++ b/include/linux/crash_dump.h >>> @@ -25,6 +25,17 @@ extern int remap_oldmem_pfn_range(struct vm_area_struct *vma, >>> >>> extern ssize_t copy_oldmem_page(unsigned long, char *, size_t, >>> unsigned long, int); >>> +#ifdef CONFIG_AMD_MEM_ENCRYPT >>> +extern ssize_t copy_oldmem_page_encrypted(unsigned long pfn, char *buf, >>> + size_t csize, unsigned long offset, >>> + int userbuf); >>> +#else >>> +static inline ssize_t copy_oldmem_page_encrypted(unsigned long pfn, char *buf, >>> + size_t csize, unsigned long offset, >>> + int userbuf) { >> >> Personally I prefer below because it is too long: >> >> static inline >> ssize_t copy_oldmem_page_encrypted(unsigned long pfn, char *buf, size_t csize, >> unsigned long offset, int userbuf) >> { >> return 0; >> } >> >> >>> + return csize; >> >> As above it should be return 0; >> Great, Thank you, Dave. Lianbo >>> +} >>> +#endif >>> void vmcore_cleanup(void); >>> >>> /* Architecture code defines this if there are other possible ELF >>> -- >>> 2.9.5 >>> >>> >>> _______________________________________________ >>> kexec mailing list >>> kexec@lists.infradead.org >>> http://lists.infradead.org/mailman/listinfo/kexec >> >> Thanks >> Dave >>