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 E8447C3DA49 for ; Thu, 18 Jul 2024 14:03:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 80B556B0089; Thu, 18 Jul 2024 10:03:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7BB066B008C; Thu, 18 Jul 2024 10:03:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65B586B0092; Thu, 18 Jul 2024 10:03:23 -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 4195A6B0089 for ; Thu, 18 Jul 2024 10:03:23 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id F3DDFA4539 for ; Thu, 18 Jul 2024 14:03:22 +0000 (UTC) X-FDA: 82353040644.20.9284FB4 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf08.hostedemail.com (Postfix) with ESMTP id 1598016003C for ; Thu, 18 Jul 2024 14:03:13 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=RttXjGY7; spf=pass (imf08.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721311373; a=rsa-sha256; cv=none; b=0VozlZjf/UIKzMl3ikXGFQauVKxkL/jj1T5/uA6FL3OJ6c8S7smBWKrN3uRuweOhR4wsdd 6svL3/z0cUz2RW15tN1BFsDamdZ+rrCw9UkawJhhPusN9x0lh+WwHi//H39ipdFHhaWm4L 1JjnfDUHorDm4zakkWX41BLS9mIxdHE= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=RttXjGY7; spf=pass (imf08.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721311373; 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=OYE/OG+HdD4Z9VFTdkvvBcDpYtJplAEOdQt9J2Aj6Ug=; b=Pbzv9VVQkNnrXaL76IkZA3b0UFMbaviDJdE2PdpY6SoJz8gS4PNg1BWxHlBJiH6DEvOLDh vH3jqVL34oWt/JKR0sIZsDR7EQOweCVHsibq94GoK7ERnx21eVckGxD60NInebQipgDKXq N9xo4KAIeu2Sik11jBTvMZQr4xh+tQE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1721311393; 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: in-reply-to:in-reply-to:references:references; bh=OYE/OG+HdD4Z9VFTdkvvBcDpYtJplAEOdQt9J2Aj6Ug=; b=RttXjGY7QLiEN8kvr0wjIVFI6Hl+4FnpmtrziZUe7TKBzhm5k64S1u73HxVQLLPssZKNde tOdMt+4SD3WKIb467WOkF7bRhelcgP3FtfITblhIyH2SgwMPaIVrCdWwz050FyaFRjWqXG Xp/aA84R5fCGeyU1wnqTTdRcbv/eB3Y= Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-475-Q9kogvF8PUOmF4pMYVb3SA-1; Thu, 18 Jul 2024 10:03:08 -0400 X-MC-Unique: Q9kogvF8PUOmF4pMYVb3SA-1 Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-447e34d7437so458051cf.3 for ; Thu, 18 Jul 2024 07:03:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721311388; x=1721916188; 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=OYE/OG+HdD4Z9VFTdkvvBcDpYtJplAEOdQt9J2Aj6Ug=; b=Z5D5GBZNrp6OW6xfk9lqEzmh8RSGVKlXZ1Tzx6tJM+vc02uCAjTUIS6bNiwYshEC8f sh/uBoYZ8WOsqG4fCnPTdNiBMp87uzgbbg0fthdpaVJ1uWevMu08qW4iFMjzCLkFe8wx yMyAMr/w3z0FAEzg0VMCwzc/cL34sweV9i/N7b/Ikp0qaReEW9KJRS7QFu87aG1BSYJC 2sLGzDGRIiv93/ACXmgvpeR4q2k8b8r4iPGhmpB6p7lx5xVMAp/+cZ9Wvx1L6Ed3mdwI O/OwLJQcplW2apKmZDH51VQrLzz/pPl4EFDkmAo13XqhjbJiaEE8eTA+2X4cYKPfAn0M M8WA== X-Forwarded-Encrypted: i=1; AJvYcCWQBnFly8TxPnl3u47pQD/2RH3itiC+TgHiMv/AW6BtGHC2xaDM/nlFUmsP80gcw0Mzvy6/YKpju6yBLHz9bMd9sas= X-Gm-Message-State: AOJu0YxkTj18IID87s1FrSoNyvENW253DZ2s7TXjf6/Y8HYd0VKwLJZo Nq/SJPfVbww+oMYiTqYo7rrLVLPJPlowoG7f5n2TfVfLVzhPQENqKE0Qxp02SpYkVg+wwtWSC6G 444GE14nTFcfpYJLs1y78GGJHZEb6zwogyo46qfGhVnMvedK+ X-Received: by 2002:a05:622a:5d4:b0:447:f0c4:8298 with SMTP id d75a77b69052e-44f969a1bd8mr5919731cf.2.1721311387846; Thu, 18 Jul 2024 07:03:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGvMTr15AiWMfY/nf1IKErCxcnjlBaB0HXLzkPMH0ZkZpNC3IMSp9UWIkbhEu5KDhKrV5mNxw== X-Received: by 2002:a05:622a:5d4:b0:447:f0c4:8298 with SMTP id d75a77b69052e-44f969a1bd8mr5919281cf.2.1721311387188; Thu, 18 Jul 2024 07:03:07 -0700 (PDT) Received: from x1n (pool-99-254-121-117.cpe.net.cable.rogers.com. [99.254.121.117]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-44f969be502sm2678911cf.25.2024.07.18.07.03.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jul 2024 07:03:06 -0700 (PDT) Date: Thu, 18 Jul 2024 10:03:01 -0400 From: Peter Xu To: Yan Zhao Cc: "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , Andrew Morton , Alex Williamson , Jason Gunthorpe , Al Viro , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "Kirill A . Shutemov" , "x86@kernel.org" , "Tian, Kevin" , Pei Li , David Hildenbrand , David Wang <00107082@163.com>, Bert Karwatzki , Sergey Senozhatsky Subject: Re: [PATCH] mm/x86/pat: Only untrack the pfn range if unmap region Message-ID: References: <20240712144244.3090089-1-peterx@redhat.com> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Stat-Signature: 4dr3zypatehfhdjdwdoxqsi3t7padjut X-Rspamd-Queue-Id: 1598016003C X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1721311393-577965 X-HE-Meta: U2FsdGVkX1+cKPhZhw/mTcB+bFcTkEAk1HkqMefBiENNyyJFm8V2YBsVW3bh0fSUkDZ8ATKmOFoS1nI+RS+3MXGCGlq8kFe6QwlH6SjjDksMNat3I08Cyd8LkgE5F21AZJ2d+75Vjt5G2TcO6Oe57FyHdups7Bxijw9N/6V6EOJkiQpGbvUwGfucSGFMkTznK7N9RygOE+vc0/6gvLZcTs3+L5CW4cm0J1bOaV/7eWiT8eLcdzdUOMALYJrQeErZfTUWdbqwRCpfB/5W6mQYjI7Up0Dd0QL7IPu4h00KAVVDWbBif3TFTx83icJA2K8XvcEkbxSWqL8kSZ9tPBMdOxUGw7VCCvS8kbTcRS+BgEWctJnxj3GMjzfZPr9gvubn57XXOsc8eZnzaxwylRqhxWNy2h9jyIbq6RHAWa8WWlfbZvbZI1JyzRfw4nahK6Krlb2LiP2k1LFUrKRbq/VwzkWtrH7G4yuVZUE4vW75PjXSC3rvdObPBbqWS8tpI2ygh036ZExdxJVAWUyUvGOREdrTQ+LjLevH01cIu8Bli1rlcAParW66wA4p/MvxlDgcrWPBeAJ1iTMP5jYrFO3m0iBYcGil/NXu7nbLNhHME2m41Op8196W054Yl3JIwlCaYUYpo46W6aTRdD1p7Y1x8ThkDT6mAqiBtCKCw5N0O3LiweLl+p21JUsz+M3Lt7jxnUQirn4Ehmkd0oN5NQcNwIDWQf9GtxiDxJvT22pIRoOsuNstaUteWII1DBZ7x1vL2eleyyxE+TFTzRqSM0gYieO66e7/anMbAW22UzlVaEUv5qhj/xCBrboAfCU7cz+xuMQZHK76nc7lJou29lPiD4NkyE7mOsmdJpHDYWfjerjR9RP737+R1ZyQ0dgrI5zdF8CLJojigv8/nrU8K5bF/S3tMsBF+lUOloDxnZ5KMa9BS4lqR+w98cpQ6SDK4rSaNJ5R+F1fYccIZ9HLm+9 zK2qcyZj 0LOIuE1NptGAlUqo4VeeB2fsGxuWKp5eurntIo17LmomZKjDUuKuBMN7T1jWBBoVR4QeSu+nhFLFfjsH4vJmqp4/pRDWQlQOf4j0tE9sLq4y3uicStSToszYX0RtGe5LO8kG/21SNsnTrjipsH5/enXFA1iiqCkXdJv8ZLTEnHsrcRnKhM/Km4KmuyNuZFs5BBD/0Q1U/N8oSqct/yA6mRswaq6+dWGtNVbG510S0vU91aetCXqNCTYdacyfIKatBpwGZstUWDLxSe57ZGGZ1KTgoVRlnZpP1oCYHzS2vQpcEZuhfJRjQA1M04o+gBhLBvzOOQjzSOznboavGcoa/K6Q7wQeG4QzjOjW2kl/2axty/wX/x/qUHpDwr7YDy0DIvGi/Jfy6/ZJT9O2yWLDnAupmOPOTCpPQCUNY 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, Jul 18, 2024 at 09:50:31AM +0800, Yan Zhao wrote: > Ok. Then if we have two sets of pfns, then we can > 1. Call remap_pfn_range() in mmap() for pfn set 1. I don't think this will work.. At least from the current implementation, remap_pfn_range() will only reserve the memtype if the range covers the whole vma. > 2. Export track_pfn_remap() and call track_pfn_remap() in mmap() for pfn > set 2. > 3. Unmap and call vmf_insert_pfn() in the fault handler to map pfn set 2. IMO this should be the similar case of MMIO being disabled on the bar, where we can use track_pfn_remap() to register the whole vma in mmap() first. Then in this case if you prefer proactive injection of partial of the pfn mappings, one can do that via vmf_insert_pfn*() in mmap() after the memtype registered. > > However, I'm not sure if we can properly untrack both pfn sets 1 and 2. Untrack should so far only happen per-vma, AFAIU, so "set 1+2" need to be done together as they belong to the same vma. > > By exporting untrack_pfn() too? Or, you'll leave VFIO to use ioremap/iounmap() > (or the variants) to reserve memtype by itself? Thanks, -- Peter Xu