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 A883CEB64D9 for ; Fri, 7 Jul 2023 13:38:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 03E4F8D0003; Fri, 7 Jul 2023 09:38:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F2FEC6B0080; Fri, 7 Jul 2023 09:37:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DF7FE8D0003; Fri, 7 Jul 2023 09:37:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id CA20F6B007E for ; Fri, 7 Jul 2023 09:37:59 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 824DBB092D for ; Fri, 7 Jul 2023 13:37:59 +0000 (UTC) X-FDA: 80984919078.05.5954440 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf03.hostedemail.com (Postfix) with ESMTP id 6A11D2000A for ; Fri, 7 Jul 2023 13:37:56 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=FnPye8Ki; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf03.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688737077; 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=KhFL+CdFjQoImTlMil1bTnD3T/a7M0oGc4+Qhg9o8tE=; b=Me39BwJI4LphBcy6ogxvigE3CON6eO41OaTycdORprvGFSl7SEy/U8q5/8x4GbOgzZ8yO5 YqbxowJRy4hj8+wktS/xvicPkM6yS6guesZ/JlpMo/gN7hfuru74expKQC+qGbAdTw1eAm KC9IlSzQwe15Wk8diRTgah+JWOrcp3Y= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=FnPye8Ki; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf03.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688737077; a=rsa-sha256; cv=none; b=THUb9/6NqQQtK7zjTU0HQ8CkVNgAZ+DAjU6IN0eQcwkAWS//TAnamyLJrMU0ekYr3a52aG 60QfyIc3CjgXhTvWhBPhOD0/4wWjItAQLi2ruxvDXLjdWqImg9N5BUfm8jX1G7enAwk92h XBuE+KriSwggFtJu5H3SYrmrizBigLY= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1688737076; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KhFL+CdFjQoImTlMil1bTnD3T/a7M0oGc4+Qhg9o8tE=; b=FnPye8KiCWm6PmnuOOwrvEltfTai1e/Vq3PHs5YbW49Gkoro/aqWUXf70X0PvnyXZXKJd3 kQR/d0L59v+9ZWW9q2UpMmYNw/+JJFhLbrzRlppC5YTcqb35ogtCQ+8EQrJblMlgdJKuq3 zUiPoRbCRjV2725ESTpdWhDN7hPqDH0= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-212-v-SnR9OONYOE5M0a3ZR6ng-1; Fri, 07 Jul 2023 09:37:52 -0400 X-MC-Unique: v-SnR9OONYOE5M0a3ZR6ng-1 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-7673887b2cfso48261385a.1 for ; Fri, 07 Jul 2023 06:37:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688737071; x=1691329071; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=KhFL+CdFjQoImTlMil1bTnD3T/a7M0oGc4+Qhg9o8tE=; b=Ab3HiOXqBgScJfbRnvvKWq67h4KjFjVmQe3KZSK/iHxIsii/94JvBChzTaygcIvGWd /M8jxA97/rFk+It+46IBwm5dhiy0BcidxuCw2T6VEgkv7PuzdVDzgKXn0WBhUCYDKlPV 2Er05imB4q9GG0uxmA+mqkoikp/yPFYJymqifd7RCFpkI8VUtKVnlR+WWwePGGv9mHQW v640NqGETCZlpz3KS5wHwz54gvr3CMVxQjsPUoi/QKwHdPKNxwZsiQ/YeTQJna4x1fMw /Ii4/gBPtKXKnDS+uM22h7/x3Zaet4B/t+k/LuwoQ1kySMK7LJF5kzXhM5iVBApJI9N1 d1MA== X-Gm-Message-State: ABy/qLZG8UoLUTI3iCB0okRQ86i2GKzdG2n09apukw6TPjqs5rWnvCnQ I9X6lz9D48awQy2pv23IJ0mM1Uzu4MedJjmf/34W2tGnQoBRaSqWx4nYCGemYCMZ1341VOnR0in ODpHvN3V8LJs= X-Received: by 2002:a05:6214:2aa3:b0:62d:fdc4:1e8b with SMTP id js3-20020a0562142aa300b0062dfdc41e8bmr5339515qvb.2.1688737071613; Fri, 07 Jul 2023 06:37:51 -0700 (PDT) X-Google-Smtp-Source: APBJJlFC170q8lMmSxujK34gxQ2iJ+dYHuBZDi6VgSNqYx5ivEJMdyfwY72N3ewBcYtgbwSE4Hi/HQ== X-Received: by 2002:a05:6214:2aa3:b0:62d:fdc4:1e8b with SMTP id js3-20020a0562142aa300b0062dfdc41e8bmr5339498qvb.2.1688737071306; Fri, 07 Jul 2023 06:37:51 -0700 (PDT) Received: from x1n (cpe5c7695f3aee0-cm5c7695f3aede.cpe.net.cable.rogers.com. [99.254.144.39]) by smtp.gmail.com with ESMTPSA id o28-20020a05620a15dc00b00767b37256ecsm589724qkm.107.2023.07.07.06.37.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 06:37:51 -0700 (PDT) Date: Fri, 7 Jul 2023 09:37:37 -0400 From: Peter Xu To: Axel Rasmussen Cc: Alexander Viro , Andrew Morton , Brian Geffon , Christian Brauner , David Hildenbrand , Gaosheng Cui , Huang Ying , Hugh Dickins , James Houghton , "Jan Alexander Steffens (heftig)" , Jiaqi Yan , Jonathan Corbet , Kefeng Wang , "Liam R. Howlett" , Miaohe Lin , Mike Kravetz , "Mike Rapoport (IBM)" , Muchun Song , Nadav Amit , Naoya Horiguchi , Ryan Roberts , Shuah Khan , Suleiman Souhlal , Suren Baghdasaryan , "T.J. Alumbaugh" , Yu Zhao , ZhangPeng , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: Re: [PATCH v3 4/8] mm: userfaultfd: add new UFFDIO_POISON ioctl Message-ID: References: <20230706225037.1164380-1-axelrasmussen@google.com> <20230706225037.1164380-5-axelrasmussen@google.com> MIME-Version: 1.0 In-Reply-To: <20230706225037.1164380-5-axelrasmussen@google.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Queue-Id: 6A11D2000A X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: ndy7pazx6se8ks94g8688bxg34999o7y X-HE-Tag: 1688737076-32527 X-HE-Meta: U2FsdGVkX1+zV+7XqkYtvf+vAixLCx+WrIpI8UhkETECTKdX/MAUOSb6QMy4OdvVSG431eNPvnJRjuvRVEkxxAeDIYn1FyestdGtw8Xn1FrRNOYI+BEry0POiGglV+gYofKfqsdO/duWXhmvoHUZfVmemFi4+mDbIj+nSxNS2r2LofT+13hzwcL+/cL1nQUFMbKo8Er4uXmTGOQG+p2v+xAYPpUwn6hoISma8jF2m4Ltfv3Ojcd1cqyTgkEzgk1DeOqz7U99zBxR1NvUvZ3H5qM3ZTIo4f4yNMVfTjgqRrgPQl90Ixh9yzgEqhMro5tXJPfrXGQKyraElW8ngWfYZSHEyvH6x+TySMY+eOKoccn7Lhf4DWGYcMAVsZcbTf1cfgCi2YEJ9Ix1M4062zPL2CDIeeLa9dNWsCdB37k7brdXGA+CynPK/Vg0EJRUohv/F8GHN78ogVAELTMjlSEwI11A7MC5QBoyEDTZC8htGXkpmGXkwtCHp7oiMqDDWYRibVrWgG5XVulixkMQ6wD+EwuWygzDkGB7u/wRfCBw9tthLPPTheWVFoYvbwoptPzbx/DeI5eWfbjcqsqQLOOgB3HkHaOz/heG70XNFUA2uaHreVr1ih3Y6fbfqQg37yJZwgmO92KOn5cvgeqWCUzncbsmRUEV2bPOG8GYcVcU8R+/ebBQ/74xHLE8UlrmfU/B88frp+/ESndvR3Qgkpf1lAamxq4vQxQ3nu8W2HbdgC6y5PbnsJ0D0iffyvQsveHPjcAsDJ5NNtzS0PbYxjWdZ6aoi3GwLztPQBVaA7kd9TPxuZRp0/0gPbFaHIxxaIPPtKEUWf8t2EjV+tIyKco0iyMHy2QoA4tYv8zh7aUU71b76XuJY4/JConv+Io3Z91GU4i+7QSUzeWRWOuRG/LPueUvnghfmScaZqKGHzNSUCXle+RIgLzrvQKKO1zZ8n007J3N2YaLRYAhB0HsMnK Sk1zKhSA zEOh1npvaEVV34HjXSHJ6KO2UWI+bu+7MvU9ZbxOvCVjb/k50f0o0hvPTa1vBHE4Qe9jwqyApOKSon9m4gHNqVq79pmJxMq7OcMggqYd+Wv6BunnVmpGoi/moaEuWUSN3H0aehVCy9UtVkw7mTAq+aO+r20AVkwO65/5jf59KyxwsFK2Im3Bv3ChNlQrnS1gnRYecyW9zgzptjeCroNZ6fAlrw/sZEvzN2TaTS9yWchyllcm2Co2UWGizMu1E8iBYlXOXN1mfckq3hl0Pzl2mLM1pPAx/RqCtjNVDcv8B4c9lppovCZURamLdHmubnI+k1/g3hNGkuD8n8H9jFEGnqW7TNybjd0Al7IjZNZTh/Gb9bFa0DEXEN6qlh/07ZUubwZCncvpVLh9dX2PfflQNa10kBOCqskYcgu0bvjv0LgFgPGQmVa6qQ6asKQOaSCOJxbdZJ2OkRzds3Uk= 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, Jul 06, 2023 at 03:50:32PM -0700, Axel Rasmussen wrote: > The basic idea here is to "simulate" memory poisoning for VMs. A VM > running on some host might encounter a memory error, after which some > page(s) are poisoned (i.e., future accesses SIGBUS). They expect that > once poisoned, pages can never become "un-poisoned". So, when we live > migrate the VM, we need to preserve the poisoned status of these pages. > > When live migrating, we try to get the guest running on its new host as > quickly as possible. So, we start it running before all memory has been > copied, and before we're certain which pages should be poisoned or not. > > So the basic way to use this new feature is: > > - On the new host, the guest's memory is registered with userfaultfd, in > either MISSING or MINOR mode (doesn't really matter for this purpose). > - On any first access, we get a userfaultfd event. At this point we can > communicate with the old host to find out if the page was poisoned. > - If so, we can respond with a UFFDIO_POISON - this places a swap marker > so any future accesses will SIGBUS. Because the pte is now "present", > future accesses won't generate more userfaultfd events, they'll just > SIGBUS directly. > > UFFDIO_POISON does not handle unmapping previously-present PTEs. This > isn't needed, because during live migration we want to intercept > all accesses with userfaultfd (not just writes, so WP mode isn't useful > for this). So whether minor or missing mode is being used (or both), the > PTE won't be present in any case, so handling that case isn't needed. > > Similarly, UFFDIO_POISON won't replace existing PTE markers. This might > be okay to do, but it seems to be safer to just refuse to overwrite any > existing entry (like a UFFD_WP PTE marker). > > Signed-off-by: Axel Rasmussen I agree the current behavior is not as clear, especially after hwpoison introduced. uffdio-copy is special right now that it can overwrite a marker, so a buggy userapp can also overwrite a poisoned entry, but it also means the userapp is broken already, so may not really matter much. While zeropage wasn't doing that. I think that was just overlooked - i assume it has the same reasoning as uffdio-copy otherwise.. and no one just used zeropage over a wp marker yet, or just got it work-arounded by unprotect+zeropage. Not yet sure whether it'll make sense to unify this a bit, but making the new poison api to be strict look fine. If you have any thoughts after reading feel free to keep the discussion going, I can ack this one I think (besides my rename request in 1st patch): Acked-by: Peter Xu -- Peter Xu