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 E35F2C4332F for ; Wed, 2 Nov 2022 14:31:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4A20B8E0002; Wed, 2 Nov 2022 10:31:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 42B2B8E0001; Wed, 2 Nov 2022 10:31:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2A5168E0002; Wed, 2 Nov 2022 10:31:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 18AE98E0001 for ; Wed, 2 Nov 2022 10:31:21 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id CCF77140A11 for ; Wed, 2 Nov 2022 14:31:20 +0000 (UTC) X-FDA: 80088739920.23.BED1908 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by imf27.hostedemail.com (Postfix) with ESMTP id 1CFEC4000D for ; Wed, 2 Nov 2022 14:31:19 +0000 (UTC) Received: by mail-wr1-f42.google.com with SMTP id k8so24851122wrh.1 for ; Wed, 02 Nov 2022 07:31:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=fvcd8aKkXATuRfEipojhsSmbkitfupBiLaEwnV78heo=; b=jrxAY3MgHeVIzcyiNPKtsXJk9dLguqghP/Fjfj+2bzpqzI8Prp73eTJhQjhB0ZFgnj ENkFqMekQANYww6qdtbL9fPFhaXN8sqUohuYgloCXlrnxY94ynjMY7v/GtVWYSyGfDDn qS2raTJYrrg6bpoLfy+Mm9I3Pe7Z+XR4H1igv3t80BCiwD8ZbSNUjfSDpImNN6LQYZW5 LA65QwR/6sBqIRaw62mH++XBTgi2BkxGzlprT7asQsa4ZCGo77VPfN1/LUROW6AFRuu7 koDCbwNY6WxkZbgrjHZwxSYViQQf0rwbw2gTK4aFN2KmlXQkad5K9XYDq5DY6UeMFUvb VBxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fvcd8aKkXATuRfEipojhsSmbkitfupBiLaEwnV78heo=; b=bNc2L+1YYXm71Timk13z/U06T19x+MOEtaXJluXnUpOiK3GQoAq9Y9+Zo1mVo6Q0x8 xTt87MCyGL0Vw9eLlhlnZtunelGZ98msrrY6bmYVousIb4O/s+YnPE6FW7VPDbHHRdA/ HNGeQdX18uDV+3E632tgFP+aX9+7ezatyDjP/A8nsoVwuJcXA98RLAiRvdi+U6N+4thU FX83qX2DI4IKEA2V7ty86C8WuVeqKPXf6RO9Q7bNxg/G+o9b+3SHVaUxnHA42U+OFjK7 r0Pq2rgOCf2pcvm9CfXi2+JbNb5CjNywmR1hyaRZbVlvbq2aBYzWgmk2Rd7wbAm5Z63Q RHGw== X-Gm-Message-State: ACrzQf2n7IY8EeG1h/emfWBq9j28vULkD0bkn0MhhWN2KXc27DoZMWYp Wppz1hpM6nfKGuVFdihXIJVAHY0ZsnNGjtjr6w/jew== X-Google-Smtp-Source: AMsMyM6v9a6vVf5kY2HXjmezSGtsXJpE3LiX+IsFEVWUIFUbTph4Gtnxq3ntkjCtOuZTkp2cjAllhreubO89xhIpzUw= X-Received: by 2002:a5d:4ac8:0:b0:236:781a:8d2d with SMTP id y8-20020a5d4ac8000000b00236781a8d2dmr15833263wrs.715.1667399478686; Wed, 02 Nov 2022 07:31:18 -0700 (PDT) MIME-Version: 1.0 References: <20221019170835.155381-1-tony.luck@intel.com> <20221021200120.175753-1-tony.luck@intel.com> <20221021200120.175753-2-tony.luck@intel.com> In-Reply-To: From: Alexander Potapenko Date: Wed, 2 Nov 2022 15:30:42 +0100 Message-ID: Subject: Re: [PATCH v3 1/2] mm, hwpoison: Try to recover from copy-on write faults To: "Luck, Tony" Cc: Miaohe Lin , Matthew Wilcox , Shuai Xue , "Williams, Dan J" , Michael Ellerman , Nicholas Piggin , Christophe Leroy , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "linuxppc-dev@lists.ozlabs.org" , Naoya Horiguchi , Andrew Morton Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1667399480; a=rsa-sha256; cv=none; b=xf38/wh9h9fdv33Gvt6hby9ekKROX4BvroirR5zLt/EoGCdTgi1eBx3gcB1vROse6ohqFa 44apLVSX8EQjiNG01/qlPUWEmckAl2RP+PTAv/rR8xy+VI+rrZPWJ42uuGrthe004E3skm 1vvXvgHZ6T1cctm5WT0hM1mLFLpre3I= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=jrxAY3Mg; spf=pass (imf27.hostedemail.com: domain of glider@google.com designates 209.85.221.42 as permitted sender) smtp.mailfrom=glider@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1667399480; 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:dkim-signature; bh=fvcd8aKkXATuRfEipojhsSmbkitfupBiLaEwnV78heo=; b=yuAegKTeIgXRKG3HCzAyfzg1C57W+Twj4UOpMZs2hypycti/iN+IsOt+Z+JgA7+zW8gj4l nixxW/Uy/5btiMbMCvLQ+b4By7y2D9W3mA83O0Xoskn82SrHpMj9BxVcrhgN4RFXe8JJcm U0FvGqWxN/NMnIkV/cqEWZiNu5OxQbI= X-Stat-Signature: p93pjdeybgxb6wzdx6n5nrtwdb1wij9i X-Rspamd-Server: rspam09 X-Rspam-User: X-Rspamd-Queue-Id: 1CFEC4000D Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=jrxAY3Mg; spf=pass (imf27.hostedemail.com: domain of glider@google.com designates 209.85.221.42 as permitted sender) smtp.mailfrom=glider@google.com; dmarc=pass (policy=reject) header.from=google.com X-HE-Tag: 1667399479-996399 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: On Wed, Nov 2, 2022 at 3:27 PM Alexander Potapenko wrot= e: > > On Fri, Oct 28, 2022 at 6:14 PM Luck, Tony wrote: > > > > >> + vfrom =3D kmap_local_page(from); > > >> + vto =3D kmap_local_page(to); > > >> + ret =3D copy_mc_to_kernel(vto, vfrom, PAGE_SIZE); > > > > > > In copy_user_highpage(), kmsan_unpoison_memory(page_address(to), PAGE= _SIZE) is done after the copy when > > > __HAVE_ARCH_COPY_USER_HIGHPAGE isn't defined. Do we need to do someth= ing similar here? But I'm not familiar > > > with kmsan, so I can easy be wrong. > > > > It looks like that kmsan_unpoison_memory() call was added recently, aft= er I copied > > copy_user_highpage() to create copy_mc_user_highpage(). I'm not familia= r with > > kmsan either. Adding Alexander to this thread since they added that cod= e. > > > > Given that copy_mc_user_highpage() replaces one of the calls to > copy_user_highpage(), it sure makes sense to call > kmsan_unpoison_memory() here. > > KMSAN tracks the status (initialized/uninitialized) of the kernel > memory. Newly allocated memory is marked uninitialized, copying memory > preserves its status, and writing constants to that memory makes it > initialized. > Userspace memory does not have its status tracked by KMSAN, so when > values are copied from the userspace, KMSAN does nothing with their > status. > That's why every (successful) copy_from_user event should be followed > by kmsan_unpoison_memory(), which marks the corresponding kernel > buffer initialized - otherwise the status of that buffer may get > stale. > > > > Anyway, this patch looks good to me. Thanks. > > > > > > Reviewed-by: Miaohe Lin Reviewed-by: Alexander Potapenko > > > > Thanks for the review. > > > > -Tony > > > > -- > Alexander Potapenko > Software Engineer > > Google Germany GmbH > Erika-Mann-Stra=C3=9Fe, 33 > 80636 M=C3=BCnchen > > Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Liana Sebastian > Registergericht und -nummer: Hamburg, HRB 86891 > Sitz der Gesellschaft: Hamburg --=20 Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Stra=C3=9Fe, 33 80636 M=C3=BCnchen Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Liana Sebastian Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg