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 A8774C3ABC9 for ; Fri, 16 May 2025 13:29:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 88A486B0171; Fri, 16 May 2025 09:29:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 860936B0172; Fri, 16 May 2025 09:29:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 727D66B0173; Fri, 16 May 2025 09:29:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 528BA6B0171 for ; Fri, 16 May 2025 09:29:02 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 67C6B120564 for ; Fri, 16 May 2025 13:29:03 +0000 (UTC) X-FDA: 83448851766.21.8A7EA25 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by imf27.hostedemail.com (Postfix) with ESMTP id 47C5E4000B for ; Fri, 16 May 2025 13:29:01 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf27.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747402141; a=rsa-sha256; cv=none; b=5Ea1OWTWHoZrfV2fScpN0AAD+G8YWN++XSGfW4kpoIzHjkNB5fJrADaQYdVQTmZ75yWAVy Kv8msT20GMTYGoLXgcwPDaRkfScMn+oK+qL9wzswdZTOBuKmyq+gEeRod4JrkKYNtIBIw3 +IBgoxxjHtikWtq8tNNBB2FGJiniV4Y= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf27.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747402141; 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: references; bh=ughDO4v2h1sXEgb1ct6mA/Ex9L6x0uXrCbBKNZrsM+A=; b=OIp+yi7Azj4/636SjB5qgRTVw6ZxzawDGOaK0X3IpHQoDwkAVg7KO9S7rpszZI9wrHuT4B Xsiqim1nKLI6RfzYGE3FWsdzmCdEEPG87Pgek6kl7JNTksF+IgOD/L3DD1mSqZjRW0OdgX CCQ/TTf8FynTS4dYduJU5NtznZfpRX4= Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4ZzSWt1Tsdz6L5Lv; Fri, 16 May 2025 21:26:02 +0800 (CST) Received: from frapeml500007.china.huawei.com (unknown [7.182.85.172]) by mail.maildlp.com (Postfix) with ESMTPS id 0BF521402F4; Fri, 16 May 2025 21:28:58 +0800 (CST) Received: from P_UKIT01-A7bmah.china.huawei.com (10.195.247.214) by frapeml500007.china.huawei.com (7.182.85.172) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Fri, 16 May 2025 15:28:56 +0200 From: To: , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v6 0/2] ACPI: Add support for ACPI RAS2 feature table Date: Fri, 16 May 2025 14:22:02 +0100 Message-ID: <20250516132205.789-1-shiju.jose@huawei.com> X-Mailer: git-send-email 2.43.0.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.195.247.214] X-ClientProxiedBy: lhrpeml500005.china.huawei.com (7.191.163.240) To frapeml500007.china.huawei.com (7.182.85.172) X-Stat-Signature: 4rr4bkz4uq6phquw8x37hr7nep884dgy X-Rspam-User: X-Rspamd-Queue-Id: 47C5E4000B X-Rspamd-Server: rspam06 X-HE-Tag: 1747402141-572852 X-HE-Meta: U2FsdGVkX1/pSsXGWlPVci//sT6hKpXvtle4+7X+BbLC9vf+LEpdr9l6DySwdlFVnLYcQi2po6wnHOjRmn7+/7rx9c30MiEKJHIIY9Wq0kpm6rJ3Tq1AS2rRr2XLXmWQ+WiMQo4aGaWAApdQ44nC2259+5sOIv9/u+C7AhcQ2W1IY1AsJ6jTP1qSuaLPnJstakeHEQsxPK3oYDietxHWQzI3yLG+xIov5ju4cjB8ZuRu7VVkFnpicMMncBZUYv3vIa4BdNWiQGiPNNiURQV7EF4Ngt4zvRFY9V+N6uUMtDM77nZGjZVZeKUocVZxcEt9KjbTAFz2bXToY7W7GphUA6aLbouGY7q9Koh/naoMqj9SZUEpb4MyYv4VCFXyt+hsavMJGtuB5+y0yE21KmGMKFCU+VZER1llBhseHzrlMLjzoZGPWIeOfbOhWu8iudWsVcLE2IXKZOAsDPLPdRkilbWv2XyFQ55TesvgBQgFI1NKxeEfcBbd4kypeymc6JmQv64c3vhqaeHpkXUrIZgcNbGjRYguiyo/6xtTFbuvnrlzZbW4qafQWtR3Sbpkwi+QmqZ0S93sMM5oL1+qX0Df7crKCk4Nly8WRQX0iu1ksiZANezKSYI4/YcgRP+ZudgDazivnoQmFk8Gp6981RqLeinGmEzY704KmMsIfY6/44q588fMRqT0jCwY8/EeMNdMzJdQVfQHlEQNP9BLVRFn7rZfuz3cP9gKK4Q2/Pu4nWFrcBKaZaID7jzBdt+BaRO5f1Lh7IjXaHrRjIfM3XcjLiIu772YpPO7hXc6xtcTS3flFFjfak3xS0hHN1Vde4ATS+09okD72H33VtJRir73q8DXbh2e+t85H9ZTzg3WqWNgkKBID3Vl5RjvKxi7kBIDt/yFBQZKm8+GiXjnWXQVyj7JD3XWqyrJwv3ByffUEjzX0fGJb1L53rWvv7ZRx7LLackTkc6zXDukpmb5ded 98LJBg3F SNo8boZ6v7H4VxemMB7xAygFAqtbJa0PFQd7P2DHrmDDwQ1HIJDsd5IdBVExACKhRLlkilT7BIZLQca4TvgEYjpDpvtrW6+whEkAi4Kltd4p2GgEAnAQ0GJJbNzlz/PDH7NhVI0KX2VeRlqd4F8R7SlDR73doNxRtT8gQXU9eim+1eVSJcWoBl75IJqLixxY/7Ghwsg6usJ6VuwzN+vSvLdkKgS1P6bYOgj6xKF7iItRlqzBQ/0e3dHfCsk6PwfD3RmEgO0AqyrrlkvfMDO8CRAu6WQ643Ak3i2D7ZVk/ICdzPJ9TcW52fW2E9WgeSXcREwPc 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: From: Shiju Jose Add support for ACPI RAS2 feature table (RAS2) defined in the ACPI 6.5 specification, section 5.2.21 and RAS2 HW based memory scrubbing feature. ACPI RAS2 patches were part of the EDAC series [1]. The code is based on ras.git: edac-for-next branch [2] merged with linux-pm.git [3] : linux-next branch. 1. https://lore.kernel.org/linux-cxl/20250212143654.1893-1-shiju.jose@huawei.com/ 2. https://web.git.kernel.org/pub/scm/linux/kernel/git/ras/ras.git/log/?h=edac-for-next 3. https://web.git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/ Changes ======= v5 -> v6: 1. Fix for the issue reported by Daniel, in start scrubbing with correct addr and size after firmware return INVALID DATA error for scrub request with invalid addr or size. https://lore.kernel.org/all/8cdf7885-31b3-4308-8a7c-f4e427486429@os.amperecomputing.com/ v4 -> v5: 1. Fix for the build warnings reported by kernel test robot. https://patchwork.kernel.org/project/linux-edac/patch/20250423163511.1412-3-shiju.jose@huawei.com/ 2. Removed patch "ACPI: ACPI 6.5: RAS2: Rename RAS2 table structure and field names" from the series as the patch was merged to linux-pm.git : branch linux-next 3. Rebased to ras.git: edac-for-next branch merged with linux-pm.git : linux-next branch. v3 -> v4: 1. Changes for feedbacks from Yazen on v3. https://lore.kernel.org/all/20250415210504.GA854098@yaz-khff2.amd.com/ v2 -> v3: 1. Rename RAS2 table structure and field names in include/acpi/actbl2.h limited to only necessary for RAS2 scrub feature. 2. Changes for feedbacks from Jonathan on v2. 3. Daniel reported a known behaviour: when readback 'size' attribute after setting in, returns 0 before starting scrubbing via 'addr' attribute. Changes added to fix this. 4. Daniel reported that firmware cannot update status of demand scrubbing via the 'Actual Address Range (OUTPUT)', thus add workaround in the kernel to update sysfs 'addr' attribute with the status of demand scrubbing. 5. Optimized logic in ras2_check_pcc_chan() function (patch - ACPI:RAS2: Add ACPI RAS2 driver). 6. Add PCC channel lock to struct ras2_pcc_subspace and change lock in ras2_mem_ctx as a pointer to pcc channel lock to make sure writing to PCC subspace shared memory is protected from race conditions. v1 -> v2: 1. Changes for feedbacks from Borislav. - Shorten ACPI RAS2 structures and variables names. - Shorten some of the other variables in the RAS2 drivers. - Fixed few CamelCases. 2. Changes for feedbacks from Yazen. - Added newline after number of '}' and return statements. - Changed return type for "ras2_add_aux_device() to 'int'. - Deleted a duplication of acpi_get_table("RAS2",...) in the ras2_acpi_parse_table(). - Add "FW_WARN" to few error logs in the ras2_acpi_parse_table(). - Rename ras2_acpi_init() to acpi_ras2_init() and modified to call acpi_ras2_init() function from the acpi_init(). - Moved scrub related variables from the struct ras2_mem_ctx from patch "ACPI:RAS2: Add ACPI RAS2 driver" to "ras: mem: Add memory ACPI RAS2 driver". Shiju Jose (2): ACPI:RAS2: Add ACPI RAS2 driver ras: mem: Add memory ACPI RAS2 driver Documentation/edac/scrub.rst | 78 ++++++ drivers/acpi/Kconfig | 11 + drivers/acpi/Makefile | 1 + drivers/acpi/bus.c | 3 + drivers/acpi/ras2.c | 451 +++++++++++++++++++++++++++++++++++ drivers/ras/Kconfig | 11 + drivers/ras/Makefile | 1 + drivers/ras/acpi_ras2.c | 424 ++++++++++++++++++++++++++++++++ include/acpi/ras2.h | 70 ++++++ 9 files changed, 1050 insertions(+) create mode 100644 drivers/acpi/ras2.c create mode 100644 drivers/ras/acpi_ras2.c create mode 100644 include/acpi/ras2.h -- 2.43.0