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 0856DE65D34 for ; Fri, 22 Nov 2024 08:36:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7E3AA6B00BF; Fri, 22 Nov 2024 03:36:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 76B1F6B00C0; Fri, 22 Nov 2024 03:36:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5BCF26B00C1; Fri, 22 Nov 2024 03:36:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 366FB6B00BF for ; Fri, 22 Nov 2024 03:36:46 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 919E714097A for ; Fri, 22 Nov 2024 08:36:45 +0000 (UTC) X-FDA: 82813074666.14.311667D Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by imf15.hostedemail.com (Postfix) with ESMTP id 7E452A0013 for ; Fri, 22 Nov 2024 08:35:48 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WARBYRAD; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of abdiel.janulgue@gmail.com designates 209.85.167.54 as permitted sender) smtp.mailfrom=abdiel.janulgue@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732264535; a=rsa-sha256; cv=none; b=2ccVdGhHuApP860HVaE0E0NfPg6d4eolBZwzypERcQqOjFnAjPq2KBjzBC2u1zLMtsuO4y x1zNUd68+OtWul/DhIkr2duMPIMXTd1AzHNn+O+xkuj+bW4PM4AR4nqSh8IFr627Uu+L6u lGsd0HGTHu2OE6TqjHsji+TEFJ+xDL8= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WARBYRAD; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of abdiel.janulgue@gmail.com designates 209.85.167.54 as permitted sender) smtp.mailfrom=abdiel.janulgue@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732264535; 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=MBEAvvG9TOvTtZsp475mYKKe/GTMGyWrpHVozBadszo=; b=OY1RYX2A/UUW/Ju1vTmSJOSrXSYH1MhjiudWe36fz0Tq3MkZknofjhHXK/jVH+YT+4yr/u PU7YdDPab9d3sKRfC9jl4uFi8onsumTXu3y/NN91K3LUfCF2BB/I9iwxMbb9IxpeK5PObl CeaZgpTzlN/amVbRmT6AAbKD2X11JzI= Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-53d9ff92ee9so2069169e87.1 for ; Fri, 22 Nov 2024 00:36:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732264602; x=1732869402; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=MBEAvvG9TOvTtZsp475mYKKe/GTMGyWrpHVozBadszo=; b=WARBYRADqvtmUeolRlufVm4+38X3EEcPyp3sZF/YBnXHq8SvY/w9zainWSY4uSj+JW st5F01NNze7c2BwCI14i+wJaMr0S4X+I9VI7e08SAseTZciWhkGFI/0H7ILKf0TBK5c3 sW5pdVv9VR8YkbKC3d95Q7l1wzyW0js9KpMDqSz3h5fJfJZYxESGW72SX5PkTlTVcFel Ca0elnm59rHaaPAwIblBg2sKoBukSJFGWUPKy2BpQmyqtcRqRoRiYBfVujkAssAsxCyY fR+shvg2dIdaI3VKH5xCr+jpUJaFDCnFP1PZSLD6aopetfmsIaSr6sbzkILcgDlM8H6q HfFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732264602; x=1732869402; h=content-transfer-encoding:in-reply-to:from:content-language :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=MBEAvvG9TOvTtZsp475mYKKe/GTMGyWrpHVozBadszo=; b=F2P8ieQrrEFOu86iChtr2lJg4n4Ta5W8zwNgUOzfPqApxxX58vsT08szFXc5KwRqoC js+x8YfwSxR2QQIeSBusJjXGnmuEeb21d9zG+k4xnyE0knwcdUmqB+lIyJSchcFF6zAd 4TyAmq0v/zv9ahVkCil60NWtCX5KZzZLW0Xc+HJjJ3gtHrv4mRhDlK6WHi3CVmEn+UGX BNh6bAzAw9IfLjAEGReUXyMJhY8jZADz9pTyNYAB81LTDHqxf5qgZs1uFxkhE4rkFL8C zrClKLLAZOl83FsRYzY1HWPea6VEutgMESowtLBfB4w2gOeDT1jiWbuadRcR4cd85tH1 QEyg== X-Forwarded-Encrypted: i=1; AJvYcCVVLEjv8sYnGSNk2CYMwK+Dw1DnfA4Wr+Ng0JysNk8OsChqc7uMRgZMIQ/BG45oKGqeWR3Ps+reBQ==@kvack.org X-Gm-Message-State: AOJu0Ywgyg+FQYQb7sJKIOXEXKDiKLhoxY+sYLPEy2uzMLRz+DkJvOds sq20RqfITdvDPnqmwUhZvd0RlyTwINbyhcw16vff9emDKpQh87Zx X-Gm-Gg: ASbGncuemXB9QPD4Z4m7f7MOKpVSHg3op8LC263Zfrg5aDXl30gfz56XVGPtNK7fF0u pMnnrWxtLcX5jvRDTJS+aDuahc0FWkoR48n9VppHDQHuziZcIIj3hzhcT2IUcKPBaihgt2JNCuf /Gi3IUYGBn2kOgcYFC82TTPe3PSknX9i2KbLFTASP7QcQK1HvR2TqeTam2kp9yvJCBLohMDWsdB icBWDwDS0XtoqQO/OHzHLajHE933M8pZ3Fq1or73QN/LUtJjAt//wHTNji3OFTcz3zKLJfqLzjw TlRaoHN5/q29GK9AuRhV X-Google-Smtp-Source: AGHT+IGdwiR49anO91g2/YPv1iIkpUxFpZJxQBmEsHcwqIfap5HF3A+oVH1AnEJU7mnuAizghBvzdg== X-Received: by 2002:a05:6512:1cc:b0:53d:cd25:4a61 with SMTP id 2adb3069b0e04-53dd39b15e0mr811640e87.42.1732264601474; Fri, 22 Nov 2024 00:36:41 -0800 (PST) Received: from [192.168.1.146] (87-94-132-183.rev.dnainternet.fi. [87.94.132.183]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-53dd24811b0sm289272e87.162.2024.11.22.00.36.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 22 Nov 2024 00:36:40 -0800 (PST) Message-ID: Date: Fri, 22 Nov 2024 10:36:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 2/2] rust: page: Extend support to existing struct page mappings To: Alice Ryhl , Jann Horn Cc: rust-for-linux@vger.kernel.org, Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?Q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross , Danilo Krummrich , Wedson Almeida Filho , Valentin Obst , open list , Andrew Morton , "open list:MEMORY MANAGEMENT" , airlied@redhat.com References: <20241119112408.779243-1-abdiel.janulgue@gmail.com> <20241119112408.779243-3-abdiel.janulgue@gmail.com> <43a07c04-2985-4999-b6d6-732794906a36@gmail.com> Content-Language: en-US From: Abdiel Janulgue In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 7E452A0013 X-Rspamd-Server: rspam01 X-Stat-Signature: sqrskeqj3bumoujyejh33diuqwgjdfzw X-HE-Tag: 1732264548-73936 X-HE-Meta: U2FsdGVkX1/v6R6+aEKQzIrDYA4te97Smm7lczRLEBnjbHJTTFI1YqvthP1eOPZnaxz7slRM+sQgn3NBaMin/73h/nrQqLFNq2u1SkhdZRjdek5DZdkCL0CPfB7AV0Twc0oVefE/UQEV/Fv8uauXksq71dy/bXoATz3WJ5WsAsZhG1TlNJvnaBk0NB2ut/zV6RxtK5GXA7fzPsW8mG1NS1qHRHMox20HnbiGetfomJ5Fyuq5qmZoXVphVydc4hv3Ty1c9G+N3bX+Q0OOPeOAfk+0qGsk5ozT+pJp8U9H/fUu+VwuaBfv4B4hUicAppjOrqapHPhJA68Sz6D17/DQwiL/Q7GYbwmc5flI+ToVbsulOuWq2ED7WqeQTbDdoVa+tOvw5NMy8khUttlAaa7tMfvPLvqypgNRsLysvJqHSVDHAt+FiHhCMLFj6Xv6nf9SnhTU/k4W+gxrpPjhgjQd4tfVTAQl/8mnB6qEppyHPwLGo8+LOfsDp3ATkpy9HiY4espHfBQd7hKrTzQFKy5kDFekEgYyYcTCqj7UZdzXEByK9Gk2uEu9g5HyCN+nzVjh6cQ9+37Tkmr3rAtmD+HXVsl5cYKxYY9R1yP6LvpnDdyMjhmOkjxqoD7w7n5N010k7r138az3T2d1+yim+Q/EbBovUzFsRZ+wHNf7i11fdrmVmONCW6U98SY6iLflRFZhSFuD2qwMnYgoLmYYDXJIHNjY4u6pb2HcOLGtth38WXPiu6Jq4Uy+a1BxMaBxv7noxWEbbrIRxhTzCpmInZ3wYMeR7paVX/Qv4jtMTDsiFXlUYB6cAXfeUqPLDtAHNWdhlQfjexJ6ih1Si0EHDUrlKwGb9eIQt7dQpV1l4HoL6eACe0eq6zRxxagHoC1z71EGN5qYXD8JORp5nIGvaa75XMpVIkBFwA/W7NKqPSe+q1wx190EQzKGPhYu5/vxH8cpkeo0MtVb+ApZxKDklsz Nd6sL0Mo 5ad1Rh3ip2XMRENGCzegWKOD/GKVBtSXL4bjmLr7bgEsOMWSn+ezT0716V2S92+iFXW7J2o+3jLRYW931+S/m0g8PCmUu3Q009glJv4F8KNO4rfCR835xkjhmmDYlNvbLVf6sQdkK5US2CSMATEws+HFsBgc6XFVe7w+GXpRedv61peHh8oMzv64raGLVs87TcL1IHMxbRldxz0ImHrg3jQlloHPZ7y8gG6ZhaI40/oISrKt4tVq4KtxcS1Ff8COyo4p68nDz+d21nZPip8dy2KSZcvg0XGwzHzYYcZenUir4RXasfl+SkoSlqwWhw3SkkTr+jlhCbfUD6nYoNvliCDuU4iqUOHThSpx+yB8uSK2t/L+uGicfxUGRG57S/RHNpgCNG8OyQZDHhKpKaVK7BLHSDuzAgpZg5ApvTzknk5ufShjlV4YLKqpNcKR04PBEM0b/0N6VHF/myvdRsgcbLFu4gCh2pMnNqWQn1VUZmcEerbfrxGwBOjnCnXi6Ezv7zYbOjBRnpEGvxK67O9TcdY16VPkkm/VW+iFVrSd2uat7xk295JEq6+nviPQKtFpinS/LTQC3ZQQQYajI0htOwJvdp8HF7vVufoXL X-Bogosity: Ham, tests=bogofilter, spamicity=0.000016, 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 22/11/2024 09:55, Alice Ryhl wrote: > On Thu, Nov 21, 2024 at 9:18 PM Jann Horn wrote: >> >> On Wed, Nov 20, 2024 at 11:56 PM Abdiel Janulgue >> wrote: >>> On 19/11/2024 19:07, Jann Horn wrote: >>>>> + pub fn page_slice_to_page<'a>(page: &PageSlice) -> Result<&'a Self> >>>> >>>> Sorry, can you explain to me what the semantics of this are? Does this >>>> create a Page reference that is not lifetime-bound to the PageSlice? >>> >>> This creates a Page reference that is tied to the lifetime of the `C >>> struct page` behind the PageSlice buffer. Basically, it's just a cast >>> from the struct page pointer and does not own that resource. >> >> How is the Page reference tied to the lifetime of the C "struct page"? >> >> I asked some Rust experts to explain to me what this method signature >> expands to, and they added the following to the Rust docs: >> >> https://github.com/rust-lang/reference/blob/master/src/lifetime-elision.md >> ``` >> fn other_args1<'a>(arg: &str) -> &'a str; // elided >> fn other_args2<'a, 'b>(arg: &'b str) -> &'a str; // expanded >> ``` >> >> Basically, my understanding is that since you are explicitly >> specifying that the result should have lifetime 'a, but you are not >> specifying the lifetime of the parameter, the parameter is given a >> separate, unrelated lifetime by the compiler? Am I misunderstanding >> how this works, or is that a typo in the method signature? > > No, you are correct. The signature is wrong and lets the caller pick > any lifetime they want, with no relation to the lifetime of the > underlying `struct page`. But that could be put in the invariant that the PageSlice buffer must last at least the lifetime `'a`? > > From a C perspective, what are the lifetime requirements of vmalloc_to_page? > If I'm not mistaken, that should be the lifetime of the vmalloc'd buffer right?