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 E9163D5C0C8 for ; Fri, 8 Nov 2024 13:47:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7BA916B0096; Fri, 8 Nov 2024 08:47:23 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 76AA46B0098; Fri, 8 Nov 2024 08:47:23 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6317B6B0099; Fri, 8 Nov 2024 08:47:23 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 44EFF6B0096 for ; Fri, 8 Nov 2024 08:47:23 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 07C621C57FA for ; Fri, 8 Nov 2024 13:47:23 +0000 (UTC) X-FDA: 82763054346.02.9434606 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by imf15.hostedemail.com (Postfix) with ESMTP id 33C28A0006 for ; Fri, 8 Nov 2024 13:46:42 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=none; spf=pass (imf15.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731073589; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=h7hTG36s3zU+f8LywFvhmi59hNVLnZgW3GqUQsbBBB8=; b=KEd4qEbUQaAH4UmP7XIaTGMiFNW2yxE9nluKLkuguvMH/16Tg94/iBNFsgb0miU2/j+TVB THMoe/IN8Mg1soQmniiLltJFmIP4mV/QzFwfQPBYDAmr1J3Dv3OuX2aXiIYXRqdolrzSAk Sb/h0G5unO5WYPoxEtjSf2DHM1dSskY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731073589; a=rsa-sha256; cv=none; b=wME1RWFJfSEaEJETSSFicZ+/wrwngGAu7N9+QsYjWoVrAVj0vveWFCgYXRzdcqQ0eR9+n9 X2uMfS75tNDQKw8a3K1LBpis3/Sv2dBgY2zJJHRFthCvdxt9aP0ycqXU4B4tzZxcYEcmZ4 ydm3KhWRVn0R5T/VrfRgBqTbnPfzIS0= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=none; spf=pass (imf15.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4XlKvd3Mp6z6K95G; Fri, 8 Nov 2024 21:45:33 +0800 (CST) Received: from frapeml100008.china.huawei.com (unknown [7.182.85.131]) by mail.maildlp.com (Postfix) with ESMTPS id 96EED140133; Fri, 8 Nov 2024 21:47:16 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100008.china.huawei.com (7.182.85.131) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Fri, 8 Nov 2024 14:47:16 +0100 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.039; Fri, 8 Nov 2024 14:47:16 +0100 From: Shiju Jose To: Fan Ni CC: "linux-edac@vger.kernel.org" , "linux-cxl@vger.kernel.org" , "linux-acpi@vger.kernel.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "bp@alien8.de" , "tony.luck@intel.com" , "rafael@kernel.org" , "lenb@kernel.org" , "mchehab@kernel.org" , "dan.j.williams@intel.com" , "dave@stgolabs.net" , "Jonathan Cameron" , "gregkh@linuxfoundation.org" , "sudeep.holla@arm.com" , "jassisinghbrar@gmail.com" , "dave.jiang@intel.com" , "alison.schofield@intel.com" , "vishal.l.verma@intel.com" , "ira.weiny@intel.com" , "david@redhat.com" , "Vilas.Sridharan@amd.com" , "leo.duran@amd.com" , "Yazen.Ghannam@amd.com" , "rientjes@google.com" , "jiaqiyan@google.com" , "Jon.Grimm@amd.com" , "dave.hansen@linux.intel.com" , "naoya.horiguchi@nec.com" , "james.morse@arm.com" , "jthoughton@google.com" , "somasundaram.a@hpe.com" , "erdemaktas@google.com" , "pgonda@google.com" , "duenwen@google.com" , "gthelen@google.com" , "wschwartz@amperecomputing.com" , "dferguson@amperecomputing.com" , "wbs@os.amperecomputing.com" , tanxiaofei , "Zengtao (B)" , "Roberto Sassu" , "kangkang.shen@futurewei.com" , wanghuiqiang , Linuxarm Subject: RE: [PATCH v15 02/15] EDAC: Add scrub control feature Thread-Topic: [PATCH v15 02/15] EDAC: Add scrub control feature Thread-Index: AQHbLD7vCzL+HgVM6Umrx0HY63Gx9LKsgzCAgADs7ZA= Date: Fri, 8 Nov 2024 13:47:16 +0000 Message-ID: References: <20241101091735.1465-1-shiju.jose@huawei.com> <20241101091735.1465-3-shiju.jose@huawei.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.48.151.69] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Stat-Signature: 66kraqimrtiakm89ygwp47p8w1nis9fp X-Rspam-User: X-Rspamd-Queue-Id: 33C28A0006 X-Rspamd-Server: rspam02 X-HE-Tag: 1731073602-287842 X-HE-Meta: U2FsdGVkX18F/qGgMvLf+Ylq61MaOHbLXjwRpS2Kf0IreTLvP7T6AAyAEydb5wZZ4Q7phJvmtdC0LmHy9Xru/6tfU42kO9F9KbMDmXopi8kmrX1qR7vZLHLPunO+J1ztRneYrZn+mpg7348FxZxwrF9n7UOU8Ipz5HlR1VJpiWeDYNIt6VniSt4KuJrwObxeYVVsrBnou+ed/0uzaFsmD/6IGUGZRRi/f0lMwoCjGHLdofiVUCFCtlUL3BBJ6jeIY8GD/73JxnKLK+6g9UrQPjCna0n4jvQneYn5nLV8lmbupuJlJykEEFX+ib7+D21JKxc/a3F9On2Sgr+hIHcEmVpUeczzdXCdQmgdzBSsqxqSGR9gg0r9X7jnY83mQuK9MdgzOYPGjnMAnIgqNpxIP/nKSgL55vZT8wHWwC6wrDQwUBiRl3LBtIVHWNPbHXDJRpc5mKAk7XABFfeFtONtO//QFArueLfOXLQBJsCjLvBAnXVHj7iCdWrn17f9mmaci5vC6pWY5MstqWFLOps/UmXG066+E2eW/oaDa5hRz9bBBaxstFVvvyzyxyu6YHpK/LQxNTUZ+AY8vQALutquj2u/d366sRwfsBvN9AwNfqFRKuge8o6dPezZ4JhF+4Pr7XsTvB47KVmvBODc1WIFtXanELxoKv/ImdNYtae5QmfabQvloS2f/WiHwpQUBny8VWFrSqD7/2yIvmxBvSjH3RoUhfesJcy66phMScwNOJvxzONmwJHbwrzAg8DxaBI+35XwttJf3APPVJvS+tCIKWtmnfQruw+vIBlPWnd1RWJfNXqzA5bqyZBaZ2mWW6XJJ2OQBPZcKegNMKuGgudqVqrReJ3vuVktmIcqCfnfu8k6vyWbo2qHStJYU9J0O0NFP604FOZukd8IOpV6XGjDdwtZcdRugH9aYumu45iqB7RprtdrB2Jb9ZUY1Chql5RLFlqtmbxESV8pfPOrp0b oSOl1j4r QPgZ6f3w1y2pYxp+GZACy2K3SKL2k8fcUl0tj2OPwiwCh6AAZzkDFJm9x3CcbUXuc8FbTfW2UzyfRJBT36Vb3ADF+qMWyvo+N/tLJJeo2osq1sLpyigS1HFuv5R+a5ULcWEOCHrAYbzyuc/GNCIgAr6EX2QN+3IosvLeWFdWf1eE1smcly9YAIKSJH37fSH4B4GY1eu8x8Gt+m+6q/eqjX8Om2mdRuQs4MLW3Ur8Nv56IzJUhf71o4QbEn5wlcw2pc07x3O1aOpdQ17lGJUo1N11HJMSwEbwdStT8Q9VNrrUJ52XgxUvpGH9w5jE9/HNhDql6mI64TjGL9lPowSC6cygtm2SRT8dxmjE2OTkbG6FA+pHqLoYjAw/jTitH9yoQIKEUnHw6V4AYKHjF9rzHZTOVNtEXjn1UpBHDCmoVU4hm9FL9VqJtIMkeSptf7uw5gz+6khZoZ1koHd8uFS0sRQfa9q49RjklNNfnOwP9kac+ZNpTaz5bZlWpU5XmhOi3kUsskP7aWVPjINKu46rjEzlzhPlQ86edBrX6NtCA8wdG5cQzc99jqjro7apVBI1xjVkjYLLmbZS3Y8f29gnhK+DK9mvqs83rv6xuflMNs+MkD2JleCwREx9gpVNk1nKKZTZ2WxAdJfhumza2s9ApRLP4j6NJx80OYM43uarw8TDOb5f0eRl4ofl2j0ITa+Fz6bySzOfkSz7hZ+Ia587zPrTe62I0spHN1ZX5gINja67bS7hDhT9sZYnxo3NRvO7MPSAGZZXq7aqXEvESTyxSF1xM9sJPcgx7VSrv/qdZXk+VilJpUTPJo2kTgknH/LjBH5tPds9FP4B1QGQdHJU2aCDTYDaqKWNoNq8ds7Ycsh8UIa9UB4AwioeVjFJcXyRjXl5tgEThfqQ+z48= 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: List-Subscribe: List-Unsubscribe: >-----Original Message----- >From: Fan Ni >Sent: 08 November 2024 00:36 >To: Shiju Jose >Cc: linux-edac@vger.kernel.org; linux-cxl@vger.kernel.org; linux- >acpi@vger.kernel.org; linux-mm@kvack.org; linux-kernel@vger.kernel.org; >bp@alien8.de; tony.luck@intel.com; rafael@kernel.org; lenb@kernel.org; >mchehab@kernel.org; dan.j.williams@intel.com; dave@stgolabs.net; Jonathan >Cameron ; gregkh@linuxfoundation.org; >sudeep.holla@arm.com; jassisinghbrar@gmail.com; dave.jiang@intel.com; >alison.schofield@intel.com; vishal.l.verma@intel.com; ira.weiny@intel.com; >david@redhat.com; Vilas.Sridharan@amd.com; leo.duran@amd.com; >Yazen.Ghannam@amd.com; rientjes@google.com; jiaqiyan@google.com; >Jon.Grimm@amd.com; dave.hansen@linux.intel.com; >naoya.horiguchi@nec.com; james.morse@arm.com; jthoughton@google.com; >somasundaram.a@hpe.com; erdemaktas@google.com; pgonda@google.com; >duenwen@google.com; gthelen@google.com; >wschwartz@amperecomputing.com; dferguson@amperecomputing.com; >wbs@os.amperecomputing.com; nifan.cxl@gmail.com; tanxiaofei >; Zengtao (B) ; Roberto >Sassu ; kangkang.shen@futurewei.com; >wanghuiqiang ; Linuxarm > >Subject: Re: [PATCH v15 02/15] EDAC: Add scrub control feature > >On Fri, Nov 01, 2024 at 09:17:20AM +0000, shiju.jose@huawei.com wrote: >> From: Shiju Jose >> >> Add a generic EDAC scrub control to manage memory scrubbers in the syste= m. >> Devices with a scrub feature register with the EDAC device driver, >> which retrieves the scrub descriptor from the EDAC scrub driver and >> exposes the sysfs scrub control attributes for a scrub instance to >> userspace at /sys/bus/edac/devices//scrubX/. >> >> The common sysfs scrub control interface abstracts the control of >> arbitrary scrubbing functionality into a common set of functions. The >> sysfs scrub attribute nodes are only present if the client driver has >> implemented the corresponding attribute callback function and passed >> the >> operations(ops) to the EDAC device driver during registration. >> >> Co-developed-by: Jonathan Cameron >> Signed-off-by: Jonathan Cameron >> Signed-off-by: Shiju Jose >> --- > >Minor comments inline. > >> Documentation/ABI/testing/sysfs-edac-scrub | 74 ++++++++ >> drivers/edac/Makefile | 1 + >> drivers/edac/edac_device.c | 40 +++- >> drivers/edac/scrub.c | 209 +++++++++++++++++++++ >> include/linux/edac.h | 34 ++++ >> 5 files changed, 354 insertions(+), 4 deletions(-) create mode >> 100644 Documentation/ABI/testing/sysfs-edac-scrub >> create mode 100755 drivers/edac/scrub.c >> >> diff --git a/Documentation/ABI/testing/sysfs-edac-scrub >> b/Documentation/ABI/testing/sysfs-edac-scrub >> new file mode 100644 >> index 000000000000..d8d11165ff2a >> --- /dev/null >> +++ b/Documentation/ABI/testing/sysfs-edac-scrub > >... > >> diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c >> index e9229b5f8afe..cd700a64406e 100644 >> --- a/drivers/edac/edac_device.c >> +++ b/drivers/edac/edac_device.c >> @@ -576,6 +576,7 @@ static void edac_dev_release(struct device *dev) >> { >> struct edac_dev_feat_ctx *ctx =3D container_of(dev, struct >> edac_dev_feat_ctx, dev); >> >> + kfree(ctx->scrub); >> kfree(ctx->dev.groups); >> kfree(ctx); >> } >> @@ -609,6 +610,8 @@ int edac_dev_register(struct device *parent, char >*name, >> const struct edac_dev_feature *ras_features) { >> const struct attribute_group **ras_attr_groups; >> + int scrub_cnt =3D 0, scrub_inst =3D 0; >> + struct edac_dev_data *dev_data; >> struct edac_dev_feat_ctx *ctx; >> int attr_gcnt =3D 0; >> int ret, feat; >> @@ -619,7 +622,10 @@ int edac_dev_register(struct device *parent, char >*name, >> /* Double parse to make space for attributes */ >> for (feat =3D 0; feat < num_features; feat++) { >> switch (ras_features[feat].ft_type) { >> - /* Add feature specific code */ >> + case RAS_FEAT_SCRUB: >> + attr_gcnt++; >> + scrub_cnt++; >> + break; >> default: >> return -EINVAL; >> } >> @@ -635,13 +641,37 @@ int edac_dev_register(struct device *parent, char >*name, >> goto ctx_free; >> } >> >> + if (scrub_cnt) { >> + ctx->scrub =3D kcalloc(scrub_cnt, sizeof(*ctx->scrub), >GFP_KERNEL); >> + if (!ctx->scrub) { >> + ret =3D -ENOMEM; >> + goto groups_free; >> + } >> + } >> + >> attr_gcnt =3D 0; > >If we use scrub_cnt the same way as we use attr_gcnt, we do not need >scrub_inst. Hi Fan, Thanks for suggestion. Modified and done the same for EDAC memory repair fe= ature as well.=20 > >Fan >> for (feat =3D 0; feat < num_features; feat++, ras_features++) { >> switch (ras_features->ft_type) { >> - /* Add feature specific code */ [...] >-- >Fan Ni > Thanks, Shiju