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 290A0C636CC for ; Tue, 7 Feb 2023 18:20:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8DD35900007; Tue, 7 Feb 2023 13:19:59 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 88D8F900002; Tue, 7 Feb 2023 13:19:59 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 755E4900007; Tue, 7 Feb 2023 13:19:59 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 61959900002 for ; Tue, 7 Feb 2023 13:19:59 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 27DB61C4648 for ; Tue, 7 Feb 2023 18:19:59 +0000 (UTC) X-FDA: 80441309718.28.848BE70 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) by imf05.hostedemail.com (Postfix) with ESMTP id 67E40100019 for ; Tue, 7 Feb 2023 18:19:56 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=JvYejyVU; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf05.hostedemail.com: domain of jiaqiyan@google.com designates 209.85.210.172 as permitted sender) smtp.mailfrom=jiaqiyan@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675793996; 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=ssJGlg1oGJoAoNmahpvzUifrvZShZ1w+trFvMin6Wfo=; b=KAEW+CBokKQbrU3qBgE5Q1JUdDUiI7TSYZ4K3zlISc9W5zISHK1qYCScpMn2qX1rvVBaL8 j5QUrWV29RtIqoLwI4Wv3/dpVNuoTBT5i5Zg/kFg+cM/JKQgR6ABIEIbpk37FGDyK7+MTj euzTd8UjwmKpCzmyOY216tFKZFE4lA4= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=JvYejyVU; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf05.hostedemail.com: domain of jiaqiyan@google.com designates 209.85.210.172 as permitted sender) smtp.mailfrom=jiaqiyan@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675793996; a=rsa-sha256; cv=none; b=rzTok7ODLv3de6m4s0b08dimYwllikbkvbwxzd3gIv5ZJ4j3u1Xn7+0puGW5XkatQx5MQj rRIU4Fdlve3NF4uAgv30eN+ROFdLQOwuZ5O9RItO0AfPpUuhkVs06FDesm7g8ySlVDdgXa qBW5sHcSI3tk8ubgqWqWd8Ep6yweLio= Received: by mail-pf1-f172.google.com with SMTP id r17so2080557pff.9 for ; Tue, 07 Feb 2023 10:19:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ssJGlg1oGJoAoNmahpvzUifrvZShZ1w+trFvMin6Wfo=; b=JvYejyVUuWvPCS7Wm3cjtcLyhTR+GBacVMh+D9gYtIaqh8XIrOOMbRmj/I3ybvtbDZ /6TOSnqGPSrQbAdjc/hbur3vesIzRsXbWtNyLjXvrkxE99XwqXS/PhfsmiM6dxdHvTh0 R57i9v6gB1LQA7r+g1+RKwGaOzNyUKWLMHACwGOKg7QG7AJdq7hDmqkZq7SY274FR5eR GjLkmvRHfj6gvygyEjrJ5VWLwwJx9DBrx5jK5kIbat/+gDJEKldBBwE/GgnlaJiq4Xok BzklGwbDJfI0Xk+MilTgYXave/90kjxrrTQw88rHos6w9V6+FefNeDHqpSLotojXMl/4 ZC4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=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=ssJGlg1oGJoAoNmahpvzUifrvZShZ1w+trFvMin6Wfo=; b=CcMdieAL5ll48RRsQJfmGqwuTojFH4ktxxY7zEyfAHxaBczqkNj1NQ7L4Lr/3eNobf LIK7G0jqFK+qZX7l1KK/yvhW8GJPRFshmFF12Mlk6EmgknA5sOC05q/uy1tAyM7tDgD2 BOm1UcqgUZXRfg+dhL8vZilnSLMi5NDclJVlIA2T1AC2SAWYm6ATGU7MygmeDFcFMnSA ij8kvvKmEKKpY/75U34er8Sy3GuB8ELCnCHPUQDUWUdDrGM+gn8KgBj08GlCM86Akagw wBBWvfofXa+bCn3wqVNxdEJtWNCxoW1cKiH/rV9O3FRjYdDQsd6CFpBJIgeviNDFIHgF +FSg== X-Gm-Message-State: AO0yUKWRJGmjcBVvfDmKILUXxumWSdIZqPTbV4hdSmJjNUq5Y/+19e0H oG7OC16wA08GppGflNVtyWgJYo9SxVYqmHRnbCQIqQ== X-Google-Smtp-Source: AK7set82iepU4eiAHJbFZ2mFlozqbZ7xyh+Wg/Tqaqo2vfuzD1ac5XoeSp0/mCT8i6TBjk9053/XpbxtE7f89OS5O0Y= X-Received: by 2002:a63:7901:0:b0:4d7:fc60:7ec1 with SMTP id u1-20020a637901000000b004d7fc607ec1mr721302pgc.106.1675793994841; Tue, 07 Feb 2023 10:19:54 -0800 (PST) MIME-Version: 1.0 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> <20230202003034.cgtsz2mixfcige3p@box.shutemov.name> In-Reply-To: <20230202003034.cgtsz2mixfcige3p@box.shutemov.name> From: Jiaqi Yan Date: Tue, 7 Feb 2023 10:19:43 -0800 Message-ID: Subject: Re: [PATCH v9 1/2] mm/khugepaged: recover from poisoned anonymous memory To: glider@google.com, elver@google.com, dvyukov@google.com Cc: kirill.shutemov@linux.intel.com, 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, kirill@shutemov.name Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 67E40100019 X-Stat-Signature: wi4y8feojwc9886szu6itwib8zrusdrm X-HE-Tag: 1675793996-918882 X-HE-Meta: U2FsdGVkX1+0ltePms/bVeod70R3Xlic4NTehp0rteYDz0TWHeMdqIVQIrgzriv96qNbbU5QHGu1yl6Ou0iKgjsjj5kAz25v6zhJofd7/Q9EzVfntKom1d9/dna79peZGDwMZeXeDm5SlNNKYc9YGUKtnX8zyO1Xdz1pGcOfFQf/CF50fZxKdCZXNUQZbRYQjHSQy27evts70hNWS9UzGXNPB4WXIjPAzpSFcIVoi1Sdp1Y5vuyJlKW5usqo6W/8+z6JyBocfNOy6vFW1o/CaJYrgWLFf9I8/3AfKG6Jxg01jt5nwgaEmU+O/iZtzjd9mwWm4g+IWi8B32+JLCdjbVOLEuLOt6LrVsEssOG0tyNsXG7xKKCGrE/bPz6BNgfn0Y/zu3n+veHIszRYiOGVNvonJalSgu9BodgpmUrtp8GDj6/boHzKO3biedbdbbvYebSUeuoBdRTU/v+qxprxIr3S+nb1N32uwHA0yCF6HoPZgiOd7+cEcY3nPhiinLwyr19Amd1g3MEMtDM0yjcxDw5kBpt8YxM4cYH6XTTSp3xE7X2MZ0ZdN1DNOuqfWd9fiiZFfS8e+VEyfaDL85+zQ5HRAm5aGYTGqavccqOiKNXjA7L5SNdOTPCqv/LLFIasPOTbYKkA3UWW5T9PaCxY94G4pvsUzuNNspRPSRfNesNflDCLrCWfrKIF4OSJS9m761IQYOBE1QYI4OaMoNRHXISoSccsMZnWmCOql8e6lLYYxGMt8JkV1rrlZHGG1RxFeAJ/RbXWN90STi87Lq2WoGxsa55WwNg2M/Sam9iX8JLpr6iuaNRy7UhqlXXIWoKaJCjxNJGzRSMYWrAh+ROwnhmKAWDr1aztcHs2E7Lq7efXLQqMsEJN4iedaLpRwvtJ/eluWDZb6d2ApyR3Ms6ca7eSBV+motE1ulNcGy4JFulZjXtVK9PC0jti0EnKpmxVHsde06JcQVxBBtadO01 2M6vO9p6 NE2p3QqceEvQ+MWlM/vXJFSxi3dT8t6bAIdDdnTI+so53/VcZZu2B93TnYjCNZ7hvUUI/W+iRqW9OVGNdQghxot7H+dTIm5OnAMFDA0psy4BOfgthQw8GC++32rrVGP3Sz1utMpFYrU/srqkYNUxpIypZ+KNUNTzZp6nQnHMDjR1mp68= 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: Pinging KMSAN experts, for the general guidance of kmsan_copy_page_meta vs kmsan_unpoison_memory On Wed, Feb 1, 2023 at 4:30 PM wrote: > > 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