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 83B26C83F1A for ; Mon, 14 Jul 2025 15:03:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 274958D0002; Mon, 14 Jul 2025 11:03:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2243E8D0001; Mon, 14 Jul 2025 11:03:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 112A88D0002; Mon, 14 Jul 2025 11:03:13 -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 009828D0001 for ; Mon, 14 Jul 2025 11:03:12 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id A8203160215 for ; Mon, 14 Jul 2025 15:03:12 +0000 (UTC) X-FDA: 83663188224.05.BFA3007 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf27.hostedemail.com (Postfix) with ESMTP id 1666440013 for ; Mon, 14 Jul 2025 15:03:09 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=CM+u0ni9; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf27.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752505390; 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=lwmzTKO/GSYqR+lG0EQi+tXrUbMLT5Q43haASi9H4ls=; b=BRpo7pTXrNb0dYhaXbJJdQ4clyTJffoDWYrVmwrtHn17hPeUhon/b37lerRoVarKU6hRv7 D8MnRCdFZslLUMu/7HMbyJkMA+kmv/eJpowwjy+auiBN53BaaAreM4pnl+o5Jr/tbIdeLa ng0t7PdJRodY8vtfCZOig/Fy1P7rOrY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752505390; a=rsa-sha256; cv=none; b=qcWKoFTn4iP4ggRhOcsd/b1/sUcD7a6Mjq+hYVxJIUUpMS5wugBUROanaRmkL6ngdz+esv E4ukmrohhHtPa9G50ZRtldxC0W5Taq4zy7wOGtzfXpRcMVZ/C2G21Qssp3pBq45q3htdfs JXjjKkj8cRdjIMwCW9mnpDNrwcR1mOw= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=CM+u0ni9; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf27.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752505389; 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=lwmzTKO/GSYqR+lG0EQi+tXrUbMLT5Q43haASi9H4ls=; b=CM+u0ni9r4X4/xiBNfoaN7uu3+eX/EPtZK42bCWB2iLFT101yu/bYrPVGBKt8ePPmjIt5B rCdVNBqJEfJC3VPSp2HVT8WWwrD4W04p6hsNEVsWH9b/4GqZ2DfrRX3yh6NUfh+7wpoqHc ehMPrjJ5vwiOksY/fc2GgKPtp1rSaQ0= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-515-8KqKVHVzPFiHB6KZEb_jOQ-1; Mon, 14 Jul 2025 11:03:07 -0400 X-MC-Unique: 8KqKVHVzPFiHB6KZEb_jOQ-1 X-Mimecast-MFC-AGG-ID: 8KqKVHVzPFiHB6KZEb_jOQ_1752505387 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-451d7de4ae3so28483665e9.2 for ; Mon, 14 Jul 2025 08:03:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752505387; x=1753110187; h=content-transfer-encoding:in-reply-to:organization:content-language :from:references:cc:to:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=lwmzTKO/GSYqR+lG0EQi+tXrUbMLT5Q43haASi9H4ls=; b=hlWc3cBxBn6N6XGekTyJv+VsM7p8i+G8uvHI+MuWB/71U0uDiOWI+lf8dmM9dhhtGs 1m08Nu31RioAfX1x29uGzMFKbILJ8KaPnOlsZetu1ogkiqCfVtMnqGkhUa8XyPay4a5M Qp5i7vEnlXEgPtU4V7gEUAR/IPNvepbZC3SapqKHNYScjcHOO+gqSV0RuUR3pLEtgDet dujrKBMPIGsGen5nCuC3ZR9aV6WkHgpFoBOy2qe3wxgcAgjCqNKH7hh8Oc0yrY68eaZZ +63xJJk6zYAMk1uvQa4FDCZX95IPGpkt995i3uxvuIDypr5v8NGE2HWpWVx+hu4dVaIu 6FQQ== X-Forwarded-Encrypted: i=1; AJvYcCXo0sG/qDcKfaYCuG+DZLFQCQFQAZ392Ls5mmTPv2NRoLiAW6w46hLLozDH3T8ARPcpsbilyZiP8Q==@kvack.org X-Gm-Message-State: AOJu0YxwbnN8pJiil3orAuGxIx2tI3qxIuk506x7I50iFS3ac1FPGs51 dr8Kh5nFkf9DoiodcMnKAQY6U6Uva/ehcsxQx3EyBDaIXuPSD72IO6ywpTM/jl7TvhOxwRngSWN Vh8eSfTgNgGHycMUNtvgz71I4PSFiSufl+GNZ5mQIPBdQgiPEfSAV X-Gm-Gg: ASbGncv8E4jDkRQs/cw7eJ/2P+U+eyFiJPvUep9WKZ5pjHkgcRiLjvH8pXogIHhVdx8 MHyEzGRrAzAy1XBhcVYIHoK7kvlz/pqAxS9btUCyOq4a5tM0zJoFLnCxJe3IbiZ+g+n2QohiUgv fYRzRvjoz3SnKUsfkv8G0yccKKdIpz7wI64N0Nh3Zw3VSVFioygIwgQM40eYVSq5e2O5bpMa8t7 6UVfwu8rEy9KRjpV0oi80rC+uhWVBFVVLXxykGPaiO0iYkeOHYH4sUMUuCr1Wh93gE306SAeOxm UPWLqb/5rTbYJWkMTXonbXoDuqLMHnXlhI2c54Vf52dOvu1INVRI58icefPxXxP3+gDfjQ9cYln iqiVs4FFWk8pQcP3z7uv/3LsmjqumvzHbgLV/BoZw1Dj1Rj7rSEWNSZY1Hmp3keku X-Received: by 2002:a05:600c:6304:b0:43d:46de:b0eb with SMTP id 5b1f17b1804b1-454ec16cb2emr137861675e9.12.1752505385734; Mon, 14 Jul 2025 08:03:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGnaDWYjHfj3OLHTsn1djM3rKSwDzbTsVxLu0KMQAFJlVPHgfDa8igMCz9eQPvEPmF5axsR0A== X-Received: by 2002:a05:600c:6304:b0:43d:46de:b0eb with SMTP id 5b1f17b1804b1-454ec16cb2emr137860775e9.12.1752505385077; Mon, 14 Jul 2025 08:03:05 -0700 (PDT) Received: from ?IPV6:2003:d8:2f38:ca00:ca3a:83da:653e:234? (p200300d82f38ca00ca3a83da653e0234.dip0.t-ipconnect.de. [2003:d8:2f38:ca00:ca3a:83da:653e:234]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-454dd474a9csm134751645e9.16.2025.07.14.08.03.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 14 Jul 2025 08:03:04 -0700 (PDT) Message-ID: <0925c64b-c721-4dc5-913a-c43a94dc64a3@redhat.com> Date: Mon, 14 Jul 2025 17:03:03 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/5] mm/mseal: move madvise() logic to mm/madvise.c To: Lorenzo Stoakes Cc: Andrew Morton , "Liam R . Howlett" , Vlastimil Babka , Jann Horn , Pedro Falcato , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Jeff Xu References: <5d932ec1f9d0ea115aac65067e4cb8241a06e791.1752497324.git.lorenzo.stoakes@oracle.com> <5e21df9f-7f75-412b-a173-fe6da49952e5@redhat.com> From: David Hildenbrand Organization: Red Hat In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: kaTZF2hV-zqUkqd4b71c5evSYIX2duaufcYhV-ILqIQ_1752505387 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Stat-Signature: 6qe9h67suw896ia57a3oh53fhd9o1uph X-Rspamd-Queue-Id: 1666440013 X-Rspamd-Server: rspam10 X-Rspam-User: X-HE-Tag: 1752505389-736272 X-HE-Meta: U2FsdGVkX18ySJPlHMW1iRqikQv6pGfcalG/2etBqjyhaqvnmQhLsOXnXw94L7mATwVX9ui8X3iq1HD8bxwP5XYXltsERNIgpgaIBs1jSCqo4oPSw4V3v6cd9ULZ0hvfnULrDB2f9E07hfVANiV5McHy9IOdjLor/wCxb6e6pI6/Yz6DyeVnqmDK3odz16eAjIHIRrLikfIVw95tWC2lEH19xOGJ505If0nlJSgdlxxdsLYg+UK259Ck14Lpg/cgVzcX5gFa3aAqPI17NNSR5UOdcRF8YE9ENf0c9e2WIukH+7wIev0HR6bplBCGJRXpYSkDJkgf34uiiIQrUzeYfENI6UyZjlOofYLeQEhmynoY5xlGYdhdZRC/KJIG3pU88YOwtVvHr4V1AYznI34W/zLJqgYHsJnp0vIgXBy+zGt0KGwuXZhXZ7XcNz9fqBZF8PS/268XNep5+nWOtOYfNGRpX6rRFzNrE7pFrd1cxlT15GtC3qZY7sR8n5pL9Yl3ANK7edN0H4lTcL625pHAuiNSaqv+h9ZET4BNUX7aFAoQmZLMn8c1KeOXIV5q5otHXhlpZgMlcgp5caqHd1d8bIEiRdBl04qPJQgg4IkpRFpt60hZqw14A67idYsVG/s0sY/mWg2x4SvD/bHQTX2jLKBUikfX0cl5XHvDnIjDkihxk+yDu7oBsUfIBuYtmpw6gEyGrsuqpC9h2SLDD3J/paAfkntyeDf1SLiQTdrBC/3Ds4ICex/J38h0ppE41hteA5TWCYYd44QF7nld4sC0+xCswv3ILFH/e9THP4yvFZ4qg7yU3D02fno/DRm5IUO5xwO+fGKC8K/WwCt0plx3IOhEX4Z/KWKl30V9XvqrDFBLolG2GBGWuS2ICfmxkJZye8Rj61Jv3gFqYLq42XzVGxdKlNDMekbLdn2RPrknWiF8SjeCvvfTpi1E/Zb7RKpu6skmLXnkeCde/S46sQJ vwj45dFX zZpLDl7DjP64AHKZB69xuaodXoX3Ltw94Z54ioT9owUdQLLfhjYWzuvIYgj3IDlW2fFbVKTGtAtOP8phnUzMuytzFvl0ewZYKWStAI24Ucp6ZUwUdQ5ICmWa9sUu7HoEx2jsOPRaJAJJ8Ne5L0xLiBXRceAxf7waQGKN03f//6fav3zVU1Jr7t0aaByBaFKZmbikveUsfIDyd4ymod/Cq9lmQjzxMTmdd9N9OGkva38NVtey5+XTd1K7ICWDSaExWsB1JqPe0sx72ahH4yLEB1ala30PonJD62+2In9elyZcfAQ782Y6IcZ6BZlmh4wXIQOqR3ObDfYJbCuzEkARB1CAhlo/dFp9VWOiNc2rvzUZjY9at014ME6hMgjaJ9ch2Vl8Yz3g3q7uFQeaELLsRHFeJTXL6WrVqjYZa/4EDwKJVNc7XLgzvzX/ozFqPdOR+CkKTAKHF8cPlTMAXJREt9LUHpA== 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: >> or sth like that would surely clean that up further. > > Well, I plan to make this not a thing soon so I'd rather not. > > The intent is to make _all_ VMA flags work on 32-bit kernels. I have done some > preparatory work and next cycle intend to do more on this. > > So I'd rather avoid any config changes on this until I've given this a shot. Sure, if that is in sight. >> >>> +/* Does the madvise operation result in discarding of mapped data? */ >>> +static bool is_discard(int behavior) >>> +{ >>> + switch (behavior) { >>> + case MADV_FREE: >>> + case MADV_DONTNEED: >>> + case MADV_DONTNEED_LOCKED: >>> + case MADV_REMOVE: >>> + case MADV_DONTFORK: >>> + case MADV_WIPEONFORK: >>> + case MADV_GUARD_INSTALL: >>> + return true; >>> + } >>> + >>> + return false; >>> +} >>> + >>> +/* >>> + * We are restricted from madvise()'ing mseal()'d VMAs only in very particular >>> + * circumstances - discarding of data from read-only anonymous SEALED mappings. >>> + * >>> + * This is because users cannot trivally discard data from these VMAs, and may >> >> s/trivally/trivially/ > > Ack thanks - Andrew can you fixup? Can send a fix-patch otherwise. > >> >>> + * only do so via an appropriate madvise() call. >>> + */ >>> +static bool can_madvise_modify(struct madvise_behavior *madv_behavior) >>> +{ >>> + struct vm_area_struct *vma = madv_behavior->vma; >>> + >>> + /* If the operation won't discard, we're good. */ >>> + if (!is_discard(madv_behavior->behavior)) >>> + return true; >> >> >> Conceptually, I would do this first and then handle all the discard cases / >> exceptions. > > Hm I'm confused :P we do do this first? I think the idea with this is we can > very cheaply ignore any MADV_ that isn't applicable. > > Did you mean to put this comment under line below? > > I mean it's not exactly a perf hotspot so don't mind moving them around. I was thinking of this (start with sealed, then go into details about discards): /* If the VMA isn't sealed, we're all good. */ if (can_modify_vma(vma)) return true; /* In a sealed VMA, we only care about discard operations. */ if (!is_discard(madv_behavior->behavior)) return true; /* But discards of file-backed mappings are fine. */ if (!vma_is_anonymous(vma)) return true; ... But now I wonder, why is it okay to discard anon pages in a MAP_PRIVATE file mapping? -- Cheers, David / dhildenb