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 C1A14C05027 for ; Thu, 2 Feb 2023 00:30:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 21B546B0073; Wed, 1 Feb 2023 19:30:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1CAE26B0075; Wed, 1 Feb 2023 19:30:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 093446B0078; Wed, 1 Feb 2023 19:30:46 -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 EE7E86B0073 for ; Wed, 1 Feb 2023 19:30:45 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id BC8D9A0D0C for ; Thu, 2 Feb 2023 00:30:45 +0000 (UTC) X-FDA: 80420471250.25.F5B2BB0 Received: from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com [64.147.123.21]) by imf05.hostedemail.com (Postfix) with ESMTP id 677FD10000A for ; Thu, 2 Feb 2023 00:30:42 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm2 header.b=PuS4XslS; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=LQfnQL8d; spf=pass (imf05.hostedemail.com: domain of kirill@shutemov.name designates 64.147.123.21 as permitted sender) smtp.mailfrom=kirill@shutemov.name; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675297842; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=mcqgGYa4hZKukFy82k91D/t4VXdkei96zjH64+7vMzg=; b=ago47bcnMoaxxQvB8NfsqaeCJiQRG92aDVKsnLxXUw6V7jqedA3JGY6TrEmuK4sXUvGYB3 RT5v0oxaBFWxEwKAKaq5h7wNoO1vBv8QS7duhGBB53VZ97EsRus0hxLjRI0FkM80ogAJfu 7E0xnAr6hlZEsq5xp8DwF6fIZuJN7GE= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=shutemov.name header.s=fm2 header.b=PuS4XslS; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=LQfnQL8d; spf=pass (imf05.hostedemail.com: domain of kirill@shutemov.name designates 64.147.123.21 as permitted sender) smtp.mailfrom=kirill@shutemov.name; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675297842; a=rsa-sha256; cv=none; b=vMWMV+7PenH5whCOta+T6PRiPskljC8iKpNEXuo8w4KnjZYu6x9EOqtcWY5629VT+O6/ni oaaszyW3E5u+uJnaabW/I3S/hnHEbEID7T0LJSbqPv0H4oRqc0BbbW3ygYmaN4VWBhvz/w ZkwSq11Vbp190NycrI4UOgysIMRMOSQ= Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id C0A833200AA7; Wed, 1 Feb 2023 19:30:39 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Wed, 01 Feb 2023 19:30:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shutemov.name; h=cc:cc:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm2; t=1675297839; x=1675384239; bh=mc qgGYa4hZKukFy82k91D/t4VXdkei96zjH64+7vMzg=; b=PuS4XslSEvVRhDMIRi eYHfD6nPoFH9v2w+1NlCBWFRNzBGrOl8CT1v8QBXossDPeVtDx7fdczk8AXCy51v jqaHg84we1FfbckbBGhTZyGE1hNN3jSfVcjDz11MXNJwGd2IWJWix//spcbdt8LT H6FgUViyqOaUe9bzQ1Cm1VWwVGAfiXNXON+qP70MEb6qCuDZXdhAFlQiyEj7xEjx nhBXbVLNvmhrdjT3Sk5jbNdjHkuCy3MWML8A4R61Ui3S5x7eJ4x4IcKv6SEh/oY4 AG4m+cCx7bUPCM86XVGERPfPDXAmnZw/pAqwVoC14yO0t2a5IjRHNnbO2pQyetFi S4+Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1675297839; x=1675384239; bh=mcqgGYa4hZKukFy82k91D/t4VXdk ei96zjH64+7vMzg=; b=LQfnQL8dwI5h6nSUo0ug6FClaEs2G4CgxDctJhs8Ho1U pCTCs5DCGB/oal6HBMKgnBiQAyQ4mCGntng8xB7Usd2IOp/btLiFdqUKXA2UXOO1 otAXv/vg70fYQMaZDdy2pZTM/h98ocDINmaB1kmenvA0L4Qtgpxk3wpkB6sq2LuY GgO3jQ6R9sdK+kibuUv5gwS920/tlxzlXOSP/qYbRx2FHxw8PYEC9r2FY+3k4fVb yCseiipJyZJnGxx6ZnkMEAX7+KkbeB4FQ9KxBgqjhMKVhuNuR7MM+//8R8Wj0Byt vQUYLXF/dWcv4coFpxUa6TjEoNR0MbysHUeN6cDjeg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudefjedgvdeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvfevuffkfhggtggujgesthdttddttddtvdenucfhrhhomhepkhhirhhi lhhlsehshhhuthgvmhhovhdrnhgrmhgvnecuggftrfgrthhtvghrnhepheelveevjeduje ekveeuveetveffhfekjefgheelteehhfeujedvheeijefghffhnecuvehluhhsthgvrhfu ihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepkhhirhhilhhlsehshhhuthgvmh hovhdrnhgrmhgv X-ME-Proxy: Feedback-ID: ie3994620:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 1 Feb 2023 19:30:37 -0500 (EST) Received: by box.shutemov.name (Postfix, from userid 1000) id B309610E383; Thu, 2 Feb 2023 03:30:34 +0300 (+03) Date: Thu, 2 Feb 2023 03:30:34 +0300 From: kirill@shutemov.name To: kirill.shutemov@linux.intel.com Cc: Jiaqi Yan , shy828301@gmail.com, tongtiangen@huawei.com, tony.luck@intel.com, akpm@linux-foundation.org, wangkefeng.wang@huawei.com, naoya.horiguchi@nec.com, linmiaohe@huawei.com, linux-mm@kvack.org, osalvador@suse.de, glider@google.com, elver@google.com, dvyukov@google.com Subject: Re: [PATCH v9 1/2] mm/khugepaged: recover from poisoned anonymous memory Message-ID: <20230202003034.cgtsz2mixfcige3p@box.shutemov.name> References: <20221205234059.42971-1-jiaqiyan@google.com> <20221205234059.42971-2-jiaqiyan@google.com> <20230119150258.npfadnefkpny5fd3@box.shutemov.name> <20230124003349.m64heg7mnqw7snyh@box.shutemov.name> <20230202000102.mqgyquncvqe6wkno@box.shutemov.name> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230202000102.mqgyquncvqe6wkno@box.shutemov.name> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 677FD10000A X-Rspam-User: X-Stat-Signature: x1hs7othxktzsy6hhfztfpns1d3ypayf X-HE-Tag: 1675297842-540516 X-HE-Meta: U2FsdGVkX1/lUByYfWv01SNUFhqhY1VKfhIe+AW3mZp7FhbH8hUSXtMtA608bc+mbef9FU84fZs/ldUM2DFEoAmUueFmZiLzEjfwKupqIPHr/N8SVRxDqUecXClf7fFsgTmL/Y34G5qo+7LqtsoT7Vznso+4H3Q5V19mjxchPUN0zn9cYE3fo1eeQQ7crgbAvHGZT6hXQmFQpXramCa0rjgK9IJ3lqqFBbOKRIbc/KbGZ2T7T1IxfoFx1wdRZIFFe7CWMzoFKfrepzeXGYrVoJ6ustTFXGRJfs/3O786r31dqIOYOqvXPk6wmK3EYGgCHJAC40UQLeXph0mrAHEFpvPHtOcE+h9PChWcFolderR2RgBC1bGgB8SX+WTTaInuB+DYVq2oVzBL3tV8Yl2FPEwe0SsBPb/gwZpogN8fPoiNybKX7/t1OM6yC4WjHG2PAbu3A7as1jxqD/MByA69LzML+c85tnBnoB18Hkdc++fYJn7g7ARyIxa7ysMor2dPasWAJZ+CM/MhL9myWVtYoQzhhYk1JxsnIJx8SZXNAM/vVkosyLp/d2jQYG8eRWEGhJlnbxGXfroW+hXM9/46bcrku9iGFdSm/6bQYdZNt+dLhi9qoRb2j67BfScXPwqhIZfO4kyhBaRUQP23c+PihgjtC8XogSP8SLjFuS7nHNkJGQCx+GHcbA9/npqmxoRkfwx7NJp7atn63S1VNoQ+6j8+WhLGH8YRbCBlTNA73RlCBLRvFKrdaVSUeTHZI266yu+xJXYFuQdpsQ04HVEThu6azwqOdagq0zJZa+uPR+g1boG9xIjO4u8gSFfMJoTBzHW/Tmq/7pI2ecdHLN++DI47GwE0OyM/TVbDe+pT6vhEg9tJglHzB9Hwc028ULsjGsPftaluI/ifVeDeZuO1r9Mx5PtmX3dnLg20tF14jnmPYqHw7LMVnQUwMUQOyhFlyR9iuNmOYfv8+H8Bjfw EpYDGPX8 K0WjNVeqFojOnUH5JbNHEKSgfWb9KIe3SDMMDmUFaulUGWpbb3J79S5M/vK7e9W0jQ4Wu4gVDPljSBy2uliwaGnQjYDlH9SZbNv8KGBJfD4cGjNIM6SzjCEoUEaQXVsdM94KlZTfSgsYkLh31bja/ILCMG6qzMOfqiIRYAdGKLeWMtRJC66L/Y3CuaUW7URMyQZhAZcuh+HUDeE31i+KtSpgXmS6o81UtoTD5j8Fbw8NFq/ze89+mn/r8JIl92f5v+zAHbuF0F19OG8tpgEB9HMke/Avs+vngUmhzPduqCKdUabhH7l6hgScWi/jKPbneJc0j20A6rKEytto= 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 Thu, Feb 02, 2023 at 03:01:02AM +0300, kirill.shutemov@linux.intel.com wrote: > On Tue, Jan 31, 2023 at 09:16:45PM -0800, Jiaqi Yan wrote: > > > > > > +/* > > > > > > + * Copies memory with #MC in source page (@from) handled. Returns number > > > > > > + * of bytes not copied if there was an exception; otherwise 0 for success. > > > > > > + * Note handling #MC requires arch opt-in. > > > > > > + */ > > > > > > +static int copy_mc_page(struct page *to, struct page *from) > > > > > > +{ > > > > > > + char *vfrom, *vto; > > > > > > + unsigned long ret; > > > > > > + > > > > > > + vfrom = kmap_local_page(from); > > > > > > + vto = kmap_local_page(to); > > > > > > + ret = copy_mc_to_kernel(vto, vfrom, PAGE_SIZE); > > > > > > + if (ret == 0) > > > > > > + kmsan_copy_page_meta(to, from); > > > > > > + kunmap_local(vto); > > > > > > + kunmap_local(vfrom); > > > > > > + > > > > > > + return ret; > > > > > > +} > > > > > > > > > > > > > > > It is very similar to copy_mc_user_highpage(), but uses > > > > > kmsan_copy_page_meta() instead of kmsan_unpoison_memory(). > > > > > > > > > > Could you explain the difference? I don't quite get it. > > > > > > > > copy_mc_page is actually the MC version of copy_highpage, which uses > > > > kmsan_copy_page_meta instead of kmsan_unpoison_memory. > > > > > > > > My understanding is kmsan_copy_page_meta covers kmsan_unpoison_memory. > > > > When there is no metadata (kmsan_shadow or kmsan_origin), both > > > > kmsan_copy_page_meta and kmsan_unpoison_memory just do > > > > kmsan_internal_unpoison_memory to mark the memory range as > > > > initialized; when there is metadata in src page, kmsan_copy_page_meta > > > > will copy whatever metadata in src to dst. So I think > > > > kmsan_copy_page_meta is the right thing to do. > > > > > > Should we fix copy_mc_user_highpage() then? > > > > I think it depends on what copy_user_highpage() (the original of > > copy_mc_user_highpage) is used for. copy_mc_user_highpage is currently > > only used by __wp_page_copy_user, is it possible that here we don't > > want to (or don't need to) copy page metadata for userspace pages? > > Tony, could chime in on this? Can we modify copy_mc_user_highpage() to > also use kmsan_copy_page_meta()? I don't really understand KMSAN here. +KMSAN folks. -- Kiryl Shutsemau / Kirill A. Shutemov