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 B4451C433FE for ; Mon, 17 Oct 2022 06:47:06 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=EnoQhdXT0jrcXE3AKvkWiqGf0huB+AaSHbc/rxP+UJU=; b=2bhZK8cuj6c71N 2vDNN8Jvlx7RS+Z+cjIT/yFJZJj3ayj4sXAaqymd1pfoQDaogM7bxZWNoJoj3p0iG+lZ2zE0IKOZM 7B+9FzBkWNJ5QyVujQiAOSh4iZkYQFWaYGlvl0SBlAuPbDFcl0zpku/Plj7zL57S/DSM9AgF0bxQ3 Yd+Izje9/sMDNrOyMGukLG09vAi4+kkTR1PKzwhtELMS5C66M+1WuLQ7LPijoUwzBkng71y0X9NgL WhhX/weFTffm00BBvyRraFy3ENuVjEYNBXNGAedXh3cwAPCC+n38Y/hw2mXVMQSvfVq6V4p+dT0MH HBMfQHPgasCIaIyXaoEg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1okJtq-0084e9-99; Mon, 17 Oct 2022 06:46:58 +0000 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1okJti-0084Vi-8K for kexec@lists.infradead.org; Mon, 17 Oct 2022 06:46:52 +0000 Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29H5vtvf030516; Mon, 17 Oct 2022 06:46:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=Ueyo4i0t7NB7EKyXOPdWLOfDpPTnIZoO0Pi9reWnp9E=; b=X+MZF0z5ZbrPjQNxitJjQOK+ImZrgMmx/jyLYHLjhLNRW65ocmekvt4SBxD64J1Gm1i3 UAO9K44Cpt+p5fJ96jTqEZiWdXUYOiDjAHgdgqeWWX606cz+eriYCZqAy/orqVoRYObm s9/FK4ZAuJd0YqBcgPD/Vu+QIw3KNmD1vyGr3ezf4o4zqqkgOdxSUbj4MxhkkNKZNkHT V6GJ2dIB8Gr/9SXoiOjH3qriyYQuq0kdOf4kKhoBPgMFuU6cwvdQOtAimzS6JScez6eM Db14AzYTqxwXAqwT9LqvX8hjrzCzpR8WFvJMGlXaVmepZRtX5/JEnkKkqEYjKNp4bySu Pg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3k86nte2cf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 17 Oct 2022 06:46:18 +0000 Received: from m0098410.ppops.net (m0098410.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 29H653t6018998; Mon, 17 Oct 2022 06:46:17 GMT Received: from ppma04ams.nl.ibm.com (63.31.33a9.ip4.static.sl-reverse.com [169.51.49.99]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3k86nte2b9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 17 Oct 2022 06:46:17 +0000 Received: from pps.filterd (ppma04ams.nl.ibm.com [127.0.0.1]) by ppma04ams.nl.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 29H6bsGr028652; Mon, 17 Oct 2022 06:46:14 GMT Received: from b06avi18626390.portsmouth.uk.ibm.com (b06avi18626390.portsmouth.uk.ibm.com [9.149.26.192]) by ppma04ams.nl.ibm.com with ESMTP id 3k7mg92ewu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 17 Oct 2022 06:46:14 +0000 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06avi18626390.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 29H6fHY350725352 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 17 Oct 2022 06:41:17 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 95B49A4051; Mon, 17 Oct 2022 06:46:12 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 93A1AA4040; Mon, 17 Oct 2022 06:46:07 +0000 (GMT) Received: from [9.43.94.119] (unknown [9.43.94.119]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTP; Mon, 17 Oct 2022 06:46:07 +0000 (GMT) Message-ID: <13709fd8-400e-da70-42b5-21cd3b850fbc@linux.ibm.com> Date: Mon, 17 Oct 2022 12:15:35 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 Subject: Re: [PATCH v12 3/7] crash: add generic infrastructure for crash hotplug support Content-Language: en-US To: Eric DeVolder , linux-kernel@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, ebiederm@xmission.com, dyoung@redhat.com, bhe@redhat.com, vgoyal@redhat.com Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, nramas@linux.microsoft.com, thomas.lendacky@amd.com, robh@kernel.org, efault@gmx.de, rppt@kernel.org, david@redhat.com, konrad.wilk@oracle.com, boris.ostrovsky@oracle.com References: <20220909210509.6286-1-eric.devolder@oracle.com> <20220909210509.6286-4-eric.devolder@oracle.com> <8cc31b22-a061-d07c-77dc-c555b8b35af3@linux.ibm.com> <97f2daae-f34a-86bb-6d28-8aa8314321bc@oracle.com> From: Sourabh Jain In-Reply-To: <97f2daae-f34a-86bb-6d28-8aa8314321bc@oracle.com> X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: atVTK50R26ECHjUSWqOA7fToCubFAQTv X-Proofpoint-GUID: gzOoVJ3sZ_FngjGtqyeRG9BBLeyFSzLN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-17_06,2022-10-17_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 priorityscore=1501 mlxlogscore=999 suspectscore=0 clxscore=1015 mlxscore=0 spamscore=0 adultscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210170038 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221016_234650_330721_DD3033F7 X-CRM114-Status: GOOD ( 41.02 ) X-BeenThere: kexec@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "kexec" Errors-To: kexec-bounces+kexec=archiver.kernel.org@lists.infradead.org Ck9uIDA4LzEwLzIyIDAwOjQ0LCBFcmljIERlVm9sZGVyIHdyb3RlOgo+Cj4KPiBPbiAxMC8zLzIy IDEyOjUxLCBTb3VyYWJoIEphaW4gd3JvdGU6Cj4+IEhlbGxvIEVyaWMsCj4+Cj4+IE9uIDEwLzA5 LzIyIDAyOjM1LCBFcmljIERlVm9sZGVyIHdyb3RlOgo+Pj4gQ1BVIGFuZCBtZW1vcnkgY2hhbmdl IG5vdGlmaWNhdGlvbnMgYXJlIHJlY2VpdmVkIGluIG9yZGVyIHRvCj4+PiByZWdlbmVyYXRlIHRo ZSBlbGZjb3JlaGRyLgo+Pj4KPj4+IFRvIHN1cHBvcnQgY3B1IGhvdHBsdWcsIGEgY2FsbGJhY2sg aXMgcmVnaXN0ZXJlZCB0byBjYXB0dXJlIHRoZQo+Pj4gQ1BVSFBfQVBfT05MSU5FX0RZTiBvbmxp bmUgYW5kIG9mZmxpbmUgZXZlbnRzIHZpYQo+Pj4gY3B1aHBfc2V0dXBfc3RhdGVfbm9jYWxscygp Lgo+Pj4KPj4+IFRvIHN1cHBvcnQgbWVtb3J5IGhvdHBsdWcsIGEgbm90aWZpZXIgaXMgcmVnaXN0 ZXJlZCB0byBjYXB0dXJlIHRoZQo+Pj4gTUVNX09OTElORSBhbmQgTUVNX09GRkxJTkUgZXZlbnRz IHZpYSByZWdpc3Rlcl9tZW1vcnlfbm90aWZpZXIoKS4KPj4+Cj4+PiBUaGUgY3B1IGNhbGxiYWNr IGFuZCBtZW1vcnkgbm90aWZpZXJzIGNhbGwgaGFuZGxlX2hvdHBsdWdfZXZlbnQoKQo+Pj4gd2hp Y2ggcGVyZm9ybXMgbmVlZGVkIHRhc2tzIGFuZCB0aGVuIGRpc3BhdGNoZXMgdGhlIGV2ZW50IHRv IHRoZQo+Pj4gYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGFyY2hfY3Jhc2hfaGFuZGxlX2hvdHBsdWdf ZXZlbnQoKS4gRHVyaW5nIHRoZQo+Pj4gcHJvY2VzcywgdGhlIGtleGVjX211dGV4IGlzIGhlbGQu Cj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogRXJpYyBEZVZvbGRlciA8ZXJpYy5kZXZvbGRlckBvcmFj bGUuY29tPgo+Pj4gQWNrZWQtYnk6IEJhb3F1YW4gSGUgPGJoZUByZWRoYXQuY29tPgo+Pj4gLS0t Cj4+PiDCoCBpbmNsdWRlL2xpbnV4L2NyYXNoX2NvcmUuaCB8wqDCoCA4ICsrKwo+Pj4gwqAgaW5j bHVkZS9saW51eC9rZXhlYy5owqDCoMKgwqDCoCB8wqAgMjYgKysrKysrKwo+Pj4gwqAga2VybmVs L2NyYXNoX2NvcmUuY8KgwqDCoMKgwqDCoMKgIHwgMTM0IAo+Pj4gKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+Pj4gwqAgMyBmaWxlcyBjaGFuZ2VkLCAxNjggaW5zZXJ0aW9u cygrKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NyYXNoX2NvcmUuaCBiL2lu Y2x1ZGUvbGludXgvY3Jhc2hfY29yZS5oCj4+PiBpbmRleCBkZTYyYTcyMjQzMWUuLmEyNzBmODY2 MDUzOCAxMDA2NDQKPj4+IC0tLSBhL2luY2x1ZGUvbGludXgvY3Jhc2hfY29yZS5oCj4+PiArKysg Yi9pbmNsdWRlL2xpbnV4L2NyYXNoX2NvcmUuaAo+Pj4gQEAgLTg0LDQgKzg0LDEyIEBAIGludCBw YXJzZV9jcmFzaGtlcm5lbF9oaWdoKGNoYXIgKmNtZGxpbmUsIAo+Pj4gdW5zaWduZWQgbG9uZyBs b25nIHN5c3RlbV9yYW0sCj4+PiDCoCBpbnQgcGFyc2VfY3Jhc2hrZXJuZWxfbG93KGNoYXIgKmNt ZGxpbmUsIHVuc2lnbmVkIGxvbmcgbG9uZyAKPj4+IHN5c3RlbV9yYW0sCj4+PiDCoMKgwqDCoMKg wqDCoMKgwqAgdW5zaWduZWQgbG9uZyBsb25nICpjcmFzaF9zaXplLCB1bnNpZ25lZCBsb25nIGxv bmcgCj4+PiAqY3Jhc2hfYmFzZSk7Cj4+PiArI2RlZmluZSBLRVhFQ19DUkFTSF9IUF9SRU1PVkVf Q1BVwqDCoMKgwqDCoMKgwqAgMAo+Pj4gKyNkZWZpbmUgS0VYRUNfQ1JBU0hfSFBfQUREX0NQVcKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgMQo+Pj4gKyNkZWZpbmUgS0VYRUNfQ1JBU0hfSFBfUkVNT1ZF X01FTU9SWcKgwqDCoMKgwqDCoMKgIDIKPj4+ICsjZGVmaW5lIEtFWEVDX0NSQVNIX0hQX0FERF9N RU1PUlnCoMKgwqDCoMKgwqDCoCAzCj4+PiArI2RlZmluZSBLRVhFQ19DUkFTSF9IUF9JTlZBTElE X0NQVcKgwqDCoMKgwqDCoMKgIC0xVQo+Pj4gKwo+Pj4gK3N0cnVjdCBraW1hZ2U7Cj4+PiArCj4+ PiDCoCAjZW5kaWYgLyogTElOVVhfQ1JBU0hfQ09SRV9IICovCj4+PiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9saW51eC9rZXhlYy5oIGIvaW5jbHVkZS9saW51eC9rZXhlYy5oCj4+PiBpbmRleCA0ZWVm YTYzMWUwYWUuLjk1OTdiNDExMzZlYyAxMDA2NDQKPj4+IC0tLSBhL2luY2x1ZGUvbGludXgva2V4 ZWMuaAo+Pj4gKysrIGIvaW5jbHVkZS9saW51eC9rZXhlYy5oCj4+PiBAQCAtMzc0LDYgKzM3NCwx MyBAQCBzdHJ1Y3Qga2ltYWdlIHsKPj4+IMKgwqDCoMKgwqAgc3RydWN0IHB1cmdhdG9yeV9pbmZv IHB1cmdhdG9yeV9pbmZvOwo+Pj4gwqAgI2VuZGlmCj4+PiArI2lmIGRlZmluZWQoQ09ORklHX0hP VFBMVUdfQ1BVKSB8fCBkZWZpbmVkKENPTkZJR19NRU1PUllfSE9UUExVRykKPj4+ICvCoMKgwqAg Ym9vbCBob3RwbHVnX2V2ZW50Owo+Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgb2ZmbGluZWNwdTsK Pj4+ICvCoMKgwqAgYm9vbCBlbGZjb3JlaGRyX2luZGV4X3ZhbGlkOwo+Pj4gK8KgwqDCoCBpbnQg ZWxmY29yZWhkcl9pbmRleDsKPj4+ICsjZW5kaWYKPj4+ICsKPj4+IMKgICNpZmRlZiBDT05GSUdf SU1BX0tFWEVDCj4+PiDCoMKgwqDCoMKgIC8qIFZpcnR1YWwgYWRkcmVzcyBvZiBJTUEgbWVhc3Vy ZW1lbnQgYnVmZmVyIGZvciBrZXhlYyBzeXNjYWxsICovCj4+PiDCoMKgwqDCoMKgIHZvaWQgKmlt YV9idWZmZXI7Cj4+PiBAQCAtNTAzLDYgKzUxMCwyNSBAQCBzdGF0aWMgaW5saW5lIGludCAKPj4+ IGFyY2hfa2V4ZWNfcG9zdF9hbGxvY19wYWdlcyh2b2lkICp2YWRkciwgdW5zaWduZWQgaW50IHBh Z2VzLCBnCj4+PiDCoCBzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9rZXhlY19wcmVfZnJlZV9wYWdl cyh2b2lkICp2YWRkciwgdW5zaWduZWQgCj4+PiBpbnQgcGFnZXMpIHsgfQo+Pj4gwqAgI2VuZGlm Cj4+PiArI2lmbmRlZiBhcmNoX21hcF9jcmFzaF9wYWdlcwo+Pj4gK3N0YXRpYyBpbmxpbmUgdm9p ZCAqYXJjaF9tYXBfY3Jhc2hfcGFnZXModW5zaWduZWQgbG9uZyBwYWRkciwKPj4+ICvCoMKgwqDC oMKgwqDCoCB1bnNpZ25lZCBsb25nIHNpemUpCj4+PiArewo+Pj4gK8KgwqDCoCByZXR1cm4gTlVM TDsKPj4+ICt9Cj4+PiArI2VuZGlmCj4+PiArCj4+PiArI2lmbmRlZiBhcmNoX3VubWFwX2NyYXNo X3BhZ2VzCj4+PiArc3RhdGljIGlubGluZSB2b2lkIGFyY2hfdW5tYXBfY3Jhc2hfcGFnZXModm9p ZCAqKnB0cikgeyB9Cj4+PiArI2VuZGlmCj4+PiArCj4+PiArI2lmbmRlZiBhcmNoX2NyYXNoX2hh bmRsZV9ob3RwbHVnX2V2ZW50Cj4+PiArc3RhdGljIGlubGluZSB2b2lkIGFyY2hfY3Jhc2hfaGFu ZGxlX2hvdHBsdWdfZXZlbnQoc3RydWN0IGtpbWFnZSAKPj4+ICppbWFnZSwKPj4+ICvCoMKgwqDC oMKgwqDCoCB1bnNpZ25lZCBpbnQgaHBfYWN0aW9uKQo+Pj4gK3sKPj4+ICt9Cj4+PiArI2VuZGlm Cj4+PiArCj4+PiDCoCAjZWxzZSAvKiAhQ09ORklHX0tFWEVDX0NPUkUgKi8KPj4+IMKgIHN0cnVj dCBwdF9yZWdzOwo+Pj4gwqAgc3RydWN0IHRhc2tfc3RydWN0Owo+Pj4gZGlmZiAtLWdpdCBhL2tl cm5lbC9jcmFzaF9jb3JlLmMgYi9rZXJuZWwvY3Jhc2hfY29yZS5jCj4+PiBpbmRleCA4YzY0OGZk NTg5N2EuLjRiMTVkOTFmMGIyMSAxMDA2NDQKPj4+IC0tLSBhL2tlcm5lbC9jcmFzaF9jb3JlLmMK Pj4+ICsrKyBiL2tlcm5lbC9jcmFzaF9jb3JlLmMKPj4+IEBAIC0xMSw2ICsxMSw4IEBACj4+PiDC oCAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgo+Pj4gwqAgI2luY2x1ZGUgPGxpbnV4L3NpemVz Lmg+Cj4+PiDCoCAjaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KPj4+ICsjaW5jbHVkZSA8bGludXgv bWVtb3J5Lmg+Cj4+PiArI2luY2x1ZGUgPGxpbnV4L2NwdWhvdHBsdWcuaD4KPj4+IMKgICNpbmNs dWRlIDxhc20vcGFnZS5oPgo+Pj4gwqAgI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgo+Pj4gQEAg LTE4LDYgKzIwLDcgQEAKPj4+IMKgICNpbmNsdWRlIDxjcnlwdG8vc2hhMS5oPgo+Pj4gwqAgI2lu Y2x1ZGUgImthbGxzeW1zX2ludGVybmFsLmgiCj4+PiArI2luY2x1ZGUgImtleGVjX2ludGVybmFs LmgiCj4+PiDCoCAvKiB2bWNvcmVpbmZvIHN0dWZmICovCj4+PiDCoCB1bnNpZ25lZCBjaGFyICp2 bWNvcmVpbmZvX2RhdGE7Cj4+PiBAQCAtNjEyLDMgKzYxNSwxMzQgQEAgc3RhdGljIGludCBfX2lu aXQgCj4+PiBjcmFzaF9zYXZlX3ZtY29yZWluZm9faW5pdCh2b2lkKQo+Pj4gwqAgfQo+Pj4gwqAg c3Vic3lzX2luaXRjYWxsKGNyYXNoX3NhdmVfdm1jb3JlaW5mb19pbml0KTsKPj4+ICsKPj4+ICsj aWYgZGVmaW5lZChDT05GSUdfSE9UUExVR19DUFUpIHx8IGRlZmluZWQoQ09ORklHX01FTU9SWV9I T1RQTFVHKQo+Pj4gKy8qCj4+PiArICogVG8gYWNjdXJhdGVseSByZWZsZWN0IGhvdCB1bi9wbHVn IGNoYW5nZXMsIHRoZSBlbGZjb3JlaGRyICh3aGljaAo+Pj4gKyAqIGlzIHBhc3NlZCB0byB0aGUg Y3Jhc2gga2VybmVsIHZpYSB0aGUgZWxmY29yZWhkcj0gcGFyYW1ldGVyKQo+Pj4gKyAqIG11c3Qg YmUgdXBkYXRlZCB3aXRoIHRoZSBuZXcgbGlzdCBvZiBDUFVzIGFuZCBtZW1vcmllcy4KPj4+ICsg Kgo+Pj4gKyAqIEluIG9yZGVyIHRvIG1ha2UgY2hhbmdlcyB0byBlbGZjb3JlaGRyLCB0d28gY29u ZGl0aW9ucyBhcmUgbmVlZGVkOgo+Pj4gKyAqIEZpcnN0LCB0aGUgc2VnbWVudCBjb250YWluaW5n IHRoZSBlbGZjb3JlaGRyIG11c3QgYmUgbGFyZ2UgZW5vdWdoCj4+PiArICogdG8gcGVybWl0IGEg Z3Jvd2luZyBudW1iZXIgb2YgcmVzb3VyY2VzLiBUaGUgZWxmY29yZWhkciBtZW1vcnkgaXMKPj4+ ICsgKiB0eXBpY2FsbHkgYmFzZWQgb24gQ09ORklHX05SX0NQVVMgYW5kIAo+Pj4gQ09ORklHX0NS QVNIX01BWF9NRU1PUllfUkFOR0VTLgo+Pj4gKyAqIFNlY29uZCwgcHVyZ2F0b3J5IG11c3QgZXhw bGljaXRseSBleGNsdWRlIHRoZSBlbGZjb3JlaGRyIGZyb20gdGhlCj4+PiArICogbGlzdCBvZiBz ZWdtZW50cyBpdCBjaGVja3MgKHNpbmNlIHRoZSBlbGZjb3JlaGRyIGNoYW5nZXMgYW5kIHRodXMK Pj4+ICsgKiB3b3VsZCByZXF1aXJlIGFuIHVwZGF0ZSB0byBwdXJnYXRvcnkgaXRzZWxmIHRvIHVw ZGF0ZSB0aGUgZGlnZXN0KS4KPj4+ICsgKi8KPj4+ICtzdGF0aWMgdm9pZCBoYW5kbGVfaG90cGx1 Z19ldmVudCh1bnNpZ25lZCBpbnQgaHBfYWN0aW9uLCB1bnNpZ25lZCAKPj4+IGludCBjcHUpCj4+ PiArewo+Pj4gK8KgwqDCoCAvKiBPYnRhaW4gbG9jayB3aGlsZSBjaGFuZ2luZyBjcmFzaCBpbmZv cm1hdGlvbiAqLwo+Pj4gK8KgwqDCoCBtdXRleF9sb2NrKCZrZXhlY19tdXRleCk7Cj4+PiArCj4+ PiArwqDCoMKgIC8qIENoZWNrIGtkdW1wIGlzIGxvYWRlZCAqLwo+Pj4gK8KgwqDCoCBpZiAoa2V4 ZWNfY3Jhc2hfaW1hZ2UpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qga2ltYWdlICppbWFn ZSA9IGtleGVjX2NyYXNoX2ltYWdlOwo+Pj4gKwo+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIChocF9h Y3Rpb24gPT0gS0VYRUNfQ1JBU0hfSFBfQUREX0NQVSB8fAo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaHBfYWN0aW9uID09IEtFWEVDX0NSQVNIX0hQX1JFTU9WRV9DUFUpCj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBwcl9kZWJ1ZygiY3Jhc2ggaHA6IGhwX2FjdGlvbiAldSwgY3B1ICV1 XG4iLCBocF9hY3Rpb24sIAo+Pj4gY3B1KTsKPj4+ICvCoMKgwqDCoMKgwqDCoCBlbHNlCj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcl9kZWJ1ZygiY3Jhc2ggaHA6IGhwX2FjdGlvbiAldVxu IiwgaHBfYWN0aW9uKTsKPj4+ICsKPj4+ICvCoMKgwqDCoMKgwqDCoCAvKgo+Pj4gK8KgwqDCoMKg wqDCoMKgwqAgKiBXaGVuIHRoZSBzdHJ1Y3Qga2ltYWdlIGlzIGFsbG9jYXRlZCwgaXQgaXMgd2lw ZWQgdG8gCj4+PiB6ZXJvLCBzbwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqAgKiB0aGUgZWxmY29yZWhk cl9pbmRleF92YWxpZCBkZWZhdWx0cyB0byBmYWxzZS4gRmluZCB0aGUKPj4+ICvCoMKgwqDCoMKg wqDCoMKgICogc2VnbWVudCBjb250YWluaW5nIHRoZSBlbGZjb3JlaGRyLCBpZiBub3QgYWxyZWFk eSBmb3VuZC4KPj4+ICvCoMKgwqDCoMKgwqDCoMKgICogVGhpcyB3b3JrcyBmb3IgYm90aCB0aGUg a2V4ZWNfbG9hZCBhbmQga2V4ZWNfZmlsZV9sb2FkIAo+Pj4gcGF0aHMuCj4+PiArwqDCoMKgwqDC oMKgwqDCoCAqLwo+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICghaW1hZ2UtPmVsZmNvcmVoZHJfaW5k ZXhfdmFsaWQpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGNoYXIgKnB0 cjsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgbWVtLCBtZW1zejsK Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBuOwo+Pj4gKwo+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgZm9yIChuID0gMDsgbiA8IGltYWdlLT5ucl9zZWdtZW50czsg bisrKSB7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1lbSA9IGltYWdlLT5z ZWdtZW50W25dLm1lbTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWVtc3og PSBpbWFnZS0+c2VnbWVudFtuXS5tZW1zejsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgcHRyID0gYXJjaF9tYXBfY3Jhc2hfcGFnZXMobWVtLCBtZW1zeik7Cj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChwdHIpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBUaGUgc2VnbWVudCBjb250YWluaW5nIGVsZmNvcmVo ZHIgKi8KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAobWVt Y21wKHB0ciwgRUxGTUFHLCBTRUxGTUFHKSA9PSAwKSB7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbWFnZS0+ZWxmY29yZWhkcl9pbmRleCA9IChp bnQpbjsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGltYWdlLT5lbGZjb3JlaGRyX2luZGV4X3ZhbGlkID0gdHJ1ZTsKPj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIH0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXJjaF91bm1hcF9j cmFzaF9wYWdlcygodm9pZCAqKikmcHRyKTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0K Pj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+PiArCj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCFpbWFn ZS0+ZWxmY29yZWhkcl9pbmRleF92YWxpZCkgewo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cHJfZXJyKCJjcmFzaCBocDogdW5hYmxlIHRvIGxvY2F0ZSBlbGZjb3JlaGRyIHNlZ21lbnQiKTsK Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gb3V0Owo+Pj4gK8KgwqDCoMKgwqDCoMKg IH0KPj4+ICsKPj4+ICvCoMKgwqDCoMKgwqDCoCAvKiBOZWVkZWQgaW4gb3JkZXIgZm9yIHRoZSBz ZWdtZW50cyB0byBiZSB1cGRhdGVkICovCj4+PiArwqDCoMKgwqDCoMKgwqAgYXJjaF9rZXhlY191 bnByb3RlY3RfY3Jhc2hrcmVzKCk7Cj4+PiArCj4+PiArwqDCoMKgwqDCoMKgwqAgLyogRmxhZyB0 byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gbm9ybWFsIGxvYWQgYW5kIGhvdHBsdWcgKi8KPj4+ICvC oMKgwqDCoMKgwqDCoCBpbWFnZS0+aG90cGx1Z19ldmVudCA9IHRydWU7Cj4+PiArCj4+PiArwqDC oMKgwqDCoMKgwqAgLyogTm93IGludm9rZSBhcmNoLXNwZWNpZmljIHVwZGF0ZSBoYW5kbGVyICov Cj4+PiArwqDCoMKgwqDCoMKgwqAgYXJjaF9jcmFzaF9oYW5kbGVfaG90cGx1Z19ldmVudChpbWFn ZSwgaHBfYWN0aW9uKTsKPj4+ICsKPj4+ICvCoMKgwqDCoMKgwqDCoCAvKiBObyBsb25nZXIgaGFu ZGxpbmcgYSBob3RwbHVnIGV2ZW50ICovCj4+PiArwqDCoMKgwqDCoMKgwqAgaW1hZ2UtPmhvdHBs dWdfZXZlbnQgPSBmYWxzZTsKPj4+ICsKPj4+ICvCoMKgwqDCoMKgwqDCoCAvKiBDaGFuZ2UgYmFj ayB0byByZWFkLW9ubHkgKi8KPj4+ICvCoMKgwqDCoMKgwqDCoCBhcmNoX2tleGVjX3Byb3RlY3Rf Y3Jhc2hrcmVzKCk7Cj4+PiArwqDCoMKgIH0KPj4+ICsKPj4+ICtvdXQ6Cj4+PiArwqDCoMKgIC8q IFJlbGVhc2UgbG9jayBub3cgdGhhdCB1cGRhdGUgY29tcGxldGUgKi8KPj4+ICvCoMKgwqAgbXV0 ZXhfdW5sb2NrKCZrZXhlY19tdXRleCk7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQgY3Jh c2hfbWVtaHBfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgCj4+ PiBsb25nIHZhbCwgdm9pZCAqdikKPj4+ICt7Cj4+PiArwqDCoMKgIHN3aXRjaCAodmFsKSB7Cj4+ PiArwqDCoMKgIGNhc2UgTUVNX09OTElORToKPj4+ICvCoMKgwqDCoMKgwqDCoCBoYW5kbGVfaG90 cGx1Z19ldmVudChLRVhFQ19DUkFTSF9IUF9BRERfTUVNT1JZLCAwKTsKPj4+ICvCoMKgwqDCoMKg wqDCoCBicmVhazsKPj4+ICsKPj4+ICvCoMKgwqAgY2FzZSBNRU1fT0ZGTElORToKPj4+ICvCoMKg wqDCoMKgwqDCoCBoYW5kbGVfaG90cGx1Z19ldmVudChLRVhFQ19DUkFTSF9IUF9SRU1PVkVfTUVN T1JZLCAwKTsKPj4+ICvCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4+ICvCoMKgwqAgfQo+Pj4gK8Kg wqDCoCByZXR1cm4gTk9USUZZX09LOwo+Pgo+PiBDYW4gd2UgcGFzcyB2IChtZW1vcnlfbm90aWZ5 KSBhcmd1bWVudCB0byAKPj4gYXJjaF9jcmFzaF9oYW5kbGVfaG90cGx1Z19ldmVudCBmdW5jdGlv bgo+PiB2aWEgaGFuZGxlX2hvdHBsdWdfZXZlbnQ/Cj4+Cj4+IEJlY2F1c2UgdGhlIHdheSBtZW1v cnkgaG90cGx1ZyBpcyBoYW5kbGVkIG9uIFBvd2VyUEMsIGl0IGlzIGhhcmQgdG8gCj4+IHVwZGF0 ZSB0aGUgZWxmY29yZWhkcgo+PiB3aXRob3V0IG1lbW9yeV9ub3RpZnkgYXJncy4KPj4KPj4gT24g UG93ZVBDIG1lbWJsb2NrIGRhdGEgc3RydWN0dXJlIGlzIHVzZWQgdG8gcHJlcGFyZSBlbGZjb3Jl aGRyIGZvciAKPj4ga2R1bXAuIFNpbmNlIHRoZSBub3RpZmllcgo+PiB1c2VkIGZvciBtZW1vcnkg aG90cGx1ZyBjcmFzaCBoYW5kbGVyIGdldCBpbml0aWF0ZWQgYmVmb3JlIHRoZSAKPj4gbWVtYmxv Y2sgZGF0YSBzdHJ1Y3R1cmUgdXBkYXRlCj4+IGhhcHBlbnMgKGFzIGRlcGljdGVkIGJlbG93KSwg dGhlIG5ld2x5IHByZXBhcmVkIGVsZmNvcmVoZHIgc3RpbGwgCj4+IGhvbGRzIHRoZSBvbGQgbWVt b3J5IHJlZ2lvbnMuCj4+IFNvIGlmIHRoZSBzeXN0ZW0gY3Jhc2ggd2l0aCBvYnNvbGV0ZSBlbGZj b3JlaGRyLCBtYWtlZHVtcGZpbGUgZmFpbGVkIAo+PiB0byBjb2xsZWN0IHZtY29yZS4KPj4KPj4g U2VxdWVuY2Ugb2YgYWN0aW9ucyBkb25lIG9uIFBvd2VyUEMgdG8gc2VydmVyIHRoZSBtZW1vcnkg aG90cGx1ZzoKPj4KPj4gwqDCoEluaXRpYXRlIG1lbW9yeSBob3QgcmVtb3ZlCj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgIHwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgdgo+PiDCoMKgb2ZmbGluZSBw YWdlcwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHYK Pj4gwqDCoGluaXRpYXRlIG1lbW9yeSBub3RpZnkgY2FsbCBjaGFpbgo+PiDCoMKgZm9yIE1FTV9P RkZMSU5FIGV2ZW50Lgo+PiDCoMKgKHNhbWUgaXMgdXNlZCBmb3IgY3Jhc2ggdXBkYXRlKQo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoCB8Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHYKPj4gwqDCoHBy ZXBhcmUgbmV3IGVsZmNvcmVoZHIgZm9yIGtkdW1wIHVzaW5nCj4+IMKgwqBtZW1ibG9jayBkYXRh IHN0cnVjdHVyZQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8Cj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgIHYKPj4gwqDCoHVwZGF0ZSBtZW1ibG9jayBkYXRhIHN0cnVjdHVyZQo+Pgo+PiBIb3cgcGFz c2luZyBtZW1vcnlfbm90aWZ5IHRvIGFyY2ggY3Jhc2ggaG90cGx1ZyBoYW5kbGVyIHdpbGwgaGVs cD8KPj4KPj4gbWVtb3J5X25vdGlmeSBob2xkcyB0aGUgc3RhcnQgUEZOIGFuZCBwYWdlIGNvdW50 LCB3aXRoIHRoYXQgd2UgY2FuIGdldAo+PiB0aGUgYmFzZSBhZGRyZXNzIGFuZCBzaXplIG9mIGhv dCB1bnBsdWdnZWQgbWVtb3J5IGFuZCBjYW4gdXNlIHRoZSBzYW1lCj4+IHRvIGF2b2lkIGhvdCB1 bnBsdWdnZWQgbWVtZW9yeSByZWdpb24gdG8gZ2V0IGFkZGVkIGluIHRoZSBlbGZjb3JlaGRyLi4K Pj4KPj4gVGhhbmtzLAo+PiBTb3VyYWJoIEphaW4KPj4KPgo+IFNvdXJhYmgsIGxldCdzIHNlZSB3 aGF0IEJhb3F1YW4gdGhpbmtzLgo+Cj4gQmFvcXVhbiwgYXJlIHlvdSBPSyB3aXRoIHRoaXMgcmVx dWVzdD8gSSBvbmNlIGhhZCB0aGVzZSBwYXJhbWV0ZXJzIHRvIHRoZQo+IGNyYXNoIGhvdHBsdWcg aGFuZGxlciBhbmQgc2luY2UgdGhleSB3ZXJlIHVudXNlZCBhdCB0aGUgdGltZSwgeW91IGFza2Vk Cj4gdGhhdCBJIHJlbW92ZSB0aGVtLCB3aGljaCBJIGRpZC4KPgo+IFRvIGFjY29tbW9kYXRlIHRo aXMsIGhvdyBhYm91dCB0aGlzOgo+Cj4gc3RhdGljIHZvaWQgaGFuZGxlX2hvdHBsdWdfZXZlbnQo dW5zaWduZWQgaW50IGhwX2FjdGlvbiwgdW5zaWduZWQgaW50IAo+IGNwdSwKPiDCoMKgwqDCoCB1 bnNpZ25lZCBsb25nIG1lbV9zdGFydCwgdW5zaWduZWQgbG9uZyBtZW1fc2l6ZSkKPgo+IEZvciBD UFUgZXZlbnRzLCBJIHdvdWxkIGp1c3QgcGFzcyB6ZXJvcyBmb3IgbWVtX3N0YXJ0L3NpemUuIEZv ciBtZW1vcnkgCj4gZXZlbnRzLAo+IEkgd291bGQgcGFzcyBLRVhFQ19DUkFTSF9IUF9JTlZBTElE X0NQVS4KCkhvdyBhYm91dCBwYXNzaW5nIG1lbW9yeV9ub3RpZnkgc3RydWN0IGFzIGlzIGFuZCBs ZXQgYXJjaGl0ZWN0dXJlIGhhbmRsZSAKdGhlIHJlc3Q/CgpUaGFua3MsClNvdXJhYmggSmFpbgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Ka2V4ZWMgbWFp bGluZyBsaXN0CmtleGVjQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9rZXhlYwo= 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 85B8FC433FE for ; Mon, 17 Oct 2022 06:47:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229783AbiJQGq6 (ORCPT ); Mon, 17 Oct 2022 02:46:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41558 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229681AbiJQGq4 (ORCPT ); Mon, 17 Oct 2022 02:46:56 -0400 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A83EA543D8 for ; Sun, 16 Oct 2022 23:46:54 -0700 (PDT) Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29H5vtvf030516; Mon, 17 Oct 2022 06:46:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=Ueyo4i0t7NB7EKyXOPdWLOfDpPTnIZoO0Pi9reWnp9E=; b=X+MZF0z5ZbrPjQNxitJjQOK+ImZrgMmx/jyLYHLjhLNRW65ocmekvt4SBxD64J1Gm1i3 UAO9K44Cpt+p5fJ96jTqEZiWdXUYOiDjAHgdgqeWWX606cz+eriYCZqAy/orqVoRYObm s9/FK4ZAuJd0YqBcgPD/Vu+QIw3KNmD1vyGr3ezf4o4zqqkgOdxSUbj4MxhkkNKZNkHT V6GJ2dIB8Gr/9SXoiOjH3qriyYQuq0kdOf4kKhoBPgMFuU6cwvdQOtAimzS6JScez6eM Db14AzYTqxwXAqwT9LqvX8hjrzCzpR8WFvJMGlXaVmepZRtX5/JEnkKkqEYjKNp4bySu Pg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3k86nte2cf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 17 Oct 2022 06:46:18 +0000 Received: from m0098410.ppops.net (m0098410.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 29H653t6018998; Mon, 17 Oct 2022 06:46:17 GMT Received: from ppma04ams.nl.ibm.com (63.31.33a9.ip4.static.sl-reverse.com [169.51.49.99]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3k86nte2b9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 17 Oct 2022 06:46:17 +0000 Received: from pps.filterd (ppma04ams.nl.ibm.com [127.0.0.1]) by ppma04ams.nl.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 29H6bsGr028652; Mon, 17 Oct 2022 06:46:14 GMT Received: from b06avi18626390.portsmouth.uk.ibm.com (b06avi18626390.portsmouth.uk.ibm.com [9.149.26.192]) by ppma04ams.nl.ibm.com with ESMTP id 3k7mg92ewu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 17 Oct 2022 06:46:14 +0000 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06avi18626390.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 29H6fHY350725352 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 17 Oct 2022 06:41:17 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 95B49A4051; Mon, 17 Oct 2022 06:46:12 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 93A1AA4040; Mon, 17 Oct 2022 06:46:07 +0000 (GMT) Received: from [9.43.94.119] (unknown [9.43.94.119]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTP; Mon, 17 Oct 2022 06:46:07 +0000 (GMT) Message-ID: <13709fd8-400e-da70-42b5-21cd3b850fbc@linux.ibm.com> Date: Mon, 17 Oct 2022 12:15:35 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 Subject: Re: [PATCH v12 3/7] crash: add generic infrastructure for crash hotplug support Content-Language: en-US To: Eric DeVolder , linux-kernel@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, ebiederm@xmission.com, dyoung@redhat.com, bhe@redhat.com, vgoyal@redhat.com Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, nramas@linux.microsoft.com, thomas.lendacky@amd.com, robh@kernel.org, efault@gmx.de, rppt@kernel.org, david@redhat.com, konrad.wilk@oracle.com, boris.ostrovsky@oracle.com References: <20220909210509.6286-1-eric.devolder@oracle.com> <20220909210509.6286-4-eric.devolder@oracle.com> <8cc31b22-a061-d07c-77dc-c555b8b35af3@linux.ibm.com> <97f2daae-f34a-86bb-6d28-8aa8314321bc@oracle.com> From: Sourabh Jain In-Reply-To: <97f2daae-f34a-86bb-6d28-8aa8314321bc@oracle.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: atVTK50R26ECHjUSWqOA7fToCubFAQTv X-Proofpoint-GUID: gzOoVJ3sZ_FngjGtqyeRG9BBLeyFSzLN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-17_06,2022-10-17_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 priorityscore=1501 mlxlogscore=999 suspectscore=0 clxscore=1015 mlxscore=0 spamscore=0 adultscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210170038 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/10/22 00:44, Eric DeVolder wrote: > > > On 10/3/22 12:51, Sourabh Jain wrote: >> Hello Eric, >> >> On 10/09/22 02:35, Eric DeVolder wrote: >>> CPU and memory change notifications are received in order to >>> regenerate the elfcorehdr. >>> >>> To support cpu hotplug, a callback is registered to capture the >>> CPUHP_AP_ONLINE_DYN online and offline events via >>> cpuhp_setup_state_nocalls(). >>> >>> To support memory hotplug, a notifier is registered to capture the >>> MEM_ONLINE and MEM_OFFLINE events via register_memory_notifier(). >>> >>> The cpu callback and memory notifiers call handle_hotplug_event() >>> which performs needed tasks and then dispatches the event to the >>> architecture specific arch_crash_handle_hotplug_event(). During the >>> process, the kexec_mutex is held. >>> >>> Signed-off-by: Eric DeVolder >>> Acked-by: Baoquan He >>> --- >>>   include/linux/crash_core.h |   8 +++ >>>   include/linux/kexec.h      |  26 +++++++ >>>   kernel/crash_core.c        | 134 >>> +++++++++++++++++++++++++++++++++++++ >>>   3 files changed, 168 insertions(+) >>> >>> diff --git a/include/linux/crash_core.h b/include/linux/crash_core.h >>> index de62a722431e..a270f8660538 100644 >>> --- a/include/linux/crash_core.h >>> +++ b/include/linux/crash_core.h >>> @@ -84,4 +84,12 @@ int parse_crashkernel_high(char *cmdline, >>> unsigned long long system_ram, >>>   int parse_crashkernel_low(char *cmdline, unsigned long long >>> system_ram, >>>           unsigned long long *crash_size, unsigned long long >>> *crash_base); >>> +#define KEXEC_CRASH_HP_REMOVE_CPU        0 >>> +#define KEXEC_CRASH_HP_ADD_CPU            1 >>> +#define KEXEC_CRASH_HP_REMOVE_MEMORY        2 >>> +#define KEXEC_CRASH_HP_ADD_MEMORY        3 >>> +#define KEXEC_CRASH_HP_INVALID_CPU        -1U >>> + >>> +struct kimage; >>> + >>>   #endif /* LINUX_CRASH_CORE_H */ >>> diff --git a/include/linux/kexec.h b/include/linux/kexec.h >>> index 4eefa631e0ae..9597b41136ec 100644 >>> --- a/include/linux/kexec.h >>> +++ b/include/linux/kexec.h >>> @@ -374,6 +374,13 @@ struct kimage { >>>       struct purgatory_info purgatory_info; >>>   #endif >>> +#if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_MEMORY_HOTPLUG) >>> +    bool hotplug_event; >>> +    unsigned int offlinecpu; >>> +    bool elfcorehdr_index_valid; >>> +    int elfcorehdr_index; >>> +#endif >>> + >>>   #ifdef CONFIG_IMA_KEXEC >>>       /* Virtual address of IMA measurement buffer for kexec syscall */ >>>       void *ima_buffer; >>> @@ -503,6 +510,25 @@ static inline int >>> arch_kexec_post_alloc_pages(void *vaddr, unsigned int pages, g >>>   static inline void arch_kexec_pre_free_pages(void *vaddr, unsigned >>> int pages) { } >>>   #endif >>> +#ifndef arch_map_crash_pages >>> +static inline void *arch_map_crash_pages(unsigned long paddr, >>> +        unsigned long size) >>> +{ >>> +    return NULL; >>> +} >>> +#endif >>> + >>> +#ifndef arch_unmap_crash_pages >>> +static inline void arch_unmap_crash_pages(void **ptr) { } >>> +#endif >>> + >>> +#ifndef arch_crash_handle_hotplug_event >>> +static inline void arch_crash_handle_hotplug_event(struct kimage >>> *image, >>> +        unsigned int hp_action) >>> +{ >>> +} >>> +#endif >>> + >>>   #else /* !CONFIG_KEXEC_CORE */ >>>   struct pt_regs; >>>   struct task_struct; >>> diff --git a/kernel/crash_core.c b/kernel/crash_core.c >>> index 8c648fd5897a..4b15d91f0b21 100644 >>> --- a/kernel/crash_core.c >>> +++ b/kernel/crash_core.c >>> @@ -11,6 +11,8 @@ >>>   #include >>>   #include >>>   #include >>> +#include >>> +#include >>>   #include >>>   #include >>> @@ -18,6 +20,7 @@ >>>   #include >>>   #include "kallsyms_internal.h" >>> +#include "kexec_internal.h" >>>   /* vmcoreinfo stuff */ >>>   unsigned char *vmcoreinfo_data; >>> @@ -612,3 +615,134 @@ static int __init >>> crash_save_vmcoreinfo_init(void) >>>   } >>>   subsys_initcall(crash_save_vmcoreinfo_init); >>> + >>> +#if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_MEMORY_HOTPLUG) >>> +/* >>> + * To accurately reflect hot un/plug changes, the elfcorehdr (which >>> + * is passed to the crash kernel via the elfcorehdr= parameter) >>> + * must be updated with the new list of CPUs and memories. >>> + * >>> + * In order to make changes to elfcorehdr, two conditions are needed: >>> + * First, the segment containing the elfcorehdr must be large enough >>> + * to permit a growing number of resources. The elfcorehdr memory is >>> + * typically based on CONFIG_NR_CPUS and >>> CONFIG_CRASH_MAX_MEMORY_RANGES. >>> + * Second, purgatory must explicitly exclude the elfcorehdr from the >>> + * list of segments it checks (since the elfcorehdr changes and thus >>> + * would require an update to purgatory itself to update the digest). >>> + */ >>> +static void handle_hotplug_event(unsigned int hp_action, unsigned >>> int cpu) >>> +{ >>> +    /* Obtain lock while changing crash information */ >>> +    mutex_lock(&kexec_mutex); >>> + >>> +    /* Check kdump is loaded */ >>> +    if (kexec_crash_image) { >>> +        struct kimage *image = kexec_crash_image; >>> + >>> +        if (hp_action == KEXEC_CRASH_HP_ADD_CPU || >>> +            hp_action == KEXEC_CRASH_HP_REMOVE_CPU) >>> +            pr_debug("crash hp: hp_action %u, cpu %u\n", hp_action, >>> cpu); >>> +        else >>> +            pr_debug("crash hp: hp_action %u\n", hp_action); >>> + >>> +        /* >>> +         * When the struct kimage is allocated, it is wiped to >>> zero, so >>> +         * the elfcorehdr_index_valid defaults to false. Find the >>> +         * segment containing the elfcorehdr, if not already found. >>> +         * This works for both the kexec_load and kexec_file_load >>> paths. >>> +         */ >>> +        if (!image->elfcorehdr_index_valid) { >>> +            unsigned char *ptr; >>> +            unsigned long mem, memsz; >>> +            unsigned int n; >>> + >>> +            for (n = 0; n < image->nr_segments; n++) { >>> +                mem = image->segment[n].mem; >>> +                memsz = image->segment[n].memsz; >>> +                ptr = arch_map_crash_pages(mem, memsz); >>> +                if (ptr) { >>> +                    /* The segment containing elfcorehdr */ >>> +                    if (memcmp(ptr, ELFMAG, SELFMAG) == 0) { >>> +                        image->elfcorehdr_index = (int)n; >>> +                        image->elfcorehdr_index_valid = true; >>> +                    } >>> +                } >>> +                arch_unmap_crash_pages((void **)&ptr); >>> +            } >>> +        } >>> + >>> +        if (!image->elfcorehdr_index_valid) { >>> +            pr_err("crash hp: unable to locate elfcorehdr segment"); >>> +            goto out; >>> +        } >>> + >>> +        /* Needed in order for the segments to be updated */ >>> +        arch_kexec_unprotect_crashkres(); >>> + >>> +        /* Flag to differentiate between normal load and hotplug */ >>> +        image->hotplug_event = true; >>> + >>> +        /* Now invoke arch-specific update handler */ >>> +        arch_crash_handle_hotplug_event(image, hp_action); >>> + >>> +        /* No longer handling a hotplug event */ >>> +        image->hotplug_event = false; >>> + >>> +        /* Change back to read-only */ >>> +        arch_kexec_protect_crashkres(); >>> +    } >>> + >>> +out: >>> +    /* Release lock now that update complete */ >>> +    mutex_unlock(&kexec_mutex); >>> +} >>> + >>> +static int crash_memhp_notifier(struct notifier_block *nb, unsigned >>> long val, void *v) >>> +{ >>> +    switch (val) { >>> +    case MEM_ONLINE: >>> +        handle_hotplug_event(KEXEC_CRASH_HP_ADD_MEMORY, 0); >>> +        break; >>> + >>> +    case MEM_OFFLINE: >>> +        handle_hotplug_event(KEXEC_CRASH_HP_REMOVE_MEMORY, 0); >>> +        break; >>> +    } >>> +    return NOTIFY_OK; >> >> Can we pass v (memory_notify) argument to >> arch_crash_handle_hotplug_event function >> via handle_hotplug_event? >> >> Because the way memory hotplug is handled on PowerPC, it is hard to >> update the elfcorehdr >> without memory_notify args. >> >> On PowePC memblock data structure is used to prepare elfcorehdr for >> kdump. Since the notifier >> used for memory hotplug crash handler get initiated before the >> memblock data structure update >> happens (as depicted below), the newly prepared elfcorehdr still >> holds the old memory regions. >> So if the system crash with obsolete elfcorehdr, makedumpfile failed >> to collect vmcore. >> >> Sequence of actions done on PowerPC to server the memory hotplug: >> >>   Initiate memory hot remove >>            | >>            v >>   offline pages >>            | >>            v >>   initiate memory notify call chain >>   for MEM_OFFLINE event. >>   (same is used for crash update) >>            | >>            v >>   prepare new elfcorehdr for kdump using >>   memblock data structure >>            | >>            v >>   update memblock data structure >> >> How passing memory_notify to arch crash hotplug handler will help? >> >> memory_notify holds the start PFN and page count, with that we can get >> the base address and size of hot unplugged memory and can use the same >> to avoid hot unplugged memeory region to get added in the elfcorehdr.. >> >> Thanks, >> Sourabh Jain >> > > Sourabh, let's see what Baoquan thinks. > > Baoquan, are you OK with this request? I once had these parameters to the > crash hotplug handler and since they were unused at the time, you asked > that I remove them, which I did. > > To accommodate this, how about this: > > static void handle_hotplug_event(unsigned int hp_action, unsigned int > cpu, >      unsigned long mem_start, unsigned long mem_size) > > For CPU events, I would just pass zeros for mem_start/size. For memory > events, > I would pass KEXEC_CRASH_HP_INVALID_CPU. How about passing memory_notify struct as is and let architecture handle the rest? Thanks, Sourabh Jain