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 26D03C021A0 for ; Fri, 14 Feb 2025 02:57:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AD1546B0083; Thu, 13 Feb 2025 21:57:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A81806B0085; Thu, 13 Feb 2025 21:57:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9227E6B0088; Thu, 13 Feb 2025 21:57:35 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 730636B0083 for ; Thu, 13 Feb 2025 21:57:35 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id E51DB141A91 for ; Fri, 14 Feb 2025 02:57:34 +0000 (UTC) X-FDA: 83117039628.22.47736B5 Received: from szxga04-in.huawei.com (szxga04-in.huawei.com [45.249.212.190]) by imf14.hostedemail.com (Postfix) with ESMTP id 14D80100004 for ; Fri, 14 Feb 2025 02:57:31 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf14.hostedemail.com: domain of tongtiangen@huawei.com designates 45.249.212.190 as permitted sender) smtp.mailfrom=tongtiangen@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739501853; a=rsa-sha256; cv=none; b=0oWyx9PgCHLr1wpXbVgdLt9Gz1ClGqkawQZGrtzT/1tQzTso5aKUq7thkP9ne0qNl/8qBF oDK/po6UYUjKkzOLjW9dVMDHFcZqXnDhvBqJzTK0YH1vmkYjFgn0i30j8X3lB25qp9XbrP JY6+MCvRKIIL3kZmATFCpBxjNQ+HAqo= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf14.hostedemail.com: domain of tongtiangen@huawei.com designates 45.249.212.190 as permitted sender) smtp.mailfrom=tongtiangen@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739501853; 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=dAco+YwYPEGkt4T/RB6q+1KKzbs6hySE2tC8jKn0Axo=; b=FtNn8B+IeP86b1TbY0jSL/gZxMCpU4h7LffuOqp/TYhIVFVnIni63h8Ua9z1kFUH3EaH9Q y58uSJdrIVh8mrMCVJ+vdXLsRbGEB90tg+hb1KMcj7j2/iEu4b7tOfUQkg1cnoptwJFKbn ZVwliyCPF/W9+MZIG7kdozlN4sUmDSs= Received: from mail.maildlp.com (unknown [172.19.88.163]) by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4YvGpC5pGcz2FdSY; Fri, 14 Feb 2025 10:53:39 +0800 (CST) Received: from kwepemk500005.china.huawei.com (unknown [7.202.194.90]) by mail.maildlp.com (Postfix) with ESMTPS id CA35F180044; Fri, 14 Feb 2025 10:57:27 +0800 (CST) Received: from [10.174.179.234] (10.174.179.234) by kwepemk500005.china.huawei.com (7.202.194.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 14 Feb 2025 10:57:25 +0800 Message-ID: Date: Fri, 14 Feb 2025 10:57:24 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: Re: [PATCH v13 5/5] arm64: introduce copy_mc_to_kernel() implementation To: Catalin Marinas CC: Mark Rutland , Jonathan Cameron , Mauro Carvalho Chehab , Will Deacon , Andrew Morton , James Morse , Robin Murphy , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , Michael Ellerman , Nicholas Piggin , Andrey Ryabinin , Alexander Potapenko , Christophe Leroy , Aneesh Kumar K.V , "Naveen N. Rao" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , , "H. Peter Anvin" , Madhavan Srinivasan , , , , , , , Guohanjun References: <20241209024257.3618492-1-tongtiangen@huawei.com> <20241209024257.3618492-6-tongtiangen@huawei.com> From: Tong Tiangen In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.179.234] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemk500005.china.huawei.com (7.202.194.90) X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 14D80100004 X-Stat-Signature: g61rowawoao8st9fdadphwa57ro963aw X-Rspam-User: X-HE-Tag: 1739501851-984194 X-HE-Meta: U2FsdGVkX18SGiPgUEZA1XtbPD7C+XCsSpn9e0fc/CnhANAzRxWSqIEjWZCYgrYMS/j6IGPD8pcIYLkb7FCiUrZg0YxSYpd2JC5UbegpWj8nLkjz0P+k7z4BLlJTpTvr+jONo7xvUAqGzyNLINmbjScZ1X3/tNQN7V9FHoE/zeXZPkHy+Gqaz/qZijDQJlSjNfsZ0EL02skUJHicsBHybywbiVTNKvugKZPtGvrQZN2uQeTrRM3mRiSwAThscpCcx7qrxmZkHANjFVy0P4sky8th1WYorN8eO2tXekGFCkkdgkHsgWiFCkFFN9JoJtRKvQDQ7hkXS6ay5VQdQ26x+Q3hb4U/ixdLsoXFrOEghBTi6zY6YU2TVn12J4cPvRmlNa7twU3uQ2THAgfb8ZEWptStVwvwt9+ZUvDKMZIQjiM9flxFLuD2QyirX1PHUJIciOzYpCogVoLFCgCOGpK7X31Eei+tHUvrYVOp+IQOnVQZ4emd9m4d+HhdpeRum6VhI8ue/qdBMu09JTyuxzDcTbT1Yd5VM/Y6txG6HAUvP8uSl8aQjegjEbnCJPQjYAes+hPj+lSHLbrTb3nV1wWl1rnHeehSE/1YCWwVaHLaotLMc/2j3aY5/FQO14GQvNKXgDegMRqnAukIOFNZV/3dsBQwujukqTRye6F7mXwnTUycGmQW7HIglg1yhi/zPxDZe/7QF0cozFRvCpcTJGY/ZN+1EYPj0cSz8y878j597A7TAN+hxduHLcCzpQBxdxPtVnRdphECRSHaY4FgukG/dubVz09J88XUqWyaMg9Cm+Heu+f27PIu7ljZU0F0/MIfZ9lzGuwZC7hzpy6Lq2rDo/D/EaKAfKy7QDbCsHvBgLgdQzdIjaCHGxtD4dnFF9Ou9gmBljEX/MMycRaM7dGZjHUMjPmFUDGPkRGOQ83i2odf6mofrntfWkjFrFCJVn08kqQMDc7jWrMfHAcrGW2 DFplbA8M AoqCCC8f7MG0dydypSh5/LkM7pwo1KY7LxthllyLuYLUA94fcscbiIUmMchPnN/nDp1XUzRRr74SafQchtHc95bMR4bbDqNpL2qDWdxDPmgleE16pPNj/e9ToC9Zaq5Jqo5NDLvxOA/07wZ7BNGFKo9ZgOKebpLzvEIjcMTvRjWKLmw8y/85Qx94CMrdwRb+alzGvKbJUd9CwdM08rJl1l4fEdLJ5VjhWOkQgTWcL/3SOKrDlU5bRZgba4/pttnzdHL/rB90sMBYof+sRwi4/d+/zHnv/3mDTbCbv 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: 在 2025/2/13 1:18, Catalin Marinas 写道: > On Mon, Dec 09, 2024 at 10:42:57AM +0800, Tong Tiangen wrote: >> The copy_mc_to_kernel() helper is memory copy implementation that handles >> source exceptions. It can be used in memory copy scenarios that tolerate >> hardware memory errors(e.g: pmem_read/dax_copy_to_iter). >> >> Currently, only x86 and ppc support this helper, Add this for ARM64 as >> well, if ARCH_HAS_COPY_MC is defined, by implementing copy_mc_to_kernel() >> and memcpy_mc() functions. >> >> Because there is no caller-saved GPR is available for saving "bytes not >> copied" in memcpy(), the memcpy_mc() is referenced to the implementation >> of copy_from_user(). In addition, the fixup of MOPS insn is not considered >> at present. > > Same question as on the previous patch, can we not avoid the memcpy() > duplication if the only difference is entries in the exception table? > IIUC in patch 2 fixup_exception() even ignores the new type. The error > must come on the do_sea() path. As I said in commit message, it is not normalized with the memcpy() because of the lack of GPR. If there is no GPR shortage problem, we can extract the common code of memcpy_mc() and memcpy(),The unextracted code is using different exception table entries. Thanks, Tong. >