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 B4488E7716C for ; Thu, 5 Dec 2024 10:48:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 32B496B008C; Thu, 5 Dec 2024 05:48:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2DA286B0092; Thu, 5 Dec 2024 05:48:32 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1A25B6B0093; Thu, 5 Dec 2024 05:48:32 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id EEDCB6B008C for ; Thu, 5 Dec 2024 05:48:31 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7591981440 for ; Thu, 5 Dec 2024 10:48:31 +0000 (UTC) X-FDA: 82860580488.20.A21CDB8 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by imf01.hostedemail.com (Postfix) with ESMTP id C6FDC40009 for ; Thu, 5 Dec 2024 10:48:17 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=lpakdanH; spf=pass (imf01.hostedemail.com: domain of aliceryhl@google.com designates 209.85.221.42 as permitted sender) smtp.mailfrom=aliceryhl@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733395695; a=rsa-sha256; cv=none; b=2psBqHpFAgX7cP86GHAjoT2kB8k+Iqr4RdFDGcwGjb3r3iS8Klj8FWD1fU1YEpPIrtyA2q R9waXgbQi02+f+IVUK/4HS9rYt4PzVeHcWBSwiXT02ppDVQA+5YqFchIjIVpMV9hBNRbly 49b+56fKA72GJXrN6l7EFFUb1Xgbnp0= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=lpakdanH; spf=pass (imf01.hostedemail.com: domain of aliceryhl@google.com designates 209.85.221.42 as permitted sender) smtp.mailfrom=aliceryhl@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733395695; 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=IxTz9zgttBOQ+lH0ph6RIITGv0Uth2xEdLeUBCMC6Lc=; b=Bm2WLYLpR92ctWvn8k2veG3ZHjjaQhTlyDP2oqA3w5ohA6wQtMBemKSR7a1sFPHFcIPdtA /lChDglXBTdwwdZMCZLpmmfNc60Q+NOjAAZ+WgjRTALqg5HeUZkniAKYmZ+zGFoaS5lB1r K25IbTr8U340O8kzj8f80wyehgeanis= Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-385e0e224cbso376335f8f.2 for ; Thu, 05 Dec 2024 02:48:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1733395708; x=1734000508; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=IxTz9zgttBOQ+lH0ph6RIITGv0Uth2xEdLeUBCMC6Lc=; b=lpakdanHyIL+3JYlXucVg8jI/t7X/9bNj909zOW5DR4zc1WF4+VP/Kxj8CeM0cOFb4 OOSp2zpztoZVonerpFyIIUeyCMbo+udzrmJdJw1o7SE4kOh7YGo+6n27BesJArJW6Gyg AidY5TjiDfYqV7tauzA4t/hJXLO+hiQG0Bc9/HsIhxa3H5K1IFK0Mzy/LnlMBOjwOEP0 3Y5gX+cr1mbmUP6nocexORc8XZdlpFajqb8Nb4HGtSwAlhSj9biwwIPQjs6Gn++siJUI a3haJ/kwE797A6XCUa3hYO4/wvHT/tu09Ztqp6iv2rvcNMUtL5J6v5blmYxmHQdSrgWz 89SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733395708; x=1734000508; h=content-transfer-encoding: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=IxTz9zgttBOQ+lH0ph6RIITGv0Uth2xEdLeUBCMC6Lc=; b=grTzey3VdrytEnukD4pTXvFsyQAB798c29ZbTOcPCcnvrAuF8jKKxN/bZW00kbMHmv PZYhaXEeegY2aybt6arGWFR6n0qTHh0wZVo0BzMFgN7Xb5oZtpAr/2OoXncNJ2+OzUJP g0fqA7R02hSk97RUm5kToI+AxJD2Qfw7OKqjOR+/OPb5W/qgQiV4THOtD3uMOfpw8/s0 sgKmXjBhdhMpdKZ2PXpw3Fy887mq3XXlAsek78yNE4N6cYZPGS8iGDrcYBVBzVBnKl60 Dd6lVRSAuZz8WGltLjziDwwbNhwQJCILaIUeL/nyXnUp5uz7U1AAdQb2BWHQ5J5RLHft QclA== X-Forwarded-Encrypted: i=1; AJvYcCW19OO/iIvLBR2Few3SIPiV6abQkECDxQKKQvUpeJeRUDEWGGyzLzYj4uJWNHW6ZXc0hBfQP5Pxng==@kvack.org X-Gm-Message-State: AOJu0YzEdWKfxB5bYcMx7KzQsVS8NhLSm2XpvvqN+QaF6QKisQjtezOA 3coKGb/FJwbKhP+0GHD9ZUN18eGMfUz+vXWH7uYt92oG+Fa2kn8V2jkH3QgP6TaPDDylHa2erfZ S5PmZEObMc9XrmFEGC9kG4NZUq4vF5CytinkM X-Gm-Gg: ASbGncubB9b95soeT50p3NgVZO9FZaozhnlpi2teI8q9QT/tv3QII7V3v8ezZDrqwET tJ3j2O/V/pnHxkhUOB0g9kZzV/a6YSAwj4xANUIthYQnL/HTJEy8QA7rspqwSzQ== X-Google-Smtp-Source: AGHT+IEbHnZx89I6BS82qCs+JQ5CGtVbg/W2xXe2U7Jo5dGn4llV3v/F1YKlT4a62G5qQqKIfepFCQ6XOik9Hc67qu8= X-Received: by 2002:a05:6000:2811:b0:385:dfab:1644 with SMTP id ffacd0b85a97d-385fd3f502amr5477346f8f.33.1733395708123; Thu, 05 Dec 2024 02:48:28 -0800 (PST) MIME-Version: 1.0 References: <20241129-vma-v10-0-4dfff05ba927@google.com> <20241129-vma-v10-2-4dfff05ba927@google.com> In-Reply-To: From: Alice Ryhl Date: Thu, 5 Dec 2024 11:48:15 +0100 Message-ID: Subject: Re: [PATCH v10 2/8] mm: rust: add vm_area_struct methods that require read access To: Lorenzo Stoakes Cc: Miguel Ojeda , Matthew Wilcox , Vlastimil Babka , John Hubbard , "Liam R. Howlett" , Andrew Morton , Greg Kroah-Hartman , Arnd Bergmann , Christian Brauner , Jann Horn , Suren Baghdasaryan , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?Q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross , linux-kernel@vger.kernel.org, linux-mm@kvack.org, rust-for-linux@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: C6FDC40009 X-Stat-Signature: 3wnanj5hnsttzwg5bmt8ewmtqjeroi18 X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1733395697-367882 X-HE-Meta: U2FsdGVkX18aOBzhtcmJWPBhdhWLmUdJxM7YWETATuVYpx98n3OJQSYE8rkC71R/1U3hwWHnsidSC7lXoFH+jaK3fscncbycWuwUqVIjKqxl1uZQKMdUDyQRj1tNsDtFVzZnrpn6qgxbLXxRCCVFaFPUlHzpSNN5K6vIuRyYakKCYvnd19zoHpXdFY8A1kKdzXFg7Fv4em33Sw8pm5pEtecjNwRO9wWoTD0EZm0LfJrxoCz9yuFUr6lQEz5okPJ/b8pFHCJhpG0M19Ci3Fa3CZ5LgHRV5VNvEsyzPuwgOoD/DzDrY9ezB4qyVnWA5lsZC8rYpStSG4JQxcDffH4jy/6PGMzyBho8xtv/xIo4GywQqBZQuSUbEWiCkDXntj6/h4R7Kv6Un3OIemY7wrNHwtkwl5p3l8r19Lm7bZ9CGJO0JtuTEDO/yOiQJm8Y1wS8bpKOgEGyzIkZ7PN5YLGJ8k86A61nkFB3+12yzJw3gl1zjHUkgE4HuQDuaFljg2LI/0D2g8B85tgugVMehzuoOlmNHgY/SR31/J5YYpeJSORC1hFO6eWj4Zcvbaf1IQCiAIDBskb2d/1xfHINgLriuFxZKwqtakJSfdCewvt8nUr3mRPRHkup7379Ny1SscMUOS6ee8o5TU7qWKiEIuh1W7A3vrmFhBsr8NOMpoaPHCvOQH13SQJHm6mU1WAblzcWgbPAu0048YAobvDqeDJkF5DJsLw42tzs9kKyfksH3p6ofLaqKlfTzAnKlnnNV9XWJ5UkTMvH1WFokdtetgpEVavvvKYFXoiinLPKFaN35BGdGBV7nfl18vV97cwN4xhWh9MMOG42uS5wS3Wgy/IKLKEWDZHjtg7pCZ6lEagqtoxyux8OAGPtccpMF2thaY0TaNUzVUQPXLhI/A1j0XQRejRkAkr1TD5cc1+c3VXQRkrGlI1vawcGDVSgBQ9KFXmNAXlR9lH5Lm+ccBUXNw5 IaFXdonL 38lvwhf4/1h5FOpTUKsHlomRNkQNxjMovvPMFDkgfVssqt4yBrLuMv2MInosPfoEB2IQ+tfB9eMIvV41ZvoTb1AVTDCs8xVJjxRbS04ANc0jfvqnWNjtvBZq6IP1MxuFVfh9NhE+ZWnyl1IgOzQifaZMto5HjjGGFyGYQuSJcgvaEeH8B0PAIS/8jwViQ26KSNp6jaDGwjbClZ0ciQDOHRpLIq91MlEjgSwPsH4/MWBvgIKjogNUSFl4c+1V5iHBotKqcQMl858q3yJW7rlxmc1OsdYsCJ2ES+8I9rNpaxVVXBaOdHIGIW+Up2OxaVlvFRIfW9TrLHqyr77JNb9VsZb9dLk1vYVv78MLUbdo//RM6HO8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 Thu, Dec 5, 2024 at 11:45=E2=80=AFAM Lorenzo Stoakes wrote: > > On Thu, Dec 05, 2024 at 11:40:03AM +0100, Alice Ryhl wrote: > > On Fri, Nov 29, 2024 at 5:32=E2=80=AFPM Alice Ryhl wrote: > > > > > > This adds a type called VmAreaRef which is used when referencing a vm= a > > > that you have read access to. Here, read access means that you hold > > > either the mmap read lock or the vma read lock (or stronger). > > > > > > Additionally, a vma_lookup method is added to the mmap read guard, wh= ich > > > enables you to obtain a &VmAreaRef in safe Rust code. > > > > > > This patch only provides a way to lock the mmap read lock, but a > > > follow-up patch also provides a way to just lock the vma read lock. > > > > > > Acked-by: Lorenzo Stoakes (for mm bits) > > > Reviewed-by: Jann Horn > > > Signed-off-by: Alice Ryhl > > > > It looks like binder needs a way to check whether a given vma is > > associated with a given mm. I guess we can do that by adding a method > > to VmAreaRef that returns a &MmWithUser. > > Presumably this would be with a lock held to ensure the VMA doesn't > disappear from under us? > > I guess that's implied by possessing a VmAreaRef in the first place. > > I also suppoes that the mm having users is implied by you having the VMA > that implies a lock held on it :) That was what I was thinking. > So that's probably fine then, as long as you can implement some sensible > means of comparison between a known 'given mm' vs. the &MmWithUser. We can use the stdlib function core::ptr::eq to compare the address. Alice