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 98C71C36014 for ; Tue, 1 Apr 2025 09:47:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6B2AC280003; Tue, 1 Apr 2025 05:47:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 662DC280001; Tue, 1 Apr 2025 05:47:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 52B4D280003; Tue, 1 Apr 2025 05:47:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 31B5F280001 for ; Tue, 1 Apr 2025 05:47:46 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 9C403122784 for ; Tue, 1 Apr 2025 09:47:46 +0000 (UTC) X-FDA: 83284998132.08.6730421 Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com [209.85.208.172]) by imf09.hostedemail.com (Postfix) with ESMTP id 9206314000D for ; Tue, 1 Apr 2025 09:47:44 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Zwcs5gVc; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf09.hostedemail.com: domain of urezki@gmail.com designates 209.85.208.172 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743500864; a=rsa-sha256; cv=none; b=iDvSnQd5c/E06Q4dI8fZnEYlmxiZIKEE8AU3TI9fBs3diUkU0IzXuz2gGGJ809CVAth4of cy2HVuESaMsEU/iesyaNgPIQLFJEuyEeONVpurTR7TJrvO6Fnr1G3g23xOLsrE8L3XrfMa m/A2JM5Ewj0lRalvF6rSWUaLR9mPbV0= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Zwcs5gVc; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf09.hostedemail.com: domain of urezki@gmail.com designates 209.85.208.172 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=1743500864; 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=A2C2GeCAVXb2w87kJgVRqcXJ42AgxkPCPtakCiIIfrM=; b=zxYH60HhQNyYeC/zhc1rrhvzxqLJVAwxNeJLvY9qTVCg+/pxO8xuqpp6VO1hoSr9nn4mbf BpMPBxse4OThfJuMyLb4vMG8ZyIu4tfOGrlxgHkj4k07RSPEfj6BAqCeD/ewbUDt/nwuS7 gm0c8pHRPH7QPhb97NX4CkNCZNJGRwY= Received: by mail-lj1-f172.google.com with SMTP id 38308e7fff4ca-30db1bd3bddso52478811fa.3 for ; Tue, 01 Apr 2025 02:47:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743500863; x=1744105663; 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=A2C2GeCAVXb2w87kJgVRqcXJ42AgxkPCPtakCiIIfrM=; b=Zwcs5gVchrY3l639us+VmLvKOqWK+iB1vy7/PH0PbrqHs1BWlCWKv2c2AQ8kD9/CJC +eSLkFjS7u1pdT0GRryYlGiVC6uDJPzvI4HGGkatDM2hVPTNpiZ5WLUMKMoLOF18MvCD O+CkFnQ0TFCwwyZZ78OzWoyWeGo3v0WiauNpK1VlfWKXQFFURzAQuRyOWSHkpBfJM05Q OGh15NKGGDfb+FzV5O8A1PTUshswnN2gyJWFcxx11ULhB96BResfpZYRi05JQEf0YWyz gFRZh7qXC0js1ImEbWD8N4yE1kzvk93VPYXsUex2gVmm7TS6ZBKHbauY0EHU5dABV0GA 9fLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743500863; x=1744105663; 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=A2C2GeCAVXb2w87kJgVRqcXJ42AgxkPCPtakCiIIfrM=; b=H1QGdFqGKVJe21ijFn8GXgxoPwHmrMxxtgTcdKBwOk0QuoIYCgbQVMj3/SxMht6tev MuwtLpFPeaaYUn65PWc38S5iW/3ft4JKwcshO0WKOK++xxG514vI9E0VjShjuXm1Qvua rZkfC6PIDkz5Ro4zR+wrMjVoUc3op0QcnohYjvcTbw4TfUzndN1Psb9luFXK4p3yxHhQ zKwhhyN8lw+6nQ9yvE0rO5jSd/jvo77PM1j4SVNZw1jDLla8BVIGx2mQpBKN9N8JM8Sw +3nLNWY++WyGYxWt9OPBZQjPLGTwBdOv54AE0M6uqJvzEODWemcM3Pm948fntxzd++yu ehMg== X-Forwarded-Encrypted: i=1; AJvYcCWjqN3x4MqIc7I3sjEG7VEvvUZt0Qwnyui22GEQwhE80eSWyRhuaODCx+7dghPAZmoZ5FErdmf7Jw==@kvack.org X-Gm-Message-State: AOJu0YzZYDIzFNExVAybOwN304e65ZsyLdJZOpCtloot8r6Qh16vcm18 tCdEMD+4TUOiJV0DXPfzxfhjW6v7z3xlHuGulJHNjD5S0ggNG4Iw X-Gm-Gg: ASbGnctjiRk6jTfBe97SzLGemNpZObdTqkfP/yJ1SgiP5O1Jbyl3f370x3aE9OTi1Ms U8t+wIMo9uPNWY5+GRfaNbV8vP80IpYvuWyoM41GaFEpShDSAD02PB0kxrwN4O5hZ+XidCJ66zy 7ct4DfGdR1bxBVl9NFH4gRpbu0Gc5DHFgeKXFrdfEMWbdJulQCW73U0fVoLPnUMvfq5kJX0VDj/ LLCrq8LfkBk5RtXMla3TNLtP4bFD8MGqnxYaIVZgDRAhSX1qdEsavC2gV1PA54wFijJpMdtgy+M WJqJiFFJQFa35QZ9gNA7OKAYqWpbrk/kgnFh2bX0htRq1RLTDNFLZtIzrVaaBwLawaTqjF8O X-Google-Smtp-Source: AGHT+IENbgcGg3711+R6w+jwyK6kVYCIhqUTLTViQxqFJ9DuHKPnU+TSSx7bFn3MjkNaBtp8NsXndw== X-Received: by 2002:a05:651c:2209:b0:30c:189d:a169 with SMTP id 38308e7fff4ca-30de03286edmr36552341fa.25.1743500862386; Tue, 01 Apr 2025 02:47:42 -0700 (PDT) Received: from pc636 (host-95-203-23-138.mobileonline.telia.com. [95.203.23.138]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-30dd2ab84afsm17766381fa.35.2025.04.01.02.47.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 02:47:41 -0700 (PDT) From: Uladzislau Rezki X-Google-Original-From: Uladzislau Rezki Date: Tue, 1 Apr 2025 11:47:39 +0200 To: Huan Yang , "Vishal Moola (Oracle)" Cc: "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: rspam04 X-Rspamd-Queue-Id: 9206314000D X-Stat-Signature: d93ao16xico7n9nj7iyjpw5bj4zqftak X-Rspam-User: X-HE-Tag: 1743500864-211684 X-HE-Meta: U2FsdGVkX183QhBbsCG/3F5JWozH1a2uDnXyw8Z8y0FzbtCEB2HZPg2B0MKUjiHAcsXUdLKJTqupeVuHsDhft/qRzLt8psF2S560TZBep1F91aYBkPKRei2nUAMYaMQ2vdpDlBrMgfsuxOl/lEduoFyz9Tk7GKIAC6d9sUzpipmfiE7kw2Qv0lZ7uH+fVNCGF9RhldjBQeKo8/b/irdoxBakxb4fkk4w0ax392kUtXzW4OJSNCxGVNyN024s3f50BGLWg7zhGEeAYI2CWYkcuG+fVWaQIPB7TzmOfuL3d5oda+gyyKrmTKgg9jFDQhs5MweeBZ0P8AryCK1GXv2ocguKQa537nIM5fLOAEaRfdAYUfRMa5xBS+czq/43+fs9UizGmnzH2vxGLQO2CuYUcLQMikzV7mlh+wGI1lNUAs5VzlhIhYzA2pky4SyD2rKJT7jUpb2k11U3hN08Q2tmDHTzYDZjaPgbiyKXbLGiwE9E7x03/OsHllhsvauIAL5jjaHNLbkamSyBx2gAnBeIb3+T8wmBlfSDUDcdGr50dSX4CMDIuElwElPdTPFBkGsNbR0cYr2OZw/A4a12C3oLEqcmIYKJbxtnmRx1lwE/Xq0LgNgpfRJD6Dkwogd4fTC/o/bSX5AP3MKbJ0l9MvZJ935+GSD/3cIIgMmgf0uHkosYfy5UGG/qjv68qOfQQ7REqgbbJxBGVC4d4JXLsxGi5MUdf4yHLwZqJ6Yn9CRDF/iw3a0hXyMutTVpFNrhjtT4/qwNxs1wCp1YzVQIMyR2ueWRWgt4RxOLjoqDfYH2CMn2Wc+uRti1C8U7W1gANbyTSA1pAmnNgsrvd8i6YOes0fJXXuO399bAJX3arUjIrMXCzh5Ppc+8H9mMmo5HG1R5nZEUy/Bb0oP/+POOBUGo9/Lp2Z8gCyIrJN59Mlk0AbU4OxZ+JYbDmjU0HsP7/7A+e9wTN7m+uA8vAPCbqxo awxmiU5V hhZbvIDqdHBElQElM5NqeB9Pm8Ed0p/SvAAXbVWvuIHvLTD5BJkag7eqfjbBm5oMdDS8ANTqBJtBTe7Uf3vylWWBc/V0YoOmw6P30p4cdvf2CyXVwdHJI0MwuSygkxrfqHY2ywb583gW4vVF6eJcxGe5vlZG5GkO+nUufRAKVJ8Mh5RQec36jUw5B22ptq3uL59E9709ywCqwIvYs/tmbWQUCSIUFT0RYu1ih3ITNXjBBvIWtrBd4i45CMgoAYRI//dxHrJe1ZGKBmLeCUGLiCdsNXmG82qmKS9oxnsL0IXmXZW7nfGCOjCMhJOyWie8joJksy53K5jyeG0ZrL3uH7KscNXSASJQBE3aDVV/ZyQ1qbtZCZKyqf2TvmGSdGORAEN9JJ4ZfQHh3gnEZzCqs1tEKgVRk5rvqSi7kRsGlo9Cpu3TsjDRg2wtTGCaQB8qDL5SHzhEULqHWEbW8dTdNFAVnizP8i6tNz9C0AaZVxxNCiD9V5D+1IYk7OjPzTlB1CxMDPstByQm196RExUPn31l6q5DH01X+HLId X-Bogosity: Ham, tests=bogofilter, spamicity=0.003516, 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 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. > > 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 and partly populate it. As i see we have something similar: /** * vm_area_map_pages - map pages inside given sparse vm_area * @area: vm_area * @start: start address inside vm_area * @end: end address inside vm_area * @pages: pages to map (always PAGE_SIZE pages) */ int vm_area_map_pages(struct vm_struct *area, unsigned long start, unsigned long end, struct page **pages) { ... it is used by the BPF. -- Uladzislau Rezki