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 CED1FC36010 for ; Tue, 1 Apr 2025 16:43:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7A31F280003; Tue, 1 Apr 2025 12:43:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7522D280001; Tue, 1 Apr 2025 12:43:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5C9CC280003; Tue, 1 Apr 2025 12:43:40 -0400 (EDT) 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 3B9CA280001 for ; Tue, 1 Apr 2025 12:43:40 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 9B2CD56669 for ; Tue, 1 Apr 2025 16:43:40 +0000 (UTC) X-FDA: 83286046200.02.D3D4F95 Received: from mail-lf1-f50.google.com (mail-lf1-f50.google.com [209.85.167.50]) by imf25.hostedemail.com (Postfix) with ESMTP id B08B1A001F for ; Tue, 1 Apr 2025 16:43:38 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=JOBj7Kso; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf25.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.50 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743525818; 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=VtRsoKUnzY62F16ZzyXgTuIuFUdJK0crZF8UmK0ccK4=; b=Wt8pu3qjwsg2tv+HAUxKorwp032ikfmmne1sFcsnNLw65sUEOSTskYmeVnYF6wj3VrTV8/ IQ+xLMyqmtNEWK86IGbeqTb7iOJgRxMnFJUw8oORJPrNqkjFlIJSsWDqHbxRpgmddrIaof Lt4eCpCaFsXZ5o2xtiBnNHe8ewJh2pc= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=JOBj7Kso; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf25.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.50 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743525818; a=rsa-sha256; cv=none; b=3p/vRA64taDCaSS1RNiWLwDdwUCOEIwoJABZ5c1pIjDmtiIfVUJjcBsXTAEekyvOp6qTSX dc+KMD4xmpt/viEGMHZM+pGn3AUHfWBhXUfAoO5XK7jHKhags8o/lotQlWncJR5sJQAWOw K6tzUqhf24scKP0y6xHxkyuLVjQFWI0= Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-54b10594812so4297442e87.1 for ; Tue, 01 Apr 2025 09:43:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743525817; x=1744130617; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from:from:to :cc:subject:date:message-id:reply-to; bh=VtRsoKUnzY62F16ZzyXgTuIuFUdJK0crZF8UmK0ccK4=; b=JOBj7Kso09Xa6DMAm11sw+RSAVttvu2R/vireKhfLHhoRml7pQeDb2tpYq+JHXcYzQ lwuIWpXr+CEmPbpGKXPH2UYr+PjlKuOZuNum7HjkjU4JywIJXn8tlq7At3SFy1SikujZ mBESukYJEoysL/AQIMqmE7vwkTANr8XHmb1pa7GWfCnPlSy4gjCtyEf9jNsKvP5dkwQm tmEzmp12G/lAjwAPj4Hd0RbG3HeSt4aV7yO75ja4KhlfoiMu4WOvjMGbMCcGMNJObqnd 86wTsVnO23+VO7WJyjcE5m91Zrjpd1scSQQy3Ju6YTTpiDN8pqHWqZ36kzt3JwuC1BVH BF7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743525817; x=1744130617; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VtRsoKUnzY62F16ZzyXgTuIuFUdJK0crZF8UmK0ccK4=; b=gFYK8EdsewNcyN4+sIxfuV49muGQCClp3PqkJZzCG3sZd2SjOaxahUL80vV+soTiII itqoZIKgWWFUDyzt9g7FVoujNSfyHAhHFfw311Ip9Frve5muK9P3ZZutKeb+YyMlN9Cm FhC+w/0ETtZ5D46opAktujn1t8NOB+WA6u4nVhqF7z8fBomvGwOo8EdFktilenW1E4ea MSKaEUY0sTRzcW+Je0LJXl9jFX8tOEM+goOOyYkmrTzb1iCHufd/0tu6h6NDJ5QpCjk7 Xxi4SzLB1pOQh5Hn92WBL/fH0qUYNqmuAb54DmfdKeTuu32RB1WVy35tLg9cPQ1HFQlK 3y2Q== X-Forwarded-Encrypted: i=1; AJvYcCV+xcVDdJLBbNlra8GxQUYV1zH5lH7JsyGmQ+R4Mn81IaonHH5Dl3UazTjnffpChfCPeYoEDszPCQ==@kvack.org X-Gm-Message-State: AOJu0YxO/Yg8dzo/dq4sJs6yhaN7nI66wypivOL/xVlmnJdH3mr+BRg/ h7RJrfH9mYBJSJA9OVl/gfvwRroM9mKcDz/W4vywux4ozAY3jMhM X-Gm-Gg: ASbGnctaz7I86zD4gfuazOmdtqAAKyU0RD44j4/P9uBuBCQIsnlJGHh+7T+LHT6wdgh zNWSyVjuG42G9OJIubmv0wLF/d5wnFEl351aXUf2q0mOSz0iVJFJqKBQQEFz6gZlVh2W23qWXiI 1UVvCle15WACHAYjqUfkcARumipiV28XCoS1aPQaB+UDKPSBdapd3a5zPqMXewz+H7I+mGmk4oi EjENBJ2nyH3Ukjku54d+7apQmsxyCsFyPmetx2e58EPQarHusS0bYPtbNXbC3z7wVzfdFpqu8n8 p+yG3EGG9vA= X-Google-Smtp-Source: AGHT+IGMjSOepmGd10i7LRathTc4xjO90nBV59dTN5qeuRROXT3Ts5jebW4tDpW5dseK5F3H7TQf1g== X-Received: by 2002:a05:6512:31c7:b0:54a:fa47:b2a5 with SMTP id 2adb3069b0e04-54b10ecad2cmr3731763e87.23.1743525816549; Tue, 01 Apr 2025 09:43:36 -0700 (PDT) Received: from pc636 ([2001:9b1:d5a0:a500::800]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54b094c1ab6sm1412989e87.97.2025.04.01.09.43.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 09:43:35 -0700 (PDT) From: Uladzislau Rezki X-Google-Original-From: Uladzislau Rezki Date: Tue, 1 Apr 2025 18:43:33 +0200 To: Huan Yang Cc: Uladzislau Rezki , "Vishal Moola (Oracle)" , 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: X-Rspamd-Server: rspam01 X-Stat-Signature: 3xrbgtwnoo6cyed7sxmyy9pok4jiocao X-Rspam-User: X-Rspamd-Queue-Id: B08B1A001F X-HE-Tag: 1743525818-657419 X-HE-Meta: U2FsdGVkX1+notQRAzqQENwXQe1DrygEjT4RIJxNIgMcN7tswZWSYvzIx1JoyDaRTnPWISYyfOOxA0LYzzaQ4+y6WVoXLqDbVWT7Ya5NzICFjN9atbfnSJK8d4pVA7kBkwy6SYgFgCJoyttJaJ0mS0fniN7KtqAEsASjU85UjsFApURqcvtjH1GKoQdLlXhXIoOXMOU4zvWvbhvZ9NLiCUlQXO9EorBGI3U1U0nx6/XUb2gnZJ7Rot3LosnEaSRhj3/SJq1x66QEFA8BpY1VKMzoPuLvFUQpTMVomkaLyXaUOgLtznSN4B/pRc/oEywtuJmimZabz1tYZl18Y8nSaXHPnNhaYxLeRfyMZNGCEFDajfGWCVulSNeKM1xDH9WIXrNFX98K0AAzVCXq1bySGeFVRqdsJYfwPldz0VRBCwyX5eeYRI+qz+QyGqX2c/NEMuZWNAZTEpqtTKCQfrcMjdUwff+allXJWiG6qcLHHssdcLN9qDI0eCHdJhT1peGSZns0aWfKYq3bqSTz6lzCcen1XaWPXdGlRa4JYq2P1Q2L472T/qtfBdD7E7rComnqJcZ5yPfxvHsxTkGHZNkRsOCxlcpvzknoUCRZ7Mz/S30e7Nbae7OY5wZNmhFt7/RQU4P7OqTHVyqF+mFezDUwHcvAc+jf3wQ1AEhp4iRLZmD7MykqQ4i0Z8lm8nQDN4pzkn+YDqyuMp2eRG/zKyE2KM6+c76OtYkuei53vTUw9HgqDdHz4B7I0rTVKd18bPEkR/dU3I9nYJASDm5cRNtfphxOWSm7ZV8pO6qapT0G8xCWBn802qVspE+OrS+qtttwtFcYdjNtF4pKY/4b317yUhSSrFynDs73YxMiiIRznjkEJ+gKJoWPf2oYMixsBFggJvVTYCjDkvOS90ypu3Mx7i4lPztfd7ln38r9I5YlxF1WjtAVqcF9SHPvgA8+oHHtF4BSWsYc1IzwOQrygpc i4yMd7hf 23unOBnHdsxdJig8jezK8nyRSNC3/mIVJLlVjYMVLpTTRVU+PHp6z87z5u989GRN5GA4elhDF0Y0kb4Qgi7+mhGJhrfqDZoVl5VzU7gjymR3miFUtWpSrI8dOBfVEGPPQs2Lb X-Bogosity: Ham, tests=bogofilter, spamicity=0.047736, 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 Tue, Apr 01, 2025 at 07:09:57PM +0800, Huan Yang wrote: > > 在 2025/4/1 17:47, Uladzislau Rezki 写道: > > On Tue, Apr 01, 2025 at 02:08:53PM +0800, Huan Yang wrote: > > > 在 2025/4/1 11:19, Vishal Moola (Oracle) 写道: > > > > On Tue, Apr 01, 2025 at 10:21:46AM +0800, Huan Yang wrote: > > > > > 在 2025/4/1 09:50, Vishal Moola (Oracle) 写道: > > > > > > 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. > > > > > Currently udmabuf folio's not simple based on file(even each memory from memfd). User can provide > > > > > > > > > > random range of memfd  to udmabuf to use. For example: > > > > > > > > > > We get a memfd maybe 4M, user split it into [0, 2M), [1M, 2M), [2M, 4M), so you can see 1M-2M range repeat. > > > > > > > > > > This range can gathered by udmabuf_create_list, then udmabuf use it. So, udmabuf record it by folio array+offset array. > Here, :) > > > > I was thinking you could call vmap_file() on every sub-range and use > > > > those addresses. It should work, we'd have to look at making udmabuf api's > > > > support it. > > > Hmmm, how to get contigous virtual address? Or there are a way to merge each split vmap's return address? > > > > > The patch in question maps whole file to continues memory as i see, but > > i can miss something. Partly populate technique requires to get an area > Hmm, maybe you missed ahead talk, I point above. :) > I pointed to how BPF does it, probably it would just give you both some extra input. -- Uladzislau Rezki