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 07112C3DA7F for ; Mon, 12 Aug 2024 23:44:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 821496B0083; Mon, 12 Aug 2024 19:44:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7AAC96B008A; Mon, 12 Aug 2024 19:44:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6246A6B008C; Mon, 12 Aug 2024 19:44:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 40D266B0083 for ; Mon, 12 Aug 2024 19:44:45 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id DCB091604BD for ; Mon, 12 Aug 2024 23:44:44 +0000 (UTC) X-FDA: 82445225688.28.6D2E9ED Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) by imf09.hostedemail.com (Postfix) with ESMTP id 101CE14000A for ; Mon, 12 Aug 2024 23:44:42 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=WVm61xWR; spf=pass (imf09.hostedemail.com: domain of 3aZ66ZgYKCMwAws51uy66y3w.u64305CF-442Dsu2.69y@flex--seanjc.bounces.google.com designates 209.85.210.201 as permitted sender) smtp.mailfrom=3aZ66ZgYKCMwAws51uy66y3w.u64305CF-442Dsu2.69y@flex--seanjc.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723506213; 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=UrUY3rIeJYoBe0Ouux9HKw4xsjRgOYNubTcynFZwH0s=; b=xvBTcsPWBJSUmhKuDL05V1/Fq2dZwD4g5uh/H6+DCLsK87Q4dgKZPZJG7uAOPhdZW9wWIy 0S9urjH/xSUkv8Xi0VOqL57niTpMtEAaB86ZSXv++0gcLqX7tqWIZy8NSep11HAASjjabz jGuSfQGG38T/GP8UpSD6ojS5OUD2NKs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723506213; a=rsa-sha256; cv=none; b=CyC9IVAIKadbcKdF5vQ+IFFFAzKUXiSqU3dLB48WnAFO3Uxex4e6mSVL5mXOGY6wz3PB8/ BYW4e1dzjqdCWXF8gXzBkXF7doh+DfJumEoXFFe47jaLHCbyRZM1/JKnNnFxaBeETWmtdv cobJnPpbPfZBNsUaS8PbTS1VkL/gsOs= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=WVm61xWR; spf=pass (imf09.hostedemail.com: domain of 3aZ66ZgYKCMwAws51uy66y3w.u64305CF-442Dsu2.69y@flex--seanjc.bounces.google.com designates 209.85.210.201 as permitted sender) smtp.mailfrom=3aZ66ZgYKCMwAws51uy66y3w.u64305CF-442Dsu2.69y@flex--seanjc.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-70d24aead3eso4289776b3a.0 for ; Mon, 12 Aug 2024 16:44:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1723506281; x=1724111081; darn=kvack.org; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=UrUY3rIeJYoBe0Ouux9HKw4xsjRgOYNubTcynFZwH0s=; b=WVm61xWRtSVYnWnwxjf54VmDDUp/Fe0sTEnTK1TCjOI5bke9539YlS4t5x8P9++Udr 11pirno5Kna0/CnxDHz32erxDn3mY12r5JiTQEovQQjjSFiFMmfQsGjs4z9EERgFRyjZ k4t/sWUdrkZTT6ihZJ5LNixq/T9es63sYlScPeu0DZYz8YEocW4J9kwN7kY+8Xc3ipmL WmXZRpFwxHY1zW2wVfWf6AyKigx3hlPSNZyIRibMRPTqGB35FKfNfsLbZqABBKx5p1YB 7LgxC7ykzkLBjxoU0/dkcyNwUAbtt5sKwVT35VfaktOx2As5HiUyb9MDuiP/vhiGRtyO ZV3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723506281; x=1724111081; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=UrUY3rIeJYoBe0Ouux9HKw4xsjRgOYNubTcynFZwH0s=; b=eALUEPRn/cF8XmdjlBWxOc9Vmeb0e3xpb6lyAtzEsDXSWE46WQ4cjYLrP2S2hYDx43 jgg+YFiuSi2hDOZE0GdeE+nSScRA+L4jFbl62aFJpiDDVcK5GsjIwS7af9pAQxwqLR5A JoZYu3xtJjvA7oMZUg4rEErO096AOlBuQfMmR/PwzK/itUiKg0mTsMxU4yM6+AhdLkIf +yeWboz6YaaDu9N3n+xOj4Oz8yKR/kv8j8SN22/bUm0/f70rfSIDqdWJ+8zQP6OG16kW Xbr9bDToztpCVDoDWydlClmD7A/35FmCWgElDU0uRaD+P8T5P4ls8Wf/Q5H6M01aZ/+X ED2Q== X-Forwarded-Encrypted: i=1; AJvYcCU6iTUGXvI9n1D0gbwemhN4oqalxpucHB2zVyRmua5FnZDnhy1Y0iEeP8hLo9MxpZOmepEOMEk7hpzXlpuhjlspwqk= X-Gm-Message-State: AOJu0YyDGJsdyJu5O3EpEx9ZqGKZkKRtWfWMCg+lCWQE3F+3SH6zHN0O y8+V49qeWDGX3wX865raZO6kJ3Q+VSCBfgE0GRObsLaSmrAork+6Y16tEuHFzNUMeOK0ZWnfxk8 9/g== X-Google-Smtp-Source: AGHT+IGdc2rxTHl1QtaSN9GH/Q9+wvgi/0cyWFA0UrSnLq1lqIiESyoGNp3cjAk7IHs7Im6Tod87VUtigrY= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6a00:66e8:b0:710:4d94:f9aa with SMTP id d2e1a72fcca58-712552c0336mr7070b3a.6.1723506281370; Mon, 12 Aug 2024 16:44:41 -0700 (PDT) Date: Mon, 12 Aug 2024 16:44:40 -0700 In-Reply-To: Mime-Version: 1.0 References: <20240809160909.1023470-1-peterx@redhat.com> <20240809160909.1023470-11-peterx@redhat.com> Message-ID: Subject: Re: [PATCH 10/19] KVM: Use follow_pfnmap API From: Sean Christopherson To: Axel Rasmussen Cc: Peter Xu , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Oscar Salvador , Jason Gunthorpe , linux-arm-kernel@lists.infradead.org, x86@kernel.org, Will Deacon , Gavin Shan , Paolo Bonzini , Zi Yan , Andrew Morton , Catalin Marinas , Ingo Molnar , Alistair Popple , Borislav Petkov , David Hildenbrand , Thomas Gleixner , kvm@vger.kernel.org, Dave Hansen , Alex Williamson , Yan Zhao Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 101CE14000A X-Stat-Signature: rnr718gmezggg47zs1e34b67kzczysht X-HE-Tag: 1723506282-320605 X-HE-Meta: U2FsdGVkX19Aa6Y09eSuqAyO2OTMciy2D5uA3TifoAOPUUZsRLCDa/jx3iY8ZvQehGR9S6nILR6RXhqt/mu4ahwNjkKiw/n8oKfo2hjxPWZwgZnpizfPSUBrW38num4HGxp1l9N8gd+TPU6hLGgdNx3ddlje5012/GkS8pu7F/iL+NJX0E14IMOsWbE7VjJl8lSououvlmNQlKIqduavwEUhlGJ56GGLybq/XHzkSgpq7KYVNuhu12+c6hUrYpONe0efkO/QHs+OhUL3hkW07ghzKCeW3Hkwb2/6GadNHUsYhiikt+r2J+3dPTsw7lRtO972vO5hRJxXxIf7y5xtjAADVRqVV1MzPp1NcCzkpfs871E0iC74AjXc9lpM1T8jc8EZ+vs/1evM/1TrrDrcUgO47Em/Ug3cA6wIFykdlkfIMWvetycpxLwIrkF2zoU/hCzK3f3zTlqJedQ1skosF0w4LPZCnjiQzSxgyL3JNDIGP3j/uiNU/JpAoKboneJVJ8CeuL7yPUIDtmtm2qv2PjDZnGI/1OQlMXYVHtWPzuO9gYLvzuoZ3wbh1/LbW69+FXtFP0Qb5jYQLj93LVGAybohmBcPSsWNHgW8Lo/dU1g2pb9j/jMYPG/YVw0iJK2ewWpIma4hxCtppH8jD1kZ3U7aHMfPsminZeqFSqGdpJzCLUe5FqqZgrfMk03HtvCsIIaWEtFvVDWVBSna7Tzptufs+guCLZK93ho0q8zJAsVTSGu2F2vNKD8gC+ybOXoLMMDJzGnFcpiRirr0jPSjOL6waNLLPgr/vEAgOC+W5+VNuaYA+JW0eeo9CixXF4cS3q7MpYA62DqfaHEHhTHxNZPqjZPjtj1VhWTj/lkNAqQU3VA5v2+WZ4A/zOLZr2t7vt5i6/dv4CG4Ql3imgcK6XZWubn5iJsziS3Q0pl5otJYGgM+RPnRoCBss60rHBW1X95YWWc2JPaWdBfjp42 WOSEeiAh SSmm5rNSky3BI6khh6U92o6obwhzgwpW3jDwXlUe8Rx2qrBGyVDQDBOdB3ROrSZe/2O6IoMNreB028u86b1+fGpsCEptz5JpcSd7itN7Qk+UzW+lILofTFcRXJ3eILAnJ3/JSx8OEfit/1SiPBHqr3lvTa+Vbc45l8tuJA1BnlDLl91b3DTneKea01vlIh1N1o8cQbMdIvp+mBTfBPGkYtSxpLjGTiPTGlWoDFL3Bsmz14r3HVdDwdVoeBORLuxCutIoFHyqh80VDfzmcgCbpIbd1qb5J4MwTMtBVAmAHErpAisKS7MJ6H+6+0RjyQasMMca7w6feLFdEkYGMNwRCfcO5epUAhNPtgPbld5g1L4rP69UruG0xA3nwF1HJzaNHUY/9M8LTTejXWhjZFvX3qZR5D+WdgSjgYtkLsjoJRrHLerI+lKVGwkWJdN7WC0PGJuSLxICSo6BereSc+YkNxEYARx2+KPhDKZG8CQG+GK+Jqz+W8bAJbvkduPab9bNbNQ/IAruhbgyRJ4L5ZxHHl/Wnf2rM4QmAIGMcOwaFh7VgxE06gKfUJ3Huk0xBZxc31BUUdH2Nr8oEIOnnjNvbrlGyHw== 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, Aug 12, 2024, Axel Rasmussen wrote: > On Mon, Aug 12, 2024 at 11:58=E2=80=AFAM Peter Xu wro= te: > > > > On Fri, Aug 09, 2024 at 10:23:20AM -0700, Axel Rasmussen wrote: > > > On Fri, Aug 9, 2024 at 9:09=E2=80=AFAM Peter Xu w= rote: > > > > > > > > Use the new pfnmap API to allow huge MMIO mappings for VMs. The re= st work > > > > is done perfectly on the other side (host_pfn_mapping_level()). > > > > > > I don't think it has to be done in this series, but a future > > > optimization to consider is having follow_pfnmap just tell the caller > > > about the mapping level directly. It already found this information a= s > > > part of its walk. I think there's a possibility to simplify KVM / > > > avoid it having to do its own walk again later. > > > > AFAIU pfnmap isn't special in this case, as we do the "walk pgtable twi= ce" > > idea also to a generic page here, so probably not directly relevant to = this > > patch alone. Ya. My original hope was that KVM could simply walk the host page tables a= nd get whatever PFN+size it found, i.e. that KVM wouldn't care about pfn-mapped ve= rsus regular pages. That might be feasible after dropping all of KVM's refcount= ing shenanigans[*]? Not sure, haven't thought too much about it, precisely bec= ause I too think it won't provide any meaningful performance boost. > > But I agree with you, sounds like something we can consider trying. I > > would be curious on whether the perf difference would be measurable in = this > > specific case, though. I mean, this first walk will heat up all the > > things, so I'd expect the 2nd walk (which is lockless) later be pretty = fast > > normally. >=20 > Agreed, the main benefit is probably just code simplification. +1. I wouldn't spend much time, if any, trying to plumb the size back out. Unless we can convert regular pages as well, it'd probably be more confusin= g to have separate ways of getting the mapping size.