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 0AC7FC3600C for ; Tue, 1 Apr 2025 01:50:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F2EDC280002; Mon, 31 Mar 2025 21:50:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EDE15280001; Mon, 31 Mar 2025 21:50:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DA4EA280002; Mon, 31 Mar 2025 21:50:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id BCF03280001 for ; Mon, 31 Mar 2025 21:50:26 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D42E014040B for ; Tue, 1 Apr 2025 01:50:27 +0000 (UTC) X-FDA: 83283795294.16.A285641 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by imf07.hostedemail.com (Postfix) with ESMTP id F028840006 for ; Tue, 1 Apr 2025 01:50:25 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=RAozlurt; spf=pass (imf07.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743472226; 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=8DR6/7Rb3+f7hTr23XIdL/GaAPLwuiXpD3LtU+Twlhs=; b=fPvu+2A4nIqriww03xCMYn6kb0MtGzAyGYg+Tm5DR7+lUjmkI3Gr2DGU46sIIC6N7aGJqP YZANZsiHTZtN603/IymQIw9gtULzOd/q6HOIzPYkR5dAB5JynAAlgpWextgrIjbYlBnqBy R/f88LyIg/NShWd+90rutjWnE94Za2w= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=RAozlurt; spf=pass (imf07.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743472226; a=rsa-sha256; cv=none; b=OEPbMCGUWSbVVQmW+pV3jzYPIE1pRuExEi6ITKuc5wHrDsBVxQ6j9IZampBytbDwPI97F/ Hwv4bHm3776lqJvqw8L09huG9jG4qUNyYaoDTsFNfeg1NOQNZIzp5sYDvhvRNcRS4X5d4k Nw/yTzrpMQqb4Z/1VA7LnV0hqHrSLhg= Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2264aefc45dso126162255ad.0 for ; Mon, 31 Mar 2025 18:50:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743472225; x=1744077025; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=8DR6/7Rb3+f7hTr23XIdL/GaAPLwuiXpD3LtU+Twlhs=; b=RAozlurtEHy8hIQuXzeqiw/Rvzzaxjvhp5JYPiMyajlDjhm+ZpEUo/pGyF3bcThoND T4dJjpp4ZMw/veDD71obas3MNx8HlOUZkejQFaO3//GahddpHFrEyDTEKjNDE5awm63t 3ZYOnfkodmce/CM8jnpxSfSOGslU4STU6tGGIuO8ft0jhwltvsfnugage6EWuobz5V82 0mg4hsFF1rsooN98VfHzZeVFriKz2vBFeyOOr1fZTQQ6aecsgGOtN/qeEA5P+g9bLDPf zIYSsAN1UxO8eMwVTiyLq7z56tlhEyyCzh20b7KZW36SC3KqKyy++NtLlgJRIFxmmdRi 53Dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743472225; x=1744077025; h=in-reply-to:content-transfer-encoding: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=8DR6/7Rb3+f7hTr23XIdL/GaAPLwuiXpD3LtU+Twlhs=; b=HW8gLYTtrsVXb/htJv2CYC/CfLfYt4DGZMF+BxV3Gt3QLLOz1d9VmJgUHwEVxYY/rF 1KGRtFdg51C/RDksyEC4HMO0f/RSkv7t8UPz+MSHfZHciPE3bPrxDUgK8ShDH8nbDM1u At6SoadlpomxYWlY4LqHh1xeH1aVMwsazcCO4gxow11rXPx4UkAF1hTpuY3sTgnFa4/v w3nB2cQzuELWz2u45I3MDgS+ri4SEZMz+NIEAWVvrf3LbEir7TQhfyv8dfsfHyWu4PM4 ZW4g73hgf/iidHplQaUDEyWIUUjXDH05OP7fmZD7Gq/I0U6ioC5PvnJmHeh33reCUK7f jxLA== X-Gm-Message-State: AOJu0YwiY0immqs2BTtUVEHjUVbaNlFqQJS2Vkms1ljkgfj6aoMd50Bn GgFMPgIaZbpROS2pbBSYbI+LGtmq+6X/FIlVNnEhxLRuf+GFCaqw X-Gm-Gg: ASbGncuR2TdbJ8v01iho5kZm+/cuJtntv95vesNmjIqdNI4X3A5SC2fedtyI6oAkSBO 2cTx6D0VIZE91R8Cn+FdxaANwgsvsWkGg9Uc97LDfvkimWOTlZfwvMOVXugNcTHszo+Ug9hE/wF 3etJHZGF4lw3MJNEpug10aMvBjkiL4UcRZCu0SViwd5Ph1zoDBQNvt0dLze+OP7qAHJ0oAnzijX Ln1bXAxxYh/fM4a0L8FWMQrYUrGEx64ZUPpKgzi337bp1wJj7FiVZlbnj42WFHCB5jqoln3o68A 9Lhw84inNWIqvGuM3ijUMos2rznBuF0eKRzNsvAu1ujuVTfPCArJdsfPFubaskF0xv/Jfnh4cPi m X-Google-Smtp-Source: AGHT+IHtI0piyfctYHl/2LDM631SG2KQBeqHfKgiXx+fJ+ld+X2QEuuYWayk5WgzDYrz5IBcvUxxzg== X-Received: by 2002:a17:902:e950:b0:224:2717:7993 with SMTP id d9443c01a7336-2292fa0e25emr168033925ad.45.1743472224684; Mon, 31 Mar 2025 18:50:24 -0700 (PDT) Received: from fedora (c-67-164-59-41.hsd1.ca.comcast.net. [67.164.59.41]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73971063dedsm7944649b3a.96.2025.03.31.18.50.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Mar 2025 18:50:24 -0700 (PDT) Date: Mon, 31 Mar 2025 18:50:21 -0700 From: "Vishal Moola (Oracle)" To: Huan Yang Cc: linux-mm@kvack.org, Andrew Morton , Brendan Jackman , linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH v2 0/1] Introduce vmap_file() Message-ID: References: <20250328211349.845857-1-vishal.moola@gmail.com> <02ba63ed-ef1c-426d-b469-09878c5f03d7@vivo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <02ba63ed-ef1c-426d-b469-09878c5f03d7@vivo.com> X-Rspamd-Queue-Id: F028840006 X-Stat-Signature: 6q1gpesktx83ek1itfms6chyhsxr7fny X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1743472225-867404 X-HE-Meta: U2FsdGVkX1+e1+e1R5/Ztv8ihgKaNMuMl8MTUP6kalkQSNtedVmUpiwSKks18YTVU2ciXYpjR8hE+IR8Um1UgZ+FbSW2j1Slq5M7ds+/asnHx1cFirEYXl3+AU4gpZ9QARS11pUDWufq67Kxm0j+ENmcIj9pMyIWIdA7iwKf7dd6s5cl8wTd0esybnnzLy0Lue60J49ZBnoJMexfoMOUPcwqOBNobhYWzGrPpkbuFWBgA6klfDS+BjqR2jsyG7hvHHZqC/zLmJ9mMaHttJoBRLD5fAdLqXm8Uul25oMPUG2OJOlfmIgXEy0nXQ1l+t26oeHXSpN61uAyBKZ4BoLqJ2lCGUhEYaGVvjnrgE5nWNm0NRlWY0hfFZr52nPJACx/YNi2fUvlCpAzHAn494/EJvIrGjq+aFlH1GdEhGTS1r3oqudYpn0fJernWw1CthqLi12I12SPwnHBjUdgKl0jECDY9cFKY9zRsfBIkp4Usm3TjldZTbgBCj+N3VBqK0EJKdFekSS6UuvSSEGccdb6YEkLGWVwH/Ug/nl3Z5BjRkp1yZ3zLwZ3wwSYp2alys4d/z4E4SBP5WK8oSdj3WiOfgJgK7uDEjhNs7uHgeOnNwh8ffQsuog3QcI256zu0cVdbT711DwbFxgQJyAr6N8oDWxL+p0zhkFMHsNsHE35Naylzo62na7REuZEtR/mgSWMh1l4CQgsFASJNxPp/MxL9inmil6zFy02ARrAUnUYZQ84nbvUnpcxVt/tBGslEaa3mOmlP4evh7hhBeClDC2+Oof+jkUEIM0unQyO17PovB/P6ob7DwLBAY/I96mZId1oWqGqP6+LksOY1EjTXgm4Br63WquUCyy71RAfuTg6EgS2npw+ByCr0/gs3xKyxb5ZYdjgR4/9cwocNtptzPOxicLVvdlWsr6yjXTe9Ncb17vbcGPMeP5J/NWAsFWifKmsYptv1++39ctwqqDd6me w2AXOVRC GuU6h3GDrjzaGx4ABABQkPLk/zF4RaH2XNa7mKahaIj69xb/bcBFsaOuUtCAro9f1/nRTSYUVmzNeuqAn+cRqa7XchqSDxqhsGZOgcS6tCUcQ9204M4ffceOCBnetj/S9I8h6sG1cgZ5GPHX0PKZdn3E/cskumBOyOwHEwQ8SSwa2SxFy890xmS5epJxvWAjbeWm+9saholpBAzBkYicDt7B1Z1QAhfgWnEv/ukQqYvbVp4MTrW0D+LqJh46CuuXqKEaqOSWNFfaRBrMB75bobWNh0Dl4QF419LV2ynCeA9IoAcBE1hNd79bd97GKJFqKh3F1eteZFRfK0OSxBinKTfaRqirsqqEDXxWV9Pgdf934ioyDWHs9mSL3dAmXQWGgDzUS1Fo29e3zzyrSPFT3o3IrFkHdNMEvVqPTSUYYeWZlmw1lMsv1JbLumklvyylGH+Yy5kRQ/ELjErasGpjnJoAMPaKuWftG0l9VBJ/5k4YFD8+zQBcByNeJPZTutDedblk/r6NVtSkghwfhBGxZLA8Lh3HMFfKvCPTF 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 Mon, Mar 31, 2025 at 10:05:53AM +0800, Huan Yang wrote: > HI Vishal, > > 在 2025/3/29 05:13, Vishal Moola (Oracle) 写道: > > Currently, users have to call vmap() or vmap_pfn() to map pages to > > kernel virtual space. vmap_pfn() is for special pages (i.e. pfns > > without struct page). vmap() handles normal pages. > > > > With large folios, we may want to map ranges that only span > > part of a folio (i.e. mapping half of a 2Mb folio). > > vmap_file() will allow us to do so. > > You mention vmap_file can support range folio vmap, but when I look code, I can't figure out > > how to use, maybe I missed something? :) I took a look at the udma-buf code. Rather than iterating through the folios using pfns, you can calculate the corresponding file offsets (maybe you already have them?) to map the desired folios. > And this API still aim to file vmap, Maybe not suitable for the problem I mentioned in: > > https://lore.kernel.org/lkml/20250312061513.1126496-1-link@vivo.com/ I'm not sure which problem you're referring to, could you be more specific? > Thanks, > Huan Yang > > > Create a function, vmap_file(), to map a specified range of a given > > file to kernel virtual space. vmap_file() is an in-kernel equivalent > > to mmap(), and can be useful for filesystems. > > > > --- > > v2: > > - Reword cover letter to provide a clearer overview of the current > > vmalloc APIs, and usefulness of vmap_file() > > - EXPORT_SYMBOL_GPL() instead of EXPORT_SYMBOL() > > - Provide support to partially map file folios > > - Demote this to RFC while we look for users > > -- > > I don't have a user for this function right now, but it will be > > useful as users start converting to using large folios. I'm just > > putting it out here for anyone that may find a use for it. > > > > This seems like the sensible way to implement it, but I'm open > > to tweaking the functions semantics. > > > > I've Cc-ed a couple people that mentioned they might be interested > > in using it. > > > > Vishal Moola (Oracle) (1): > > mm/vmalloc: Introduce vmap_file() > > > > include/linux/vmalloc.h | 2 + > > mm/vmalloc.c | 113 ++++++++++++++++++++++++++++++++++++++++ > > 2 files changed, 115 insertions(+) > >