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 C3D3DC021A4 for ; Fri, 14 Feb 2025 19:14:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 06E5B280009; Fri, 14 Feb 2025 14:14:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 01E44280002; Fri, 14 Feb 2025 14:14:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E2824280009; Fri, 14 Feb 2025 14:14:31 -0500 (EST) 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 C4C9D280002 for ; Fri, 14 Feb 2025 14:14:31 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3DC1EC07F2 for ; Fri, 14 Feb 2025 19:14:31 +0000 (UTC) X-FDA: 83119501542.09.0024CD0 Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by imf22.hostedemail.com (Postfix) with ESMTP id 40ABCC000E for ; Fri, 14 Feb 2025 19:14:29 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=ziepe.ca header.s=google header.b=AjYSd3ss; spf=pass (imf22.hostedemail.com: domain of jgg@ziepe.ca designates 209.85.219.51 as permitted sender) smtp.mailfrom=jgg@ziepe.ca; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739560469; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gVF6evkbcSp3Y/Zct50ezsTDsgO/Q3tcJ2yCY7GXSSI=; b=a8LLMJVBnS/2qAsBayrnyG3c6tMTZLcInLc232jxBCPrIJIfQucxPZXcvMWD/qgyTPHkoh GEhQdUcnVBvPfl62FoMo9Thi9z0XqjvWMI07Cj3JnZp0PGcYyKm9ygXzJAsOWwR1ppX0B9 I15u3VxEjETACYyOTgCn5D3ZZTrTw30= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=ziepe.ca header.s=google header.b=AjYSd3ss; spf=pass (imf22.hostedemail.com: domain of jgg@ziepe.ca designates 209.85.219.51 as permitted sender) smtp.mailfrom=jgg@ziepe.ca; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739560469; a=rsa-sha256; cv=none; b=Hzghkq78Zkx1u0UYbnHyFD/RsC+XdYsaYq2skpqTeqGyg96JDROnF68paFuzKMOGqIEvdQ 6/Vc1d9Q5LG4jrVwQjchHpI3+Rvaqz/9GIueK8hI7CBd8wOiTU0mlnwPe5vWB1IbT9Ar1e JgYcZmba0O9NTveEsS/H6ZcSBXFEOQs= Received: by mail-qv1-f51.google.com with SMTP id 6a1803df08f44-6e41e17645dso23312146d6.2 for ; Fri, 14 Feb 2025 11:14:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; t=1739560468; x=1740165268; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=gVF6evkbcSp3Y/Zct50ezsTDsgO/Q3tcJ2yCY7GXSSI=; b=AjYSd3ss8dMZgeCmKpS6DGgddvRefHrmFEUq0c8QARr7shZvuflzfqEkTim7w95c6s rWL9q0SBBEwjhtGmTLv5LbTb9OkE3ukvBrYPqabaa8vopd5gyEeqRrTLyUaygS9F+iuc W1E2I0lg4Y78nq8oKlXZOjQMOv5optjBg0D8F7LCyY13DEAk/Gn38GAbPQIG273/sVwi lD41Tm9ENFPkq7ohkXJSsLKieFad3p/mTNEU0UzLy1oF9WmVr+eOh7bJYHaQiG+1Gytw WYhTVC0rPpmNI0SC+ivOS5V+aGIJY1qrQsxO5a3FWu9bxscstmF8tSGLjQalhxbpxgam fijA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739560468; x=1740165268; h=in-reply-to: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=gVF6evkbcSp3Y/Zct50ezsTDsgO/Q3tcJ2yCY7GXSSI=; b=mDNHaJBTrnZEskdKCn7ZSvmfTiUZhFn82mOV5ovFWKY2eOwhC5+kQPHMN7bfNtePFx 3fFKcsFYvVXzERM0WuFVSVxtztvtctkMAceEas+gHxO6GWm2Iv5JCYPgrHwfEDnhaan+ 12Yky+MuSmEZpK/tHUwP8kpWaEawRvw4IX+nEVcix3vjNjWM2VBQgbYFH7dsthcCeV85 osyxKkTUQHjS5j5cz/G0Rk/60aEt43aXkED3L8xNdvH1Nt2m9Z42NMTHAmDAfQwTz0lx fGbOd5Jt95suR03gHuiEEqWB219BNAWyggFrFOiiroiOiea06Njd/VQBJts7aaRu+ruA p3zA== X-Forwarded-Encrypted: i=1; AJvYcCX9KF09Ey1PlHi1GTyl8LZhXYTLyE4sURbVU8nKvIi64ThETPCCuYIu0vUrgOkmOwm9TQjvzA2UgA==@kvack.org X-Gm-Message-State: AOJu0YxUEZ6MW/0T6v3qnlsP7EmRJVvIGJ7s8MYnZlxiibHoHuxYfoDW 2+knwO1MGdEDxnielx8Xi7KDYVvpYA+cu3iPm8HnTKiqxK4AkV2WHCfwxiKnffw= X-Gm-Gg: ASbGncslKNWbLP79SvVBhNDVGKrY0/jeSB7ZuuS2TkeMwrUYmodgBshS1tAJq3PxmVN 82C1HALILIWZgmPy6N5lGufazkr3hD79MUhPHpzhttpiC5MA6mPh0j/H/UwnKb0s0S7bBRthkI5 PKJjzmWbQTfJYdDckcLxOtpNze1nir0XDXTh68oqsVPEVnXeqlOgWe9I6LW/hA9tAk3cMwQVj9R ZmwEX7UiiM52sx8KS2mbsw4OtX6+PagtlKMvILDix5IbWa7KIAhljlXq0ZrrpSblluj+gM0SdYo qUA2l0G0MeU416h/lR9FuCjUbfa9LkIbhkI5CbwtP50SPnF9l0+1RQK30V743NJ9 X-Google-Smtp-Source: AGHT+IEpOYBQ8VIbK3Cs4VxKDEg6MhH4pTWCL5ZsktZ4iQ8Aw5votEpuA4RfcaOd/RCz1qokqGTfoA== X-Received: by 2002:ad4:5fcd:0:b0:6e6:6b99:cd1e with SMTP id 6a1803df08f44-6e66ccda2d0mr5638616d6.26.1739560468280; Fri, 14 Feb 2025 11:14:28 -0800 (PST) Received: from ziepe.ca (hlfxns017vw-142-68-128-5.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.68.128.5]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c07c5f370esm235072985a.13.2025.02.14.11.14.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2025 11:14:27 -0800 (PST) Received: from jgg by wakko with local (Exim 4.97) (envelope-from ) id 1tj18t-0000000GmIy-0YOE; Fri, 14 Feb 2025 15:14:27 -0400 Date: Fri, 14 Feb 2025 15:14:27 -0400 From: Jason Gunthorpe To: Alex Williamson Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, peterx@redhat.com, mitchell.augustin@canonical.com, clg@redhat.com, akpm@linux-foundation.org, linux-mm@kvack.org Subject: Re: [PATCH 4/5] mm: Provide page mask in struct follow_pfnmap_args Message-ID: <20250214191427.GC3696814@ziepe.ca> References: <20250205231728.2527186-1-alex.williamson@redhat.com> <20250205231728.2527186-5-alex.williamson@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250205231728.2527186-5-alex.williamson@redhat.com> X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 40ABCC000E X-Stat-Signature: 1jctfyf8xhbjgmf918gfeinsr1guz9d9 X-HE-Tag: 1739560469-616131 X-HE-Meta: U2FsdGVkX19ZEgu7AcULRCC2L0rzJd5gDA1CsJUiGGB8Ar02Fr7DuJ3GUeIfP4MBqBukeXggkrpji9rNMEmHUa1Rz7gZupF03CK2NkK2wXCaap6uJ8D7RBC1RasOnSiUlJOX0QK3+MTGDV1U46JSyBted23oedhupXG5Skk+Qglv8s0UzWYrULTnfdOotTKR45OskO7tJrsH16Ac2WMoyowRYBkDi665gkYDS8jRTwf9Ari3c0QwYrjkCbHmoTr9WDApMs55WBwEcToe3nInPY0x6MLoFHGU2kJNim2bAVb+TeGT7B6mIHx35ng03GLXg9Z1M6AnWqMKz8sPDgCRQBkUdZ3G+9oLCiiA8X/ynuG4KVPsmEUtSlQediy/RTbXvRYUFhyligwIbm8ncPwNF+nxIlmTXVtK8XnB+owMKyxA5MIi+JmKvDMQ8y41bGjGlBFVA4CBHNHU1jnYSs0j/IzVAXZFRdR0Wn7at0s63/K4+Dt0E08SmFZz70DGF+JWEyf/to36hmkXIvdZ/Rzac+ToiXWtXw+IPYZruvLsAxgPqZztJgX90qF3IWkjpF0DFBvFGCvZRaA+tIJSnpjVpuy+yWrpu9Qb0KoJMUBBInC90yLBSf+BymZWqTNXPaPaUBZFpkZaokiNnX528lq+c/SaXP/x2sGlbjMvxY5cSWstQLHKlxi3SNOVqnaLAWSytwfov2kHYC2AhDuCdmcX18v5hXW5CvkeWOtkQD45Cb9hmIVVlTvhviuO/HUXzyZrhzxVenrpDL1s62k4N1T7q/NBTBJOzPwf87YViI8BhuqTOMWAF6wv7HanuMQ0TAdFhKsyNE3Wv0ymSGqwY505ozneAuNLCvIoqCRh12tBF5hSTDH/u1N4ED3TpURw7kfddYkFaGXgiJR1r3unM/hxPvye2lM90701j0W8YKiEz4EPXez5bFw60cnyrj7KAlCzEaG57fBKgn3dHYd/MOh VKORgkCL OZpyGa+4Hu7oqFpgP4o6mcdzlzs9ckiQrrmNbJlKirEAI/rHkKTnVz9GwgMN7vHoiSPKthU3H0G46VcDDkkRyVxqD4l8aWSmodx92vWXW7NccSfZHQa3BzjwUDtVIeRmDzEGV0q7OulyQFNgAGFYAvYZhssOh0kYxI0EeWqMW4s0PsRFjlUwQ9nP2Va94l+cG/tbffujpCKQH1YF2eMOvf19SU26El7ZYtRShSS5lkodVaoJBTtGOSWBKxxvZJBMjepg215dIJInf3RGjErgfX2cz9T+SeTXB/hP6WAicCbE11wsc1BOL8nrhbxQU8ejWjFQNxfE3XN+6QiWmDPbECRKw8c1fN2aG1uPldn/Fdti5tyvfVFxJalzZBFuWNS6Ts6Bc0dQZ0qRYp8+Fzobk3MnvC0B6I7mKfwXF4Vt6Q5gOFVlBWW9X9lKeSNIVXPb1lo8kEkqoem+GyydjHN5YprkOG2EwYdSv5H6G/I10UpsVhLXxlOeg2q6x7g== X-Bogosity: Ham, tests=bogofilter, spamicity=0.020762, 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 Wed, Feb 05, 2025 at 04:17:20PM -0700, Alex Williamson wrote: > follow_pfnmap_start() walks the page table for a given address and > fills out the struct follow_pfnmap_args in pfnmap_args_setup(). > The page mask of the page table level is already provided to this > latter function for calculating the pfn. This page mask can also be > useful for the caller to determine the extent of the contiguous > mapping. > > For example, vfio-pci now supports huge_fault for pfnmaps and is able > to insert pud and pmd mappings. When we DMA map these pfnmaps, ex. > PCI MMIO BARs, we iterate follow_pfnmap_start() to get each pfn to test > for a contiguous pfn range. Providing the mapping page mask allows us > to skip the extent of the mapping level. Assuming a 1GB pud level and > 4KB page size, iterations are reduced by a factor of 256K. In wall > clock time, mapping a 32GB PCI BAR is reduced from ~1s to <1ms. > > Cc: Andrew Morton > Cc: linux-mm@kvack.org > Signed-off-by: Alex Williamson > --- > include/linux/mm.h | 2 ++ > mm/memory.c | 1 + > 2 files changed, 3 insertions(+) Reviewed-by: Jason Gunthorpe Jason