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 7AEDEC83F22 for ; Wed, 16 Jul 2025 20:21:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E94938D0006; Wed, 16 Jul 2025 16:21:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E6BF58D0001; Wed, 16 Jul 2025 16:21:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DA9288D0006; Wed, 16 Jul 2025 16:21:09 -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 CBA608D0001 for ; Wed, 16 Jul 2025 16:21:09 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 95AEEC053E for ; Wed, 16 Jul 2025 20:21:09 +0000 (UTC) X-FDA: 83671247058.06.2068D29 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf26.hostedemail.com (Postfix) with ESMTP id 4694F140006 for ; Wed, 16 Jul 2025 20:21:07 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=dRvORE5D; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf26.hostedemail.com: domain of alex.williamson@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=alex.williamson@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752697267; a=rsa-sha256; cv=none; b=q4jWpRriasLwY7U3pPjxepiHGcu0w2uF5Yg6YmGpxkdtQ2R3cU8bJQXWh9dPwNZPldjH6S CB+muo2HIAC5sIOMQkwgVj9mPFqRYZkF5qlgpW2kfKwCtmqv84R5iC74OL3DjsP6ODFtk6 m9getH2rYFTI7SmAY/Y018KvJml3/2A= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=dRvORE5D; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf26.hostedemail.com: domain of alex.williamson@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=alex.williamson@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752697267; 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=+KRyfEizDervzB9URwnxaW4EOZooRbX81eT+I8qjpbU=; b=qrh7+GRhRP29zT5OVVlJxmEKXThuJb1Qhc0+6wyaNmuctT89T06AzBABmN+pa8qvIseM8D 1BVIEzOE59Ns/hKplrGQKr78VuKJfb2UJnmHz36Kj7YEANdeMloHA0NaTekEdj3H+bDei6 Xt2zCLxB8CuJ/onugVeUXGscd0K/KiU= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752697266; h=from:from: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; bh=+KRyfEizDervzB9URwnxaW4EOZooRbX81eT+I8qjpbU=; b=dRvORE5DoKe0hI5g2KliLZOZ0lnWrXOIpvx0DtFQp8228FLt8GnBUeF2iCjvGlK83Fw3+g 3WTfvecXA14z8sn8XEv94U4yiZOaqnYRbGoXuSJcHkvzBiL6VG3c2bioy97zh06PjvMPRK SMiE50h3sR1mn8xmwpnARnacNeXaAbE= Received: from mail-il1-f200.google.com (mail-il1-f200.google.com [209.85.166.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-407-vThxltQKPk2ZqnTOGoxj0w-1; Wed, 16 Jul 2025 16:21:05 -0400 X-MC-Unique: vThxltQKPk2ZqnTOGoxj0w-1 X-Mimecast-MFC-AGG-ID: vThxltQKPk2ZqnTOGoxj0w_1752697264 Received: by mail-il1-f200.google.com with SMTP id e9e14a558f8ab-3e0500ab478so25965ab.2 for ; Wed, 16 Jul 2025 13:21:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752697264; x=1753302064; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+KRyfEizDervzB9URwnxaW4EOZooRbX81eT+I8qjpbU=; b=ZU90NGSgRZXKtk0RK4uJWZXL0Nm5ImNz5vb3EGAc79qBToX+JYjGgv0nYfU/+/xXlo caU2a7Nxb3eEiWvzyPtlKWD9ZN7XL+c08PMTX/enlVvIY8DV+bt67ivFRvTCGdT9r2l4 qZAUWbx4Tmdwjx9yfxctpq+JJ8ZGDi4l0HiA12kChiBuanH9vO5MdEiVWXEHqCarz6B7 zFVj8E+z8LJb9Xuvj2WdMY8UFSQtl6AbUW5GyMdRaOVkZ3kUok24gvMSKCsZM6XyAvSE onkXP1uTC1gOFuLvXyS7opn3MKt8KKuEh5OMCnkAcAS5f4kQ0Mx5NcQWBXL4xdImhiI9 ikew== X-Forwarded-Encrypted: i=1; AJvYcCUjU04kD6DL1ToOo0qZH91Z8AHsgTm0qroXVms5t9zmMJqvQ2rL70wVh9i2bBwC9B+g3KrPanki/Q==@kvack.org X-Gm-Message-State: AOJu0YzGrzXlxcDUDn2LwAlSpI4pjCuBfazoINl0qusn4Ao+gOcmuImo nNgJVOupnfbgtN8TeRgHZwTT6rz7tX8z+SIN8AZwWdk2VIvarTOdVXgDo8rjj9oBo/FcwzBfRe7 QfHc3FDGmE7I10mq3C6zzFpwAZOzrOuXmNL9ewpqYTOIXAqmIyVeA X-Gm-Gg: ASbGncsHFvZs4scbIe6l0qhus/4kyvh6JU1syKg0lTkCKN56vIDy0Y7IMy/MlesO3fl n6zZJEsK2Xj4CJ8UIagNCbYbODhFECMfItN1TrvSEi7ZYjV/Pp3fEVKr0weJIF62+baV3Pa5VSi NoQgF3Pv8BTgTB1sWoDPYefNljRg/ccnaFw8koYIneFaqFNeYWm5XJdFXuqAALmwMGrBWU9acUF xtMqqWPuK7LcROnwYkMN9qgnzyagElPoXehwfdSgA01kwzm9OFVTF3R+bAs+PJKEt5BmW5j4m+x 9Sz24oIgCce6fu/zOBmQc8j24kkN6kDe48zuEFXS0HE= X-Received: by 2002:a05:6e02:4408:10b0:3de:2102:f1dc with SMTP id e9e14a558f8ab-3e282306bfcmr7967255ab.1.1752697264409; Wed, 16 Jul 2025 13:21:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEyWD5jsgxIGv5H+miLBNx2eMzeqFCQfVYPaY0j+ulJJHdS7tIZYNZrZSZdkdlShI617odZGw== X-Received: by 2002:a05:6e02:4408:10b0:3de:2102:f1dc with SMTP id e9e14a558f8ab-3e282306bfcmr7967225ab.1.1752697263897; Wed, 16 Jul 2025 13:21:03 -0700 (PDT) Received: from redhat.com ([38.15.36.11]) by smtp.gmail.com with ESMTPSA id e9e14a558f8ab-3e24611ce92sm45232005ab.6.2025.07.16.13.21.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 13:21:03 -0700 (PDT) Date: Wed, 16 Jul 2025 14:21:02 -0600 From: Alex Williamson To: lizhe.67@bytedance.com Cc: akpm@linux-foundation.org, david@redhat.com, jgg@ziepe.ca, peterx@redhat.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v4 0/5] vfio/type1: optimize vfio_pin_pages_remote() and vfio_unpin_pages_remote() Message-ID: <20250716142102.1db0ec85.alex.williamson@redhat.com> In-Reply-To: <20250710085355.54208-1-lizhe.67@bytedance.com> References: <20250710085355.54208-1-lizhe.67@bytedance.com> X-Mailer: Claws Mail 4.3.1 (GTK 3.24.43; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: bY5i1jJwU5FC07xkwlmJi0P2zIn8QSSbTlanvTiBSDY_1752697264 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 4694F140006 X-Stat-Signature: pz584rgjxwrpc54uf7f5yea5edbj3rop X-Rspam-User: X-HE-Tag: 1752697267-580447 X-HE-Meta: U2FsdGVkX1+GEw0Mqw8HvOOR1DcjVmYNA2qx14EDbobtRH0GcWi5Votyf/MhDzRFEvtuIyGfhgYN3AXQpyY9lq0c/ylO8W2kMj+f/AYTEn4KjkuIkpbm6VsyhIISzh0nS07snze7LpMZ8nmMo3Pwvu8IuH4Uksp+FktsVqgD6+pi7V2UO5QlEEB3vLQiOZkyDiJ+/BhlS4tTozRvMfa7AXJU/OJpRrCyf+v6jf2xvD4OQh4uIyi6JiDxhIqZUf+G40+uZpwPJEVpnnvitDH7YvmJZGrUuGhMP01ltCQl03HJ5emXpg1ZLoMN+Q4i6tnfGb5ByGhNdLEUOsp+693qtRjjJEZiaP0JfuCfdJLU22xmVsLkyP1zpisbSc9CpgQ8X0BPpJGNFxB4/JS+sxDb3kejyQlYigrv1C89U3xlXozmJeM+RuceJe3vFPqUtXY4JqMTuRQQI7+zrejWkiLSsr3kmvTuh6wy+b2LY8DT8CjX02FzhyNkOUIj19y93yxb35DK2XUWLiZ2+uAIg0a5crmzJdgtJZlv+h1QDthujdT+v8qP/s5AAOjyjyRbk+6Gb2VepmbGzfx8iRzvEbTPdwx+DZOJF2XlUP0DUHr02ekAA8eVCiDRyJ3GH9l+hWCTCujEKhlaCknLYoVgkVkzEt3ZHVi2We9zwGa/3fb+qmyPQ7zqJWImtDxCg9AS/ZJI1qsc9214Kx1sEXC4fr1767KqAmZ9wJwa6nBXIDpkXS2DFSNL/mP8PiNn88LN5jp6zimE10LqOGoiPO32t5Jo00n8jEldeUxuNZ8GuEugP9Wl9W5r1sL/z2B9j9a21+1xsWDC2T15kmtySVKwadrz4RoGmfvTSukDKPsx52wHAP6HBu7ZX1nq8ukEWEMl02Kz5K98CiuqS/ZhvJfkHeenDLWRcBDaRm5cHAJ6U69TCht5Tn86CMQh0sS5BSjAYjqqgyD2wzWT0/rf2YetKNP WrhsKGkv DgQMEEX/qXu+vNHNl+VbimRwutb2oKHyZcgvW4N3cjEeCR2yYhdNDOEDDXd+GEAeB+lrboJQ2aiJ8tZf7a/e01fM81AECkDEwNzjAEOAnSVc+XxCV9gvFCCLWoT29fd63bRS2rB5rxXgeVrhANmqFeKPchJkghDVr0h2zA34tyYOVaZaDgfcOVCob8CQTDqHVlh6S+8wQ89ors+p5uOrJYV62XleR7qwOnirX9YbAFF1CI9Wedtpg0L4rO4nc5i5uW9BAFXkNI6nvbPGsmUFhIy7Z1uxKEqDvTCJct3HnIgFMIS5HUZDKiDbkpZlmd+PIXIMqFhK4nvXborNFJR4oTk0LtQ7ekk8wDP+SW5BTFEZMUjR+ehPxuNPYFTFtxUcrceZRVmMi/LAe1x/ZFu7O2ZuR1P5aUeBEQYojkoOsLXxaE7KavuA9ZjpIAUvHrMzTnNzSMNFA2b71ezCaeFnVvvpHyNv0pLJ0hLvjNROAINVaGKINC1Co+zXsJbzQxhd4G5RPjfgv8RXitpW42/zNYi0J8mPZqwZ174v9+L5KgdzcSgA= 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 Thu, 10 Jul 2025 16:53:50 +0800 lizhe.67@bytedance.com wrote: > From: Li Zhe > > This patchset is an integration of the two previous patchsets[1][2]. > > When vfio_pin_pages_remote() is called with a range of addresses that > includes large folios, the function currently performs individual > statistics counting operations for each page. This can lead to significant > performance overheads, especially when dealing with large ranges of pages. > > The function vfio_unpin_pages_remote() has a similar issue, where executing > put_pfn() for each pfn brings considerable consumption. > > This patchset primarily optimizes the performance of the relevant functions > by batching the less efficient operations mentioned before. > > The first two patch optimizes the performance of the function > vfio_pin_pages_remote(), while the remaining patches optimize the > performance of the function vfio_unpin_pages_remote(). > > The performance test results, based on v6.16-rc4, for completing the 16G > VFIO MAP/UNMAP DMA, obtained through unit test[3] with slight > modifications[4], are as follows. > > Base(6.16-rc4): > ./vfio-pci-mem-dma-map 0000:03:00.0 16 > ------- AVERAGE (MADV_HUGEPAGE) -------- > VFIO MAP DMA in 0.047 s (340.2 GB/s) > VFIO UNMAP DMA in 0.135 s (118.6 GB/s) > ------- AVERAGE (MAP_POPULATE) -------- > VFIO MAP DMA in 0.280 s (57.2 GB/s) > VFIO UNMAP DMA in 0.312 s (51.3 GB/s) > ------- AVERAGE (HUGETLBFS) -------- > VFIO MAP DMA in 0.052 s (310.5 GB/s) > VFIO UNMAP DMA in 0.136 s (117.3 GB/s) > > With this patchset: > ------- AVERAGE (MADV_HUGEPAGE) -------- > VFIO MAP DMA in 0.027 s (600.7 GB/s) > VFIO UNMAP DMA in 0.045 s (357.0 GB/s) > ------- AVERAGE (MAP_POPULATE) -------- > VFIO MAP DMA in 0.261 s (61.4 GB/s) > VFIO UNMAP DMA in 0.288 s (55.6 GB/s) > ------- AVERAGE (HUGETLBFS) -------- > VFIO MAP DMA in 0.031 s (516.4 GB/s) > VFIO UNMAP DMA in 0.045 s (353.9 GB/s) > > For large folio, we achieve an over 40% performance improvement for VFIO > MAP DMA and an over 66% performance improvement for VFIO DMA UNMAP. For > small folios, the performance test results show a slight improvement with > the performance before optimization. > > [1]: https://lore.kernel.org/all/20250529064947.38433-1-lizhe.67@bytedance.com/ > [2]: https://lore.kernel.org/all/20250620032344.13382-1-lizhe.67@bytedance.com/#t > [3]: https://github.com/awilliam/tests/blob/vfio-pci-mem-dma-map/vfio-pci-mem-dma-map.c > [4]: https://lore.kernel.org/all/20250610031013.98556-1-lizhe.67@bytedance.com/ > > Li Zhe (5): > mm: introduce num_pages_contiguous() > vfio/type1: optimize vfio_pin_pages_remote() > vfio/type1: batch vfio_find_vpfn() in function > vfio_unpin_pages_remote() > vfio/type1: introduce a new member has_rsvd for struct vfio_dma > vfio/type1: optimize vfio_unpin_pages_remote() > > drivers/vfio/vfio_iommu_type1.c | 111 ++++++++++++++++++++++++++------ > include/linux/mm.h | 23 +++++++ > 2 files changed, 113 insertions(+), 21 deletions(-) Applied to vfio next branch for v6.17. Thanks, Alex