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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 72AD5C433EF for ; Wed, 16 Feb 2022 08:48:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CA2E86B007B; Wed, 16 Feb 2022 03:48:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C50EC6B007D; Wed, 16 Feb 2022 03:48:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B19876B007E; Wed, 16 Feb 2022 03:48:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0045.hostedemail.com [216.40.44.45]) by kanga.kvack.org (Postfix) with ESMTP id 9F22C6B007B for ; Wed, 16 Feb 2022 03:48:30 -0500 (EST) Received: from smtpin15.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 6044E8B758 for ; Wed, 16 Feb 2022 08:48:30 +0000 (UTC) X-FDA: 79148016780.15.B45A811 Received: from spam.unicloud.com (gw.haihefund.cn [220.194.70.58]) by imf15.hostedemail.com (Postfix) with ESMTP id 47043A0006 for ; Wed, 16 Feb 2022 08:48:28 +0000 (UTC) Received: from eage.unicloud.com ([220.194.70.35]) by spam.unicloud.com with ESMTP id 21G8m9M5023393; Wed, 16 Feb 2022 16:48:09 +0800 (GMT-8) (envelope-from luofei@unicloud.com) Received: from zgys-ex-mb09.Unicloud.com (10.10.0.24) by zgys-ex-mb10.Unicloud.com (10.10.0.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2375.17; Wed, 16 Feb 2022 16:48:08 +0800 Received: from zgys-ex-mb09.Unicloud.com ([fe80::eda0:6815:ca71:5aa]) by zgys-ex-mb09.Unicloud.com ([fe80::eda0:6815:ca71:5aa%16]) with mapi id 15.01.2375.017; Wed, 16 Feb 2022 16:48:08 +0800 From: =?gb2312?B?wt63yQ==?= To: =?gb2312?B?SE9SSUdVQ0hJIE5BT1lBKNylv9qhodax0rIp?= CC: "akpm@linux-foundation.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Subject: =?gb2312?B?tPC4tDogW1BBVENIXSBtbS9od3BvaXNvbjogSW4tdXNlIGh1Z2VwYWdlIG5l?= =?gb2312?B?ZWQgZmlsdGVyIGp1ZGdlbWVudCBhbmQgZmlsdGVyIHJldHVybiB2YWx1ZSBz?= =?gb2312?Q?hould_be_consistent?= Thread-Topic: [PATCH] mm/hwpoison: In-use hugepage need filter judgement and filter return value should be consistent Thread-Index: AQHYHlxu8aS30aEM5UiWTb2e01xKxqyU6pCAgADxTGw= Date: Wed, 16 Feb 2022 08:48:08 +0000 Message-ID: References: <20220210085846.902394-1-luofei@unicloud.com>,<20220216014413.GA2233606@hori.linux.bs1.fc.nec.co.jp> In-Reply-To: <20220216014413.GA2233606@hori.linux.bs1.fc.nec.co.jp> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.10.1.7] Content-Type: multipart/alternative; boundary="_000_daed1583532840ad96fa522c30030a4bunicloudcom_" MIME-Version: 1.0 X-DNSRBL: X-MAIL:spam.unicloud.com 21G8m9M5023393 X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 47043A0006 X-Stat-Signature: 8kekbw8dh75d4fcrnb3mheqgiedrbff8 Authentication-Results: imf15.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf15.hostedemail.com: domain of luofei@unicloud.com designates 220.194.70.58 as permitted sender) smtp.mailfrom=luofei@unicloud.com X-HE-Tag: 1645001308-873321 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --_000_daed1583532840ad96fa522c30030a4bunicloudcom_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 PklJUkMsIGh3cG9pc29uX2ZpbHRlcigpIGlzIGV4cGVjdGVkIHRvIGlnbm9yZSBlcnJvciBldmVu dHMgb24NCj5pcnJlbGV2YW50IHRhcmdldCAocGFnZXxkZXZpY2V8Y2dyb3VwKSBmb3IgdGVzdGVy cyB0byBmb2N1cyBvbg0KPm5vbi1maWx0ZXJlZCBldmVudHMuICBTbyBmaWx0ZXJlZCBldmVudHMg c2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkDQo+YXMgZXJyb3ItaGFuZGxpbmcgZmFpbHVyZXMgKG90 aGVyd2lzZSB0ZXN0ZXJzIGNhbid0IGVhc2lseQ0KPmRpc3Rpbmd1aXNoIHRoZW0gZnJvbSByZWFs IGVycm9yLWhhbmRsaW5nIGZhaWx1cmVzKS4NCj4NCj5CdXQgeWVzLCB0aGUgTUNFIGhhbmRsZXIg ZGVwZW5kcyBvbiB0aGUgcmV0dXJuIHZhbHVlIG9mIG1lbW9yeV9mYWlsdXJlKCksDQo+c28gZmls dGVyZWQgZXZlbnRzIHNob3VsZG4ndCBiZSBjb25zaWRlcmVkIGFzIGVycm9yLWhhbmRsaW5nJ3Mg c3VjY2Vzc2VzLg0KPlNvIG9uZSBwb3NzaWJsZSBhcHByb2FjaCBpcyB0aGF0IHdlIGludHJvZHVj ZSBhIG5ldyBtZl9mbGFncyB0byBzaG93IHRoYXQNCj5tZW1vcnlfZmFpbHVyZSgpIGlzIGNhbGxl ZCBmcm9tIE1DRSBoYW5kbGVyIChub3QgZnJvbSBod3BvaXNvbiBpbmplY3RvciksDQo+YW5kIHdl IHN3aXRjaCByZXR1cm4gY29kZSB3aGVuIGh3cG9pc29uX2ZpbHRlciBmYWlsZWQgYnkgdGhpcyBm bGFnLg0KPkNvdWxkIHlvdSB0cnkgaXQgaWYgdGhpcyBhcHByb2FjaCB3b3JrcyBmb3IgeW91PyAg T3IgaWYgeW91IGhhdmUgYW55IGJldHRlcg0KPmlkZWEsIGZlZWwgZnJlZSB0byBzaGFyZSBpdC4N Cg0KDQpTaW5jZSBod3BvaXNvbl9maWx0ZXIoKSBpcyBleHBlY3RlZCB0byBpZ25vcmUgZXJyb3Ig ZXZlbnRzIG9uIGlycmVsZXZhbnQgdGFyZWd0LA0KDQppbnRyb2R1Y2UgYSBuZXcgbWZfZmxhZ3Mg dG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIG1jZSBoYW5kbGVyIGFuZCBod3BvaXNvbg0KDQppbmpl Y3RvciBpcyBhIGdvb2Qgd2F5LCB0aGlzIGNhbiBhdm9pZCB0aGUgaW1wYWN0IG9mIGh3cG9pc29u X2ZpbHRlcigpIG9uIHRoZSBtY2UNCg0KaGFuZGxlci4gSSB3aWxsIHJlc3VibWl0IGEgcGF0Y2gN Cg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCreivP7IyzogSE9SSUdVQ0hJIE5B T1lBKNylv9qhodax0rIpIDxuYW95YS5ob3JpZ3VjaGlAbmVjLmNvbT4NCreiy83KsbzkOiAyMDIy xOoy1MIxNsjVIDk6NDQ6MTMNCsrVvP7Iyzogwt63yQ0Ks63LzTogYWtwbUBsaW51eC1mb3VuZGF0 aW9uLm9yZzsgbGludXgtbW1Aa3ZhY2sub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3Jn DQrW98ziOiBSZTogW1BBVENIXSBtbS9od3BvaXNvbjogSW4tdXNlIGh1Z2VwYWdlIG5lZWQgZmls dGVyIGp1ZGdlbWVudCBhbmQgZmlsdGVyIHJldHVybiB2YWx1ZSBzaG91bGQgYmUgY29uc2lzdGVu dA0KDQpPbiBUaHUsIEZlYiAxMCwgMjAyMiBhdCAwMzo1ODo0NkFNIC0wNTAwLCBsdW9mZWkgd3Jv dGU6DQo+IEFmdGVyIHN1Y2Nlc3NmdWxseSBvYnRhaW5pbmcgdGhlIHJlZmVyZW5jZSBjb3VudCBv ZiB0aGUgaHVnZQ0KPiBwYWdlLCBpdCBpcyBzdGlsbCBuZWNlc3NhcnkgdG8gY2FsbCBod3BvaXNv bl9maWx0ZXIoKSB0byBtYWtlIGENCj4gZmlsdGVyIGp1ZGdlbWVudCwgb3RoZXJ3aXNlIHRoZSBm aWx0ZXIgcGFnZSB3aWxsIGJlIHVubWFwZWQgYW5kDQo+IHRoZSByZWxhdGVkIHByb2Nlc3MgbWF5 IGJlIGtpbGxlZC4NCj4NCj4gQWxzbyB3aGVuIHRoZSBodWdlIHBhZ2UgbWVldHMgdGhlIGZpbHRl ciBjb25kaXRpb25zLCBpdCBzaG91bGQNCj4gbm90IGJlIHJlZ2FyZGVkIGFzIHN1Y2Nlc3NmdWwg bWVtb3J5X2ZhaWx1cmUoKSBwcm9jZXNzaW5nLCBidXQNCj4gc2hvdWxkIHJldHVybiBhbiBlcnJv ciBjb2RlIHRvIGluZm9ybSB0aGUgY2FsbGVyLCBvdGhlcndpc2UgdGhlDQo+IGNhbGxlciByZWdh cmRzIHRoZSBlcnJvciBwYWdlIGhhcyBiZWVuIGlkZW50aWZpZWQgYW5kIGlzb2xhdGVkLA0KPiB3 aGljaCBtYXkgbGVhZCB0byBjYWxsaW5nIHNldF9tY2Vfbm9zcGVjKCkgdG8gY2hhbmdlIHBhZ2Ug YXR0cmlidXRlLg0KDQpIaSBsdW9mZWksDQoNCkkgYWdyZWUgd2l0aCBpbnNlcnRpbmcgYW5vdGhl ciBod3BvaXNvbl9maWx0ZXIoKSBibG9jayB3aGljaCB3YXMNCnNpbXBseSBtaXNzZWQuIFRoYW5r cyBmb3IgcG9pbnRpbmcgaXQgb3V0Lg0KDQo+DQo+IE1lYW53aGlsZSwgd2hlbiBjYWxsaW5nIGh3 cG9pc29uX2ZpbHRlcigpIHRvIGRldGVybWluZSB0aGF0IGEgcGFnZQ0KPiBuZWVkcyB0byBiZSBm aWx0ZXJlZCwgaXQgaXMgYmV0dGVyIHRvIGtlZXAgdGhlIHNhbWUgRUJVU1kgcmV0dXJuDQo+IHZh bHVlLCBzbyB0aGF0IHRoZSBjYWxsZXIgY2FuIHJlY29nbml6ZSB0aGF0IG1lbW9yeV9mYWlsdXJl KCkgZGlkDQo+IG5vdCBzdWNjZXNzZnVsbHkgcHJvY2VzcyB0aGUgZXJyb3IgcGFnZS4NCg0KSUlS QywgaHdwb2lzb25fZmlsdGVyKCkgaXMgZXhwZWN0ZWQgdG8gaWdub3JlIGVycm9yIGV2ZW50cyBv bg0KaXJyZWxldmFudCB0YXJnZXQgKHBhZ2V8ZGV2aWNlfGNncm91cCkgZm9yIHRlc3RlcnMgdG8g Zm9jdXMgb24NCm5vbi1maWx0ZXJlZCBldmVudHMuICBTbyBmaWx0ZXJlZCBldmVudHMgc2hvdWxk IG5vdCBiZSBjb25zaWRlcmVkDQphcyBlcnJvci1oYW5kbGluZyBmYWlsdXJlcyAob3RoZXJ3aXNl IHRlc3RlcnMgY2FuJ3QgZWFzaWx5DQpkaXN0aW5ndWlzaCB0aGVtIGZyb20gcmVhbCBlcnJvci1o YW5kbGluZyBmYWlsdXJlcykuDQoNCkJ1dCB5ZXMsIHRoZSBNQ0UgaGFuZGxlciBkZXBlbmRzIG9u IHRoZSByZXR1cm4gdmFsdWUgb2YgbWVtb3J5X2ZhaWx1cmUoKSwNCnNvIGZpbHRlcmVkIGV2ZW50 cyBzaG91bGRuJ3QgYmUgY29uc2lkZXJlZCBhcyBlcnJvci1oYW5kbGluZydzIHN1Y2Nlc3Nlcy4N ClNvIG9uZSBwb3NzaWJsZSBhcHByb2FjaCBpcyB0aGF0IHdlIGludHJvZHVjZSBhIG5ldyBtZl9m bGFncyB0byBzaG93IHRoYXQNCm1lbW9yeV9mYWlsdXJlKCkgaXMgY2FsbGVkIGZyb20gTUNFIGhh bmRsZXIgKG5vdCBmcm9tIGh3cG9pc29uIGluamVjdG9yKSwNCmFuZCB3ZSBzd2l0Y2ggcmV0dXJu IGNvZGUgd2hlbiBod3BvaXNvbl9maWx0ZXIgZmFpbGVkIGJ5IHRoaXMgZmxhZy4NCkNvdWxkIHlv dSB0cnkgaXQgaWYgdGhpcyBhcHByb2FjaCB3b3JrcyBmb3IgeW91PyAgT3IgaWYgeW91IGhhdmUg YW55IGJldHRlcg0KaWRlYSwgZmVlbCBmcmVlIHRvIHNoYXJlIGl0Lg0KDQpUaGFua3MsDQpOYW95 YSBIb3JpZ3VjaGkNCg0KPg0KPiBTaWduZWQtb2ZmLWJ5OiBsdW9mZWkgPGx1b2ZlaUB1bmljbG91 ZC5jb20+DQo+IC0tLQ0KPiAgbW0vaHdwb2lzb24taW5qZWN0LmMgfCAgMiArLQ0KPiAgbW0vbWVt b3J5LWZhaWx1cmUuYyAgfCAxMiArKysrKysrKysrLS0NCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTEg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4NCj4gZGlmZiAtLWdpdCBhL21tL2h3cG9p c29uLWluamVjdC5jIGIvbW0vaHdwb2lzb24taW5qZWN0LmMNCj4gaW5kZXggYWZmNGQyN2VjMjM1 Li40ZWNkNzdjZDFkZWQgMTAwNjQ0DQo+IC0tLSBhL21tL2h3cG9pc29uLWluamVjdC5jDQo+ICsr KyBiL21tL2h3cG9pc29uLWluamVjdC5jDQo+IEBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBpbnQg aHdwb2lzb25faW5qZWN0KHZvaWQgKmRhdGEsIHU2NCB2YWwpDQo+ICAgICAgICAgKi8NCj4gICAg ICAgIGVyciA9IGh3cG9pc29uX2ZpbHRlcihocGFnZSk7DQo+ICAgICAgICBpZiAoZXJyKQ0KPiAt ICAgICAgICAgICAgIHJldHVybiAwOw0KPiArICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7DQo+ DQo+ICBpbmplY3Q6DQo+ICAgICAgICBwcl9pbmZvKCJJbmplY3RpbmcgbWVtb3J5IGZhaWx1cmUg YXQgcGZuICUjbHhcbiIsIHBmbik7DQo+IGRpZmYgLS1naXQgYS9tbS9tZW1vcnktZmFpbHVyZS5j IGIvbW0vbWVtb3J5LWZhaWx1cmUuYw0KPiBpbmRleCA5N2E5ZWQ4Zjg3YTkuLmFjZjk3ZmIyNjU5 YSAxMDA2NDQNCj4gLS0tIGEvbW0vbWVtb3J5LWZhaWx1cmUuYw0KPiArKysgYi9tbS9tZW1vcnkt ZmFpbHVyZS5jDQo+IEBAIC0xNTI2LDcgKzE1MjYsNyBAQCBzdGF0aWMgaW50IG1lbW9yeV9mYWls dXJlX2h1Z2V0bGIodW5zaWduZWQgbG9uZyBwZm4sIGludCBmbGFncykNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChUZXN0Q2xlYXJQYWdlSFdQb2lzb24oaGVhZCkpDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bV9wb2lzb25lZF9wYWdlc19k ZWMoKTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVubG9ja19wYWdlKGhlYWQp Ow0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FQlVTWTsNCj4gICAgICAgICAgICAgICAgICAg ICAgICB9DQo+ICAgICAgICAgICAgICAgICAgICAgICAgdW5sb2NrX3BhZ2UoaGVhZCk7DQo+ICAg ICAgICAgICAgICAgICAgICAgICAgcmVzID0gTUZfRkFJTEVEOw0KPiBAQCAtMTU0NSw2ICsxNTQ1 LDEzIEBAIHN0YXRpYyBpbnQgbWVtb3J5X2ZhaWx1cmVfaHVnZXRsYih1bnNpZ25lZCBsb25nIHBm biwgaW50IGZsYWdzKQ0KPiAgICAgICAgbG9ja19wYWdlKGhlYWQpOw0KPiAgICAgICAgcGFnZV9m bGFncyA9IGhlYWQtPmZsYWdzOw0KPg0KPiArICAgICBpZiAoaHdwb2lzb25fZmlsdGVyKHApKSB7 DQo+ICsgICAgICAgICAgICAgaWYgKFRlc3RDbGVhclBhZ2VIV1BvaXNvbihoZWFkKSkNCj4gKyAg ICAgICAgICAgICAgICAgICAgIG51bV9wb2lzb25lZF9wYWdlc19kZWMoKTsNCj4gKyAgICAgICAg ICAgICB1bmxvY2tfcGFnZShoZWFkKTsNCj4gKyAgICAgICAgICAgICByZXMgPSAtRUJVU1kNCj4g KyAgICAgICAgICAgICBnb3RvIG91dDsNCj4gKyAgICAgfQ0KPiAgICAgICAgLyoNCj4gICAgICAg ICAqIFRPRE86IGh3cG9pc29uIGZvciBwdWQtc2l6ZWQgaHVnZXRsYiBkb2Vzbid0IHdvcmsgcmln aHQgbm93LCBzbw0KPiAgICAgICAgICogc2ltcGx5IGRpc2FibGUgaXQuIEluIG9yZGVyIHRvIG1h a2UgaXQgd29yayBwcm9wZXJseSwgd2UgbmVlZA0KPiBAQCAtMTYxMyw3ICsxNjIwLDcgQEAgc3Rh dGljIGludCBtZW1vcnlfZmFpbHVyZV9kZXZfcGFnZW1hcCh1bnNpZ25lZCBsb25nIHBmbiwgaW50 IGZsYWdzLA0KPiAgICAgICAgICAgICAgICBnb3RvIG91dDsNCj4NCj4gICAgICAgIGlmIChod3Bv aXNvbl9maWx0ZXIocGFnZSkpIHsNCj4gLSAgICAgICAgICAgICByYyA9IDA7DQo+ICsgICAgICAg ICAgICAgcmMgPSAtRUJVU1k7DQo+ICAgICAgICAgICAgICAgIGdvdG8gdW5sb2NrOw0KPiAgICAg ICAgfQ0KPg0KPiBAQCAtMTgzNyw2ICsxODQ0LDcgQEAgaW50IG1lbW9yeV9mYWlsdXJlKHVuc2ln bmVkIGxvbmcgcGZuLCBpbnQgZmxhZ3MpDQo+ICAgICAgICAgICAgICAgICAgICAgICAgbnVtX3Bv aXNvbmVkX3BhZ2VzX2RlYygpOw0KPiAgICAgICAgICAgICAgICB1bmxvY2tfcGFnZShwKTsNCj4g ICAgICAgICAgICAgICAgcHV0X3BhZ2UocCk7DQo+ICsgICAgICAgICAgICAgcmVzID0gLUVCVVNZ Ow0KPiAgICAgICAgICAgICAgICBnb3RvIHVubG9ja19tdXRleDsNCj4gICAgICAgIH0NCj4NCj4g LS0NCj4gMi4yNy4wDQo= --_000_daed1583532840ad96fa522c30030a4bunicloudcom_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable

>IIRC, hwpoison_= filter() is expected to ignore error events on
>irrelevant target = (page|device|cgroup) for testers to focus on
>non-filtered event= s.  So filtered events should not be considered
>as error-handling = failures (otherwise testers can't easily
>distinguish them f= rom real error-handling failures).
>
>But yes, the MCE h= andler depends on the return value of memory_failure(),
>so filtered events= shouldn't be considered as error-handling's successes.
>So one possible ap= proach is that we introduce a new mf_flags to show that
>memory_failure() i= s called from MCE handler (not from hwpoison injector),
>and we switch retu= rn code when hwpoison_filter failed by this flag.
>Could you try it i= f this approach works for you?  Or if you have any better
>idea, feel free to= share it.


Since hwpoison_filter() is expected to ignore error events on irrelevant taregt,=

introduce a new mf_flags to differentiate between mce handler and hwpoison

injector is a good way, this can avoid the impact of hwpoison_filter() on the = mce

handler. I will resubmit a patch


=B7=A2=BC=FE=C8=CB: HORIG= UCHI NAOYA(=DC=A5=BF=DA=A1=A1=D6=B1=D2=B2) <naoya.horiguchi@nec.com><= br> =B7=A2=CB=CD=CA=B1=BC=E4: 2022=C4=EA2=D4=C216=C8=D5 9:44:13
=CA=D5=BC=FE=C8=CB: =C2=DE=B7=C9
=B3=AD=CB=CD: akpm@linux-foundation.org; linux-mm@kvack.org; linux-k= ernel@vger.kernel.org
=D6=F7=CC=E2: Re: [PATCH] mm/hwpoison: In-use hugepage need filter j= udgement and filter return value should be consistent
 
On Thu, Feb 10, 2022 at 03:58:46AM -0500, luofei w= rote:
> After successfully obtaining the reference count of the huge
> page, it is still necessary to call hwpoison_filter() to make a
> filter judgement, otherwise the filter page will be unmaped and
> the related process may be killed.
>
> Also when the huge page meets the filter conditions, it should
> not be regarded as successful memory_failure() processing, but
> should return an error code to inform the caller, otherwise the
> caller regards the error page has been identified and isolated,
> which may lead to calling set_mce_nospec() to change page attribute.
Hi luofei,

I agree with inserting another hwpoison_filter() block which was
simply missed. Thanks for pointing it out.

>
> Meanwhile, when calling hwpoison_filter() to determine that a page
> needs to be filtered, it is better to keep the same EBUSY return
> value, so that the caller can recognize that memory_failure() did
> not successfully process the error page.

IIRC, hwpoison_filter() is expected to ignore error events on
irrelevant target (page|device|cgroup) for testers to focus on
non-filtered events.  So filtered events should not be considered
as error-handling failures (otherwise testers can't easily
distinguish them from real error-handling failures).

But yes, the MCE handler depends on the return value of memory_failure(), so filtered events shouldn't be considered as error-handling's successes. So one possible approach is that we introduce a new mf_flags to show that memory_failure() is called from MCE handler (not from hwpoison injector), and we switch return code when hwpoison_filter failed by this flag.
Could you try it if this approach works for you?  Or if you have any b= etter
idea, feel free to share it.

Thanks,
Naoya Horiguchi

>
> Signed-off-by: luofei <luofei@unicloud.com>
> ---
>  mm/hwpoison-inject.c |  2 +-
>  mm/memory-failure.c  | 12 ++++++= 3;+++--
>  2 files changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/mm/hwpoison-inject.c b/mm/hwpoison-inject.c
> index aff4d27ec235..4ecd77cd1ded 100644
> --- a/mm/hwpoison-inject.c
> +++ b/mm/hwpoison-inject.c
> @@ -44,7 +44,7 @@ static int hwpoison_inject(void *data, u64 val)<= br> >         */
>        err =3D hwpoison_filter(hpag= e);
>        if (err)
> -           &nb= sp; return 0;
> +           = ;  return -EBUSY;

>  inject:
>        pr_info("Injecting memo= ry failure at pfn %#lx\n", pfn);
> diff --git a/mm/memory-failure.c b/mm/memory-failure.c
> index 97a9ed8f87a9..acf97fb2659a 100644
> --- a/mm/memory-failure.c
> +++ b/mm/memory-failure.c
> @@ -1526,7 +1526,7 @@ static int memory_failure_hugetlb(unsigned l= ong pfn, int flags)
>            = ;            &n= bsp;       if (TestClearPageHWPoison(head)) >            = ;            &n= bsp;            = ;   num_poisoned_pages_dec();
>            = ;            &n= bsp;       unlock_page(head);
> -           &nb= sp;            =      return 0;
> +           = ;            &n= bsp;     return -EBUSY;
>            = ;            }
>            = ;            unlock_= page(head);
>            = ;            res =3D= MF_FAILED;
> @@ -1545,6 +1545,13 @@ static int memory_failure_hugetlb(unsigned = long pfn, int flags)
>        lock_page(head);
>        page_flags =3D head->flag= s;

> +     if (hwpoison_filter(p)) {
> +           = ;  if (TestClearPageHWPoison(head))
> +           = ;          num_poisoned_pages_= dec();
> +           = ;  unlock_page(head);
> +           = ;  res =3D -EBUSY
> +           = ;  goto out;
> +     }
>        /*
>         * TODO: hwpoison for p= ud-sized hugetlb doesn't work right now, so
>         * simply disable it. I= n order to make it work properly, we need
> @@ -1613,7 +1620,7 @@ static int memory_failure_dev_pagemap(unsign= ed long pfn, int flags,
>            = ;    goto out;

>        if (hwpoison_filter(page)) {=
> -           &nb= sp; rc =3D 0;
> +           = ;  rc =3D -EBUSY;
>            = ;    goto unlock;
>        }

> @@ -1837,6 +1844,7 @@ int memory_failure(unsigned long pfn, int fl= ags)
>            = ;            num_poi= soned_pages_dec();
>            = ;    unlock_page(p);
>            = ;    put_page(p);
> +           = ;  res =3D -EBUSY;
>            = ;    goto unlock_mutex;
>        }

> --
> 2.27.0
--_000_daed1583532840ad96fa522c30030a4bunicloudcom_--