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 96842C25B75 for ; Fri, 31 May 2024 12:13:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1F2DF6B0095; Fri, 31 May 2024 08:13:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1A2EA6B0098; Fri, 31 May 2024 08:13:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0916C6B0099; Fri, 31 May 2024 08:13:30 -0400 (EDT) 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 DF3046B0095 for ; Fri, 31 May 2024 08:13:29 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 6C7411614BC for ; Fri, 31 May 2024 12:13:29 +0000 (UTC) X-FDA: 82178581338.19.F73C8EB Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf02.hostedemail.com (Postfix) with ESMTP id 2A26980015 for ; Fri, 31 May 2024 12:13:26 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=zx2c4.com header.s=20210105 header.b=NmsH7RWJ; spf=pass (imf02.hostedemail.com: domain of "SRS0=JYW2=NC=zx2c4.com=Jason@kernel.org" designates 145.40.73.55 as permitted sender) smtp.mailfrom="SRS0=JYW2=NC=zx2c4.com=Jason@kernel.org"; dmarc=pass (policy=quarantine) header.from=zx2c4.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717157607; 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=IV/gUlFTczwkw63MVUJ0IOnRq1Gl4NdBa5kuDrSn6iw=; b=K3w1MlTI6LI1U3aSGVVMU0HRWGfndyY3BXtDatJpeaWgQIim+oSN4yUDBvQoldt7aY4Wxk 4uNHj3V1jwiDpLKbiZ8SjTTIftakXCSvRltYAHCJls/B0j7zvctrDGUIUe6R9/HvgZ2IyZ hdsqDp2gfHY4CwTLMqs96gwCczz9l8w= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717157607; a=rsa-sha256; cv=none; b=DCRy3UFe0T+lCBdwr43oEkmc4pe7uQskIeW+dp+CX6vBdB1aLrigepa8/P1xtrF89pOp6K Z2Ofq74DtM95flYDrwZly1ZRFsUXB9J/LpwXpQEE0OoXoln5NOL+P8MOyQbcwp6qoKdhae Fs+uhTV/Fk0puQSl4lK/sWSO8GTfYL0= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=zx2c4.com header.s=20210105 header.b=NmsH7RWJ; spf=pass (imf02.hostedemail.com: domain of "SRS0=JYW2=NC=zx2c4.com=Jason@kernel.org" designates 145.40.73.55 as permitted sender) smtp.mailfrom="SRS0=JYW2=NC=zx2c4.com=Jason@kernel.org"; dmarc=pass (policy=quarantine) header.from=zx2c4.com Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 96034CE1C53; Fri, 31 May 2024 12:13:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8895DC116B1; Fri, 31 May 2024 12:13:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1717157598; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IV/gUlFTczwkw63MVUJ0IOnRq1Gl4NdBa5kuDrSn6iw=; b=NmsH7RWJ9ZrOgR/Eqt4Mp8/kZUcNm/VXQDo7eL3+4tjJeLE1VV7M6J7f45g2TbdFYf2p1G K5SnFr1i/TrSEc3/FqZG44P1ju1b3hSm6RNVBwh4JuxDhmtXiPkeacOda94Ah3CXelPhu5 JlVInX41OuD4+LxdVPUgLipVozEIcko= Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 790e363e (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 31 May 2024 12:13:18 +0000 (UTC) Date: Fri, 31 May 2024 14:13:15 +0200 From: "Jason A. Donenfeld" To: Jann Horn Cc: linux-kernel@vger.kernel.org, patches@lists.linux.dev, tglx@linutronix.de, linux-crypto@vger.kernel.org, linux-api@vger.kernel.org, x86@kernel.org, Greg Kroah-Hartman , Adhemerval Zanella Netto , Carlos O'Donell , Florian Weimer , Arnd Bergmann , Christian Brauner , David Hildenbrand , linux-mm@kvack.org Subject: Re: [PATCH v16 1/5] mm: add VM_DROPPABLE for designating always lazily freeable mappings Message-ID: References: <20240528122352.2485958-1-Jason@zx2c4.com> <20240528122352.2485958-2-Jason@zx2c4.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspam-User: X-Stat-Signature: ywaxzohmwd8qww3tofbnofti8bbrjqdi X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 2A26980015 X-HE-Tag: 1717157606-544135 X-HE-Meta: U2FsdGVkX18+jTlbInvRF0nIwXfvWAwHhVoPhZzoDaVtNoRvbfq6IHK3/C2Bmw6DdvZ/Ou3d1CMNBV7EO1HJxBPaKD0tX07DDuyIY4dBZ4SLjeFGnC2TH6aoxh70HCnj2I/hFYS91iPz/0v991cn2NeUuNm3pjD93kHgeeYRijZFMZktNVcDy8XjT4x9mL/lNc8wbLZ+Wemby8Xp0CfBDh67YriyXFH17vAMyHUXZfMkli/HsIWUFoMZDoXYz8m19PisrI+SNZhbaQBOGLGFkda80MrB4z9bQh0azgUOPI2h2LbUdV8dj8t4v0KabMKjB+fVLJpBxoj91gY5quN8MTjgKf+lMM4kHpfLwzO4tnqASYmryiot+C33Q0+TxhhcNKeMNeH+i0MESbIP2idRiav0D+3450Kvy2zXDl9JEq06jc2UJ38pxc1CdpmwfUWAD/Zl0O8i1hoGbO06xTfVOvxJgv2+R03ABtG3k/0fnZpxE61R99SdQvv+e05uGKLtbJG89mxLTfyK6/AHtrwmwfbDGg/BrDg8AVlZnhE2mTGv7ESsctI8yzwCo0crUZ/s+rIfd6AAtGcpa050Yp32BGAtBFbr7BVKh20xZhTOuBpHZW4yCh9N0WNB8xDeoXKQwKzUgDrNF/88Knzm0Kh7AVOORQ7ZcTcb0JpDCKVj1E1Z1RGYgmeRO3qBYtOWSEZoB69h+fKuqUEciZYUh67L4YjCzulukpaYLNrRwh7HBZJPjWYPaccqte2GNTgk9OP842OkYWP/odA0+kVOaY67ZykgbbuvprBstxPvbtcEEdEl3t+Mdnj1nJ40UnRNGTIc8QiT7k40DZnSEVFf+24cJjsN7reoDUlua+qTYSq/m3sxa+h/kDq9/rX4mJZ1Cuw6OWivaSahI7b/oI9Y0CL0TNn/y65Vg/0jUgcPy44NzKAkR9ekYLEpmREYFWmiL9AEvHhVuMmcNUk7GoRWHDc OcAP9Hh3 1UwnPluT0M8RHJ4x5wmXkvR4h7HNQMejTYk9MtnfzgAXd5Ce/srX16M79B/XBoHvNArQZ76qWYEtlAMHUXDjSiwm5vkHH1RQMkFSUr1j260QjaTfTToLYROOsxrQ06HLfT6EnAqpy4vBp0FlzMlOjwJhOQcfNZgvK1jiUI7tB4EbeQEAeg4B2YqSmpcgn1kInnn3bZEzggyimvLbRZXzuI8NvQqRuRWwrHfaJixwzjFmYPH4qqAwVWKUVcT8PQrIUJWpjP9Nn9egyEQAeDP52cJODOG+jAOgdNcgCSJBqU6uszwNE1hdiqAXLv0aseYHLEnJ6/B7uhkhXI5bqVmUAuh2m+b1YGez0TM3581Sd/fKaqxXEj95kO2UOmMFI/lx9Y4Mi/d2xAxSoAKdUgJKeUCYhmwwcjUqcc9ihzjpz/DXN9kQMcwVY4wS3NCoIWN+9mpmHQhn0I07ucBjTkd99eD7MOG51mjglMX1tgGIc+Fxszh/ID1GleD/C2Utdgels+Xa5 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: On Fri, May 31, 2024 at 12:48:58PM +0200, Jann Horn wrote: > On Tue, May 28, 2024 at 2:24 PM Jason A. Donenfeld wrote: > > c) If there's not enough memory to service a page fault, it's not fatal. > [...] > > @@ -5689,6 +5689,10 @@ vm_fault_t handle_mm_fault(struct vm_area_struct *vma, unsigned long address, > > > > lru_gen_exit_fault(); > > > > + /* If the mapping is droppable, then errors due to OOM aren't fatal. */ > > + if (vma->vm_flags & VM_DROPPABLE) > > + ret &= ~VM_FAULT_OOM; > > Can you remind me how this is supposed to work? If we get an OOM > error, and the error is not fatal, does that mean we'll just keep > hitting the same fault handler over and over again (until we happen to > have memory available again I guess)? Right, it'll just keep retrying. I agree this isn't great, which is why in the 2023 patchset, I had additional code to simply skip the faulting instruction, and then the userspace code would notice the inconsistency and fallback to the syscall. This worked pretty well. But it meant decoding the instruction and in general skipping instructions is weird, and that made this patchset very very contentious. Since the skipping behavior isn't actually required by the /security goals/ of this, I figured I'd just drop that. And maybe we can all revisit it together sometime down the line. But for now I'm hoping for something a little easier to swallow. Jason