From nobody Sat Feb 7 18:20:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B7DFE230BDC for ; Fri, 25 Apr 2025 08:17:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569046; cv=none; b=KwNDqeHLHRVLInjybpZwMEnZMoeVYhd+GAvYev2q5+eTsrfIarQV5ezC5sUqpx3pfg4vn8BE912hOTdl+n3lqk0d0Mt08lgHZCLume4dosmNoyXCmhfA3Z7x5cJEUBAq64NKNoyhyukogacDlUa/s7LMMymuynhdjP49sKN06QI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569046; c=relaxed/simple; bh=tE85qPRV00GBentDFXC2Wy18HDakEU4Sf8RDpCTCZcM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=upsTnl/eEqclRpBaB5CyR/2AJTOrLI5GcHrjkJq5umZFwkAwdEtwTsujnSzCXYVtYP7utBrub8l/BmC4xLwk/Dg0qWmfn2QCsH3Cmg4Ufv9zaZaHjyoYZa6xMtHFeFf8uQpi/bjhboN/+vQRIvzAUR/pFnpOU1AerJ5wZKQR4P4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=h2Kg4TbT; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="h2Kg4TbT" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745569043; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nRatMFVJgZO6lv6AeD3PmgD6qQLhfd2cdxeF01R18V8=; b=h2Kg4TbTwLw/7Ch08ooxsbmNKA8rNQwldvv/zbJ9L+hpaTzH+Lay+Y1m+qz3sguZEXEifw E+J1RTYkzCGRhsfhN9yUg0znMVZ65F1wvLh7X0UHqNxmzRDgvtzAPCQDVuMJ4OCLWFKAVy 1J9DdxrrqFCUoHVUx/GjIZ+WKExHs1Q= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-691-Ayp59FWVP_ekTmnviBlLqA-1; Fri, 25 Apr 2025 04:17:21 -0400 X-MC-Unique: Ayp59FWVP_ekTmnviBlLqA-1 X-Mimecast-MFC-AGG-ID: Ayp59FWVP_ekTmnviBlLqA_1745569041 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-43efa869b19so10864705e9.2 for ; Fri, 25 Apr 2025 01:17:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745569041; x=1746173841; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nRatMFVJgZO6lv6AeD3PmgD6qQLhfd2cdxeF01R18V8=; b=dROoMPrKPKcyrePJ2wSBPeehROHaaGbFpwM1o1euQFkrstA7bB5gBniI80LhLhKeDs pwgfrr41t3p5FCtNDUVObMm7RubVxt0Fc+7bljmPWW2rFuBowJN0Wpid7rdlW3O6hNQ1 EC1YOPNzYPDP2e7G3LFlY90nLl6+QkTbDzK1HhYQftw9XJ4VoUDz963GG4ZQG6vf3mch eIgzTPEREzMW3j2Hm8PiAhc3pUl8GCGOxiTtKtFzFIpvVEhZuEQT05FUmxGXwbk5HSGB ilfDYjtq+Kt+oMChR2ZHkl8+adI/kMvVczEGQ5jJGz/XH8ARDzWMyrg4VkO/xDqR9dDu 8zaQ== X-Gm-Message-State: AOJu0Yyd4/HgAxTE+QBOe8w6x6be1ALaJx1jwtUFlV3I5oPz/ZKNehB+ PXfKsJUXqJrOwYUnIv+KvoS3m8f7QE03gND3vhabbbY5xCQAER+yB2koQtXQhNEFBXJ3D+QmN0V rtEMB6v+KS0GE0ZnSMx1Y5MkS0TIMSU+mg1XfDuTgLTmOS/ZvNh3snn2kU6iDH+5mCnQqwNUiSr KJzWYdzvghgArFf0SPTRQIMozdRo4VqJfWc8qeLREiZQ== X-Gm-Gg: ASbGncsJXmlsJgQpwipUwJ69igK+YeC97jybswp77LygeFFIAX1cCHgyoI//J70Sj9s z5vGbTWyx1SvQQ6VN878aKjQLwd+yy3Odz4WaFTVt4vl2P4GDa7jz2jSPuffQhbhAMYuIGeRIFo YyNWoExQBUyCbPvAGjgWZTrJeosy8Ylnkmhh2WWhuaTqYmZsnRyyDlinxyn1U4rMFsIMZMF5ksd xXq0qQwffJht4gD0Ze/ebvhliMsyqjZyP1i0Vl2CaZg2p9RMXwHo5iO8GbZO9Ev2gvbd8kdE8pQ DnD5DGbcTuq25wRcD7mOnCeWVmdS0QHV1HTjovrE1lOl6l1KxsZW+dDcqEypRuroW67oVLo= X-Received: by 2002:a05:600c:a012:b0:43c:f87c:24ce with SMTP id 5b1f17b1804b1-440a669d8f0mr10327315e9.21.1745569040809; Fri, 25 Apr 2025 01:17:20 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFVinoHYuKj/8cUgxoKVvs8H4zVeT82NWUNjJq9UBXeWLT5FdTynwvFlGCuxwFT/AVFDXEE8Q== X-Received: by 2002:a05:600c:a012:b0:43c:f87c:24ce with SMTP id 5b1f17b1804b1-440a669d8f0mr10326755e9.21.1745569040316; Fri, 25 Apr 2025 01:17:20 -0700 (PDT) Received: from localhost (p200300cbc70f69006c5680f80c146d2a.dip0.t-ipconnect.de. [2003:cb:c70f:6900:6c56:80f8:c14:6d2a]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a073cbedc4sm1583000f8f.47.2025.04.25.01.17.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Apr 2025 01:17:19 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, x86@kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, David Hildenbrand , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , Peter Xu Subject: [PATCH v1 01/11] x86/mm/pat: factor out setting cachemode into pgprot_set_cachemode() Date: Fri, 25 Apr 2025 10:17:05 +0200 Message-ID: <20250425081715.1341199-2-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250425081715.1341199-1-david@redhat.com> References: <20250425081715.1341199-1-david@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Let's factor it out to make the code easier to grasp. Use it also in pgprot_writecombine()/pgprot_writethrough() where clearing the old cachemode might not be required, but given that we are already doing a function call, no need to care about this micro-optimization. Signed-off-by: David Hildenbrand Reviewed-by: Lorenzo Stoakes --- arch/x86/mm/pat/memtype.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c index 72d8cbc611583..edec5859651d6 100644 --- a/arch/x86/mm/pat/memtype.c +++ b/arch/x86/mm/pat/memtype.c @@ -800,6 +800,12 @@ static inline int range_is_allowed(unsigned long pfn, = unsigned long size) } #endif /* CONFIG_STRICT_DEVMEM */ =20 +static inline void pgprot_set_cachemode(pgprot_t *prot, enum page_cache_mo= de pcm) +{ + *prot =3D __pgprot((pgprot_val(*prot) & ~_PAGE_CACHE_MASK) | + cachemode2protval(pcm)); +} + int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn, unsigned long size, pgprot_t *vma_prot) { @@ -811,8 +817,7 @@ int phys_mem_access_prot_allowed(struct file *file, uns= igned long pfn, if (file->f_flags & O_DSYNC) pcm =3D _PAGE_CACHE_MODE_UC_MINUS; =20 - *vma_prot =3D __pgprot((pgprot_val(*vma_prot) & ~_PAGE_CACHE_MASK) | - cachemode2protval(pcm)); + pgprot_set_cachemode(vma_prot, pcm); return 1; } =20 @@ -880,9 +885,7 @@ static int reserve_pfn_range(u64 paddr, unsigned long s= ize, pgprot_t *vma_prot, (unsigned long long)paddr, (unsigned long long)(paddr + size - 1), cattr_name(pcm)); - *vma_prot =3D __pgprot((pgprot_val(*vma_prot) & - (~_PAGE_CACHE_MASK)) | - cachemode2protval(pcm)); + pgprot_set_cachemode(vma_prot, pcm); } return 0; } @@ -907,9 +910,7 @@ static int reserve_pfn_range(u64 paddr, unsigned long s= ize, pgprot_t *vma_prot, * We allow returning different type than the one requested in * non strict case. */ - *vma_prot =3D __pgprot((pgprot_val(*vma_prot) & - (~_PAGE_CACHE_MASK)) | - cachemode2protval(pcm)); + pgprot_set_cachemode(vma_prot, pcm); } =20 if (memtype_kernel_map_sync(paddr, size, pcm) < 0) { @@ -1060,9 +1061,7 @@ int track_pfn_remap(struct vm_area_struct *vma, pgpro= t_t *prot, return -EINVAL; } =20 - *prot =3D __pgprot((pgprot_val(*prot) & (~_PAGE_CACHE_MASK)) | - cachemode2protval(pcm)); - + pgprot_set_cachemode(prot, pcm); return 0; } =20 @@ -1073,10 +1072,8 @@ void track_pfn_insert(struct vm_area_struct *vma, pg= prot_t *prot, pfn_t pfn) if (!pat_enabled()) return; =20 - /* Set prot based on lookup */ pcm =3D lookup_memtype(pfn_t_to_phys(pfn)); - *prot =3D __pgprot((pgprot_val(*prot) & (~_PAGE_CACHE_MASK)) | - cachemode2protval(pcm)); + pgprot_set_cachemode(prot, pcm); } =20 /* @@ -1115,15 +1112,15 @@ void untrack_pfn_clear(struct vm_area_struct *vma) =20 pgprot_t pgprot_writecombine(pgprot_t prot) { - return __pgprot(pgprot_val(prot) | - cachemode2protval(_PAGE_CACHE_MODE_WC)); + pgprot_set_cachemode(&prot, _PAGE_CACHE_MODE_WC); + return prot; } EXPORT_SYMBOL_GPL(pgprot_writecombine); =20 pgprot_t pgprot_writethrough(pgprot_t prot) { - return __pgprot(pgprot_val(prot) | - cachemode2protval(_PAGE_CACHE_MODE_WT)); + pgprot_set_cachemode(&prot, _PAGE_CACHE_MODE_WT); + return prot; } EXPORT_SYMBOL_GPL(pgprot_writethrough); =20 --=20 2.49.0 From nobody Sat Feb 7 18:20:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 434D72343C9 for ; Fri, 25 Apr 2025 08:17:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569049; cv=none; b=iCde0egZCnkRoZV587ga/mbji5BvWfF3irHYrjVAg8g8dqx6U5xEuRJ5R7qWhGeK5sDarcaqN8BMNKchNWBdpXWKSlxwwmKdrjFU5irQPHPlTPDA065dOgeyq8PWrijiMh9i6HpmFghHHT9a8ypFBjre0Wymq/3g4kEUwD5Qf7A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569049; c=relaxed/simple; bh=rUDJGg2xixsJ9geC17OnQRzeOPjqu3DYWFdT6W++xX0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kEVh1px6GooSVVA3VCNIm9rL3SPdTr6cCcVoTgyW9CO59AUOynhCZ5qYqt1GI6r8AQNGdAUszfGqVd5U9VxtUMNVOuy/8UUIoRScTHTHwP9CNKZWewVMebYg3d5gUA1nF8edm9vF/F/D4OuB1w9DirGmbnMK8almlEBku3qHVpM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=iZrWA8Pa; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="iZrWA8Pa" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745569046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Va9GMEIBRGZSICWJDrjnUC4vZ0n+XJyTsP+h0wQhX1w=; b=iZrWA8PaRXx1ED32dbcZb40oz29JN1Yn+jr0ARZt4COGKvlR5pmEQsjkeBOJi9JXdqixeJ GuEt69Nc96AY0HLWMj5gsemcOs3xlHLW77XDR4K+QQwoYQnCgSTBUpAxDYGMLU6PTJiB5i azAa//3BaY6pELBX7VncWWw6ZQhtLAE= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-500-Pac2s1PVOWmzA3KWeNcaIw-1; Fri, 25 Apr 2025 04:17:25 -0400 X-MC-Unique: Pac2s1PVOWmzA3KWeNcaIw-1 X-Mimecast-MFC-AGG-ID: Pac2s1PVOWmzA3KWeNcaIw_1745569044 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-43cf172ff63so9149895e9.3 for ; Fri, 25 Apr 2025 01:17:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745569044; x=1746173844; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Va9GMEIBRGZSICWJDrjnUC4vZ0n+XJyTsP+h0wQhX1w=; b=JzVz5FB/7eRmZd+0PFKfOe/817aD/N0FmxXD+MdCz1v/VFXDzHAY3NnCzOEYia96LC OmyybzvVywntEEPKxuDOip2PF8T3LM9p79d9do1FJ97KLCXxcMkyHd9da4Sl+Lc6/RbJ e6lQieMtc3C/pRB+nEYuBNLEaxl3TLJQQV/mG5wPDsC/I4LVUUN11+6SHRqZLuuJywOh 6b01HFvGEHeZ5upVLdWZKvi9gGmNqtLDKdoMhdCyAMCWwhFuvvqUUTv7eyx47jRkYd4C wgGOCDXj0OLpeF0EVWPOGRMPhxAZ4iH3F5DpRAz/656r5nI/gyGvFLtxVKxtKJ0ozck+ PM3Q== X-Gm-Message-State: AOJu0YyAL15mvvV2ENvy1sR8arBoYGXmzygQMClnG+3abuDdqcmRxJyq C6yH3hs4zGFclYy05zzakQxgl5dKW0gE9BhyDGA1ZcaozmkzoapnzJNFwQJKwWQLJomZcyU7zNO oTUHpwO+DqtPF9RPMbJ/w56DM0lQpq6Wq6tbeqfqLdgrz0kLKxoWP9eY1Z0KdFMUrDAlsyEC01P Y2wfdpZeFEVNO9Bixzy0BjyX3AZAjtSzpbiIahiCUEaA== X-Gm-Gg: ASbGncvc713244i9DGEH1P0SuQuyplIXoy+2n9pFNZ9sNEdmH3Ii4EIM0gLNqLDO2By 1Kh2G/hD7CjsN44fZzLhK2LHuuN6ppkRMgbCdGQZYPus7hb0teAa6DeulhXlniFokGgHsc2q3Bm lUPHnvkziPctF56fsyzKjOUo6UyPVzoCUg6nAlwkl/xWoo84nnWu4aAzHwINsFzORD4S8FNmGm7 lwBQHaaceac+tCLAcZ57l+wt4bBm2k3BDqAkIEprrbsnsBE+aozmdEYceF/7Uuk+836EDgHfAAD BB2l8I6oDAy1qvCWC8EAziryYMXR5paOcmvlcIbuoD8fJ0eQyOy5l1erfQvNJ72e1UWzEw0= X-Received: by 2002:a05:600c:468c:b0:43c:f616:f08 with SMTP id 5b1f17b1804b1-440a65dedaemr9657645e9.8.1745569043718; Fri, 25 Apr 2025 01:17:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEI2/wK7u3Fl0eXpHmAGhyuo+dEfVtSzaDltjMj3X9fGs+yaHAUGB9HAX3epv5bPb/ULJhkQA== X-Received: by 2002:a05:600c:468c:b0:43c:f616:f08 with SMTP id 5b1f17b1804b1-440a65dedaemr9657095e9.8.1745569043248; Fri, 25 Apr 2025 01:17:23 -0700 (PDT) Received: from localhost (p200300cbc70f69006c5680f80c146d2a.dip0.t-ipconnect.de. [2003:cb:c70f:6900:6c56:80f8:c14:6d2a]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-4409d2e0241sm48926175e9.37.2025.04.25.01.17.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Apr 2025 01:17:22 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, x86@kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, David Hildenbrand , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , Peter Xu Subject: [PATCH v1 02/11] mm: convert track_pfn_insert() to pfnmap_sanitize_pgprot() Date: Fri, 25 Apr 2025 10:17:06 +0200 Message-ID: <20250425081715.1341199-3-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250425081715.1341199-1-david@redhat.com> References: <20250425081715.1341199-1-david@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" ... by factoring it out from track_pfn_remap(). For PMDs/PUDs, actually check the full range, and trigger a fallback if we run into this "different memory types / cachemodes" scenario. Add some documentation. Will checking each page result in undesired overhead? We'll have to learn. Not checking each page looks wrong, though. Maybe we could optimize the lookup internally. Signed-off-by: David Hildenbrand --- arch/x86/mm/pat/memtype.c | 24 ++++++++---------------- include/linux/pgtable.h | 28 ++++++++++++++++++++-------- mm/huge_memory.c | 7 +++++-- mm/memory.c | 4 ++-- 4 files changed, 35 insertions(+), 28 deletions(-) diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c index edec5859651d6..193e33251b18f 100644 --- a/arch/x86/mm/pat/memtype.c +++ b/arch/x86/mm/pat/memtype.c @@ -1031,7 +1031,6 @@ int track_pfn_remap(struct vm_area_struct *vma, pgpro= t_t *prot, unsigned long pfn, unsigned long addr, unsigned long size) { resource_size_t paddr =3D (resource_size_t)pfn << PAGE_SHIFT; - enum page_cache_mode pcm; =20 /* reserve the whole chunk starting from paddr */ if (!vma || (addr =3D=3D vma->vm_start @@ -1044,13 +1043,17 @@ int track_pfn_remap(struct vm_area_struct *vma, pgp= rot_t *prot, return ret; } =20 + return pfnmap_sanitize_pgprot(pfn, size, prot); +} + +int pfnmap_sanitize_pgprot(unsigned long pfn, unsigned long size, pgprot_t= *prot) +{ + resource_size_t paddr =3D (resource_size_t)pfn << PAGE_SHIFT; + enum page_cache_mode pcm; + if (!pat_enabled()) return 0; =20 - /* - * For anything smaller than the vma size we set prot based on the - * lookup. - */ pcm =3D lookup_memtype(paddr); =20 /* Check memtype for the remaining pages */ @@ -1065,17 +1068,6 @@ int track_pfn_remap(struct vm_area_struct *vma, pgpr= ot_t *prot, return 0; } =20 -void track_pfn_insert(struct vm_area_struct *vma, pgprot_t *prot, pfn_t pf= n) -{ - enum page_cache_mode pcm; - - if (!pat_enabled()) - return; - - pcm =3D lookup_memtype(pfn_t_to_phys(pfn)); - pgprot_set_cachemode(prot, pcm); -} - /* * untrack_pfn is called while unmapping a pfnmap for a region. * untrack can be called for a specific region indicated by pfn and size or diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h index b50447ef1c921..91aadfe2515a5 100644 --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -1500,13 +1500,10 @@ static inline int track_pfn_remap(struct vm_area_st= ruct *vma, pgprot_t *prot, return 0; } =20 -/* - * track_pfn_insert is called when a _new_ single pfn is established - * by vmf_insert_pfn(). - */ -static inline void track_pfn_insert(struct vm_area_struct *vma, pgprot_t *= prot, - pfn_t pfn) +static inline int pfnmap_sanitize_pgprot(unsigned long pfn, unsigned long = size, + pgprot_t *prot) { + return 0; } =20 /* @@ -1556,8 +1553,23 @@ static inline void untrack_pfn_clear(struct vm_area_= struct *vma) extern int track_pfn_remap(struct vm_area_struct *vma, pgprot_t *prot, unsigned long pfn, unsigned long addr, unsigned long size); -extern void track_pfn_insert(struct vm_area_struct *vma, pgprot_t *prot, - pfn_t pfn); + +/** + * pfnmap_sanitize_pgprot - sanitize the pgprot for a pfn range + * @pfn: the start of the pfn range + * @size: the size of the pfn range + * @prot: the pgprot to sanitize + * + * Sanitize the given pgprot for a pfn range, for example, adjusting the + * cachemode. + * + * This function cannot fail for a single page, but can fail for multiple + * pages. + * + * Returns 0 on success and -EINVAL on error. + */ +int pfnmap_sanitize_pgprot(unsigned long pfn, unsigned long size, + pgprot_t *prot); extern int track_pfn_copy(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, unsigned long *pfn); extern void untrack_pfn_copy(struct vm_area_struct *dst_vma, diff --git a/mm/huge_memory.c b/mm/huge_memory.c index fdcf0a6049b9f..b8ae5e1493315 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1455,7 +1455,9 @@ vm_fault_t vmf_insert_pfn_pmd(struct vm_fault *vmf, p= fn_t pfn, bool write) return VM_FAULT_OOM; } =20 - track_pfn_insert(vma, &pgprot, pfn); + if (pfnmap_sanitize_pgprot(pfn_t_to_pfn(pfn), PAGE_SIZE, &pgprot)) + return VM_FAULT_FALLBACK; + ptl =3D pmd_lock(vma->vm_mm, vmf->pmd); error =3D insert_pfn_pmd(vma, addr, vmf->pmd, pfn, pgprot, write, pgtable); @@ -1577,7 +1579,8 @@ vm_fault_t vmf_insert_pfn_pud(struct vm_fault *vmf, p= fn_t pfn, bool write) if (addr < vma->vm_start || addr >=3D vma->vm_end) return VM_FAULT_SIGBUS; =20 - track_pfn_insert(vma, &pgprot, pfn); + if (pfnmap_sanitize_pgprot(pfn_t_to_pfn(pfn), PAGE_SIZE, &pgprot)) + return VM_FAULT_FALLBACK; =20 ptl =3D pud_lock(vma->vm_mm, vmf->pud); insert_pfn_pud(vma, addr, vmf->pud, pfn, write); diff --git a/mm/memory.c b/mm/memory.c index 424420349bd3c..c737a8625866a 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -2563,7 +2563,7 @@ vm_fault_t vmf_insert_pfn_prot(struct vm_area_struct = *vma, unsigned long addr, if (!pfn_modify_allowed(pfn, pgprot)) return VM_FAULT_SIGBUS; =20 - track_pfn_insert(vma, &pgprot, __pfn_to_pfn_t(pfn, PFN_DEV)); + pfnmap_sanitize_pgprot(pfn, PAGE_SIZE, &pgprot); =20 return insert_pfn(vma, addr, __pfn_to_pfn_t(pfn, PFN_DEV), pgprot, false); @@ -2626,7 +2626,7 @@ static vm_fault_t __vm_insert_mixed(struct vm_area_st= ruct *vma, if (addr < vma->vm_start || addr >=3D vma->vm_end) return VM_FAULT_SIGBUS; =20 - track_pfn_insert(vma, &pgprot, pfn); + pfnmap_sanitize_pgprot(pfn_t_to_pfn(pfn), PAGE_SIZE, &pgprot); =20 if (!pfn_modify_allowed(pfn_t_to_pfn(pfn), pgprot)) return VM_FAULT_SIGBUS; --=20 2.49.0 From nobody Sat Feb 7 18:20:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC90B233707 for ; Fri, 25 Apr 2025 08:17:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569051; cv=none; b=mYwLMflvL7WY2+coGDMcCK1DiY6BwfLJyMYJUYro4rtd4C0f0yyr1pq+5IsbORMqwyHz2TzWMPOr56wTtHtIzQRqRCBLPFqTgXrY6liVPxi1gngGMPBUtyT8QPXnNX9f/Pdw1pFYbB1ODps2yluvqQo3yGAp/JVX8M2PX52CBoQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569051; c=relaxed/simple; bh=eykL+iUZBmhrQjrl63IlsUE+hE0bFmZCe3pannV5u/w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ANN0+jVV2z1IcEMgZbihG4gcGdM1F5gudxGzlVgZ6Sc+MsWe6dqm7/6gD9xjH5Fm3kyu0vBu/ngFvdWxq0IpKbZupmEyMdRFn8Q5WqZAr6/X/v1x71oN/MUovp5G2N6tKFtndmhudqLZIe5yTqhiGa8ywUnn+3YJ2FEVgvKlimc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=PWUSD4fV; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="PWUSD4fV" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745569048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KCYBdpwfjCOhXvT2DzVINMJSRWNfDi2B6w/Q4Y3NEy8=; b=PWUSD4fVw4QjiDqPdZZ1adq5uxDAfuPl7J0nVJwAGORQfODY13u+KvOIWckgv0PpwCJdNB YGzDp75tH/CpP6KNIRrCImzt6h15OBv2wYkD6M5374kNmzJza2pz5+uj1CslHDaUjgQO1z djlgzICTo6KIXzFA0yVqyvKDnXtDyhY= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-474-UqtBvTnNMR-csDG0NGyKxw-1; Fri, 25 Apr 2025 04:17:27 -0400 X-MC-Unique: UqtBvTnNMR-csDG0NGyKxw-1 X-Mimecast-MFC-AGG-ID: UqtBvTnNMR-csDG0NGyKxw_1745569046 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-39c2da64df9so989379f8f.0 for ; Fri, 25 Apr 2025 01:17:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745569046; x=1746173846; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KCYBdpwfjCOhXvT2DzVINMJSRWNfDi2B6w/Q4Y3NEy8=; b=fH0eDDSnSUbzaqbXGik1oT7RJqNSbQSlvgPREIuvgdA9H5RtHlTc8DDA/Lu81pcdGu 2ZZZo1EqQ6H1lonI9dRlOwG7M993btd9iBS25hS2mGapvzEmw00nQhxw+ad1FnxzjoPu 1qwXVt0YcIVCbGMaEJSFCeVlk5g+LPeKVrMqUYzq/Np7mzlFEjz/rHbP5U0xXlcSsnG2 1tO8Amy/Q8wM69ATljnoeLJCm30Db7RNq7M7PPMv7EKOEEsPqDW36H5vg2hgKaVM/Z5z twCbQlsRh7XImPjSquBfCOjPrF4MaBgzuYSXF8v3x0lVhyN5cTYWon7UHXPB4HXymYhv Nffw== X-Gm-Message-State: AOJu0YxRDZrIKYJj0mCv4ZoKQ2s2rIzOID7L4ZKuA1j5ArDn1PlVS/BB P92lqtFyWtD7krs+KqUHDGFEWd9NST+BwQtQ1qJdDS4SBx4EtMWQI256FZBzg9hrSXYNI4gluxv hnZeareasBXSOQlzCvh8g9mLmZBJNCPEOKLiZaFSWOk9PCZO/Q1sPR5OedTQ90xNaDMQaocBBQC KRfrJQNU7Ff1GywNr0FgqlQ373ZBngt4aZvoeGfILjNQ== X-Gm-Gg: ASbGncvBqdFnPFK1PS0cvZaqf+QI0IMPmzrISaEemUV9sv+jqUl0Satb3ivFev3nEGx 4W1B8YvgaSkai+QjvtkwtF6op7T9+f/AfXyqZeh+xVVrHj6FQ7vWgbh9LYX6NSH/RAjDEi/R4Np ZcpL2Fy/KFI4bq+6cXiYsSOQ2JrZgBzDupPB4dI1lGdzO5evhu1tv8aWqL3LwVFoewj5LItJYTN KMj3Sk2S0MKkSW0B8TJ+wWYM2H37OAiHUjzFExAz3/BbFC72p1nsVAmK7xKoUXConuGujsSKF0J TJOc+f3ukiH5NNjh4v9JR8gYyXuYP7KFatT7yw38808DdM+0cetaXeoal9QDCFK2p3e3KUo= X-Received: by 2002:a05:6000:2903:b0:39e:cbc7:ad33 with SMTP id ffacd0b85a97d-3a074e1eb67mr881039f8f.21.1745569045989; Fri, 25 Apr 2025 01:17:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFrgRXf9wKgkj7MYbnIuzIHmMlVWh7AZlbAu3PZR/ooKrImfXiUSMtbZSGOay0ZI4PJDGOvtg== X-Received: by 2002:a05:6000:2903:b0:39e:cbc7:ad33 with SMTP id ffacd0b85a97d-3a074e1eb67mr880983f8f.21.1745569045483; Fri, 25 Apr 2025 01:17:25 -0700 (PDT) Received: from localhost (p200300cbc70f69006c5680f80c146d2a.dip0.t-ipconnect.de. [2003:cb:c70f:6900:6c56:80f8:c14:6d2a]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a073c8ca72sm1597057f8f.4.2025.04.25.01.17.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Apr 2025 01:17:25 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, x86@kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, David Hildenbrand , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , Peter Xu Subject: [PATCH v1 03/11] x86/mm/pat: introduce pfnmap_track() and pfnmap_untrack() Date: Fri, 25 Apr 2025 10:17:07 +0200 Message-ID: <20250425081715.1341199-4-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250425081715.1341199-1-david@redhat.com> References: <20250425081715.1341199-1-david@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Let's provide variants of track_pfn_remap() and untrack_pfn() that won't mess with VMAs, to replace the existing interface step-by-step. Add some documentation. Signed-off-by: David Hildenbrand Reviewed-by: Lorenzo Stoakes --- arch/x86/mm/pat/memtype.c | 14 ++++++++++++++ include/linux/pgtable.h | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c index 193e33251b18f..c011d8dd8f441 100644 --- a/arch/x86/mm/pat/memtype.c +++ b/arch/x86/mm/pat/memtype.c @@ -1068,6 +1068,20 @@ int pfnmap_sanitize_pgprot(unsigned long pfn, unsign= ed long size, pgprot_t *prot return 0; } =20 +int pfnmap_track(unsigned long pfn, unsigned long size, pgprot_t *prot) +{ + const resource_size_t paddr =3D (resource_size_t)pfn << PAGE_SHIFT; + + return reserve_pfn_range(paddr, size, prot, 0); +} + +void pfnmap_untrack(unsigned long pfn, unsigned long size) +{ + const resource_size_t paddr =3D (resource_size_t)pfn << PAGE_SHIFT; + + free_pfn_range(paddr, size); +} + /* * untrack_pfn is called while unmapping a pfnmap for a region. * untrack can be called for a specific region indicated by pfn and size or diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h index 91aadfe2515a5..898a3ab195578 100644 --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -1506,6 +1506,16 @@ static inline int pfnmap_sanitize_pgprot(unsigned lo= ng pfn, unsigned long size, return 0; } =20 +static inline int pfnmap_track(unsigned long pfn, unsigned long size, + pgprot_t *prot) +{ + return 0; +} + +static inline void pfnmap_untrack(unsigned long pfn, unsigned long size) +{ +} + /* * track_pfn_copy is called when a VM_PFNMAP VMA is about to get the page * tables copied during copy_page_range(). Will store the pfn to be @@ -1570,6 +1580,29 @@ extern int track_pfn_remap(struct vm_area_struct *vm= a, pgprot_t *prot, */ int pfnmap_sanitize_pgprot(unsigned long pfn, unsigned long size, pgprot_t *prot); + +/** + * pfnmap_track - track a pfn range + * @pfn: the start of the pfn range + * @size: the size of the pfn range + * @prot: the pgprot to track + * + * Tracking a pfnmap range involves conditionally reserving a pfn range and + * sanitizing the pgprot -- see pfnmap_sanitize_pgprot(). + * + * Returns 0 on success and -EINVAL on error. + */ +int pfnmap_track(unsigned long pfn, unsigned long size, pgprot_t *prot); + +/** + * pfnmap_untrack - untrack a pfn range + * @pfn: the start of the pfn range + * @size: the size of the pfn range + * + * Untrack a pfn range previously tracked through pfnmap_track(), for exam= ple, + * un-doing any reservation. + */ +void pfnmap_untrack(unsigned long pfn, unsigned long size); extern int track_pfn_copy(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, unsigned long *pfn); extern void untrack_pfn_copy(struct vm_area_struct *dst_vma, --=20 2.49.0 From nobody Sat Feb 7 18:20:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8B8DD2356BF for ; Fri, 25 Apr 2025 08:17:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569054; cv=none; b=uu6bn4LnZuv2mn07TeRS/Ue3EhHDoiseLXLUzjRb1qGb+5Y+RoaZKY32/L5rRAC44fOfzQBL0ujT4tZ+D4/Xz7gurL9q10Bj9N6+RPENOD1FdR+SwCzzlawXDyJQRsOq+lJToGqILsssY1/PMjJ9D6yX6z2nB+wAhOY0Y7SxCkc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569054; c=relaxed/simple; bh=aaP6QqhYpZD4s+rCaOs9ONDddbsXPil+JXi88ox7lvM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=osV4WP0kcWU0oYcAcxLziuQNqco6FibvG9YhJlVJut48/PDXzrV60a9c/KLXd+WkJSP6j/9WNn737IaK+jIeJKJutT27eX1yk+I9OuK0zrQMWfGqubmeUC90GGD89Cl66oq4xPQ0/pRstpoLefDbJwLhLIOdSZQSCcRmKLrCq9Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=f7/VI8/2; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="f7/VI8/2" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745569051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uu4FlIS5Nl76bZjUZyw21YomTVSJoQk7KVvTvA60Mww=; b=f7/VI8/2VtCIb2jiXRmDsB5JpjZdsyghWnZ/otq3wphy3/uBjXFNo+Ox1ysbSmv4iXGY3H VpDUB6w7eWwRIrh36MAdblqJqOAi/LszDdMO0zy+OKCJukcTof8Qk54K+sSedP6HbqPZsm GZJxMRZGD+Memq2hrOXoeKqIPo/Qx2I= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-389-ZA2Y499DM0Kvl7U1NK2D2A-1; Fri, 25 Apr 2025 04:17:29 -0400 X-MC-Unique: ZA2Y499DM0Kvl7U1NK2D2A-1 X-Mimecast-MFC-AGG-ID: ZA2Y499DM0Kvl7U1NK2D2A_1745569048 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-43f405810b4so9965815e9.1 for ; Fri, 25 Apr 2025 01:17:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745569048; x=1746173848; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uu4FlIS5Nl76bZjUZyw21YomTVSJoQk7KVvTvA60Mww=; b=dVj2WlXJB3wOqXranjUODJSjXHUFUiD1/deZPTtcJCFF8ncn4mevuVU2v5S11/epSU weiQXNhgN46fLk9mgI7xzhy1G87xb3h+A2uVNIL4e8/jJoYMlT3xQLoTQZf0R6D51N6s +ua/YlpX10cJjXjgaoEk/qDBCGVXxXiF7DPdBWJF5JreAfvHzAn06GCaOnr5QaqksH8r AK50SCpVauldP3MEbJoMLgfGwFdldUQsTKqgoE6NnqubFv2254igHwykSLrVNHX39SSu zy9RgCo5UBceZVKSqkvv12TauHk3KjQOPVkz7ucmsTTMRuigL0eLifnnbZTq84mron0S e8ww== X-Gm-Message-State: AOJu0Yzv1JgwudAw3grl2lmOW3gZwTlU02sAMUNSfOsVdGl7PXv4Ii9c /pBB5qtwNgydts3xPY+MpdE1ooIroGdVSm/9EPxdT6nP7eQ5H6BQi+tva+JcAb5xtlzIAPXFQy9 D7+DwY3Rm8qnBfq+/lmVRV1JmVoX/7Ry7asUgkssQEyV631iQOWO6KdZEp6FFAjZmcml3iMRcAd T+8o++a7aBceNx2FwOKBwYOc+X6iiapfBY8a+IAnyGgw== X-Gm-Gg: ASbGncsorYPE5nLvUuS6lhdZrqoliCzpHbCtn3Cf+YvwjlNLmMjgOF9Fndrmrnh6P8L /zoZc944cZv06+5yBuXOtOCz9b0MacO/cWpxLU5LhMEUBQVNF5ok6m/uUfsHBwdXDZ09igo/t4o EUgJQm9tMaF4vxNlZNjm8HfGYW4Da/l9Ctp1FGeAjVWZGlipOdSzOVdBJKHrLDhb4fx+/4kIm6x uNtCfai5Ei2euKsvRySY65BO8eTGwxCjuB5jPDvwqVCq2F2eEhMUMcXTJohPPQCQot51kzp2YDw c+5cp1G2Yo8t1Qc5vIhfdEy54mWr4GVEGV05pFp8jQS9LzmEJCPiWb4ym7Ome+pIT0I4ujQ= X-Received: by 2002:a05:600c:1387:b0:43b:ce36:7574 with SMTP id 5b1f17b1804b1-440a65d8120mr8181575e9.11.1745569048319; Fri, 25 Apr 2025 01:17:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFv6bx4rw9BX60sw1RHVhWJrGaS8iH8UMCeEA8nv3vLsrOwHOvFftOe6l4h5umdYWufDrsURA== X-Received: by 2002:a05:600c:1387:b0:43b:ce36:7574 with SMTP id 5b1f17b1804b1-440a65d8120mr8181055e9.11.1745569047938; Fri, 25 Apr 2025 01:17:27 -0700 (PDT) Received: from localhost (p200300cbc70f69006c5680f80c146d2a.dip0.t-ipconnect.de. [2003:cb:c70f:6900:6c56:80f8:c14:6d2a]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-4409d2a1dc3sm47748735e9.13.2025.04.25.01.17.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Apr 2025 01:17:27 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, x86@kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, David Hildenbrand , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , Peter Xu Subject: [PATCH v1 04/11] mm/memremap: convert to pfnmap_track() + pfnmap_untrack() Date: Fri, 25 Apr 2025 10:17:08 +0200 Message-ID: <20250425081715.1341199-5-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250425081715.1341199-1-david@redhat.com> References: <20250425081715.1341199-1-david@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Let's use the new, cleaner interface. Signed-off-by: David Hildenbrand Reviewed-by: Lorenzo Stoakes --- mm/memremap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mm/memremap.c b/mm/memremap.c index 2aebc1b192da9..c417c843e9b1f 100644 --- a/mm/memremap.c +++ b/mm/memremap.c @@ -130,7 +130,7 @@ static void pageunmap_range(struct dev_pagemap *pgmap, = int range_id) } mem_hotplug_done(); =20 - untrack_pfn(NULL, PHYS_PFN(range->start), range_len(range), true); + pfnmap_untrack(PHYS_PFN(range->start), range_len(range)); pgmap_array_delete(range); } =20 @@ -211,8 +211,8 @@ static int pagemap_range(struct dev_pagemap *pgmap, str= uct mhp_params *params, if (nid < 0) nid =3D numa_mem_id(); =20 - error =3D track_pfn_remap(NULL, ¶ms->pgprot, PHYS_PFN(range->start), = 0, - range_len(range)); + error =3D pfnmap_track(PHYS_PFN(range->start), range_len(range), + ¶ms->pgprot); if (error) goto err_pfn_remap; =20 @@ -277,7 +277,7 @@ static int pagemap_range(struct dev_pagemap *pgmap, str= uct mhp_params *params, if (!is_private) kasan_remove_zero_shadow(__va(range->start), range_len(range)); err_kasan: - untrack_pfn(NULL, PHYS_PFN(range->start), range_len(range), true); + pfnmap_untrack(PHYS_PFN(range->start), range_len(range)); err_pfn_remap: pgmap_array_delete(range); return error; --=20 2.49.0 From nobody Sat Feb 7 18:20:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9D5C236443 for ; Fri, 25 Apr 2025 08:17:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569059; cv=none; b=Uz78dDHF8z6JsPDd6Ocj8lWOLqD/YmmC2usf2eeBER8KwODAi4noC2i428wYmwWThd6+U5NNhWejnfGGaRQIxA7/AVSLGMFQb//u328g2KeTV75qJpcm0jv11AKlA1WPwNOCIgMkTfKL9sfbUqskTMOVSpfV53uA2Fc6eOqSw5w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569059; c=relaxed/simple; bh=ZVJ+7b2kKfQow6Anzyek/814+Q33U2cbQ7pCshvIi9c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CSBHFd7Px22ZWGjd+UCc8f4i2bResVsX5N09n8+0ZVP11IKkKAgRTMjqU1xgeCwHWucao06Y2H6e05ZEQ2wMKjBEtxNZbkQHrdipD2o1p1e4rjSTvyQCXsBrz7RPdor4z90XBaXV3soV+AX84Awy/iCWpxiPz7w8kEJwVPNXL1s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=SWwjCInm; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="SWwjCInm" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745569055; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/5qYX4fxmvotPEe9k1Ldxje/is/5r/CwZVYIsI3ib8k=; b=SWwjCInm27yrmLHVy2Nu2kvp1Mtn1ccUUgNMzUGB2710K6uchMeGcFA5qdemoS9rGNHkC4 pwK0wTgnThxWWSAfsexT8nS7L9eke25Ecun871EpCrImCN4e0mpjVgaZ5Q18N/aCF9XpCs klwKcw9HJB7dME1A0uKYLZPk79/s8ek= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-206-TkI0vm16Omy1lLP6rKf4EA-1; Fri, 25 Apr 2025 04:17:33 -0400 X-MC-Unique: TkI0vm16Omy1lLP6rKf4EA-1 X-Mimecast-MFC-AGG-ID: TkI0vm16Omy1lLP6rKf4EA_1745569051 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-44059976a1fso7513885e9.1 for ; Fri, 25 Apr 2025 01:17:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745569050; x=1746173850; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/5qYX4fxmvotPEe9k1Ldxje/is/5r/CwZVYIsI3ib8k=; b=KeHPVUFwfTBeUSYdbb/3h/XYI4kdGocMdbjS9Bl7g1UB0oOpI/S84DpDcN9R1owedc m/2V78Pvb0EuiBlE9GtZsHa5dGfjsrgJVb8WBsbThQi932VCjLspJBfXQDSjrF7ntDIj 8I2dnSxF1wDzVXLwAhdKVrszCBNJo7D9AiXCXnV14wrf8DAr5tB1v/ANjBVcGD1x4LRW 26ZxINnO90ocjK76jgrF2jnTY8RfYEOiNCxVceqV5C+SLDwROr4riW57na7WRBLNzaY2 zT+BWN1oTMouLDqP2vPQGSfmhYUVWW8DERn2Pno9qbyFyrZ9SouXuDbsMC879dGRU7J/ FR2g== X-Gm-Message-State: AOJu0YxvraReVQgXLJKqxlpNHXUogGlIQSWkmqZ92Tj/R4PjAh6nUgZ9 tJJRWg6ZmvNB5zzuxk+oHOeaSYcrpNirvefbnwB8mXgqX4SF16Iu5ucXhrk7a+dRAUXwM8v+mc/ 30i+2tUZjftYmzs3NKD3l8+daV9nnixs1cQ6KlareDZk38MWjFh2IkF/ywitb7nAhKH0SxoF2Hi 8UoRQcWJR+CEWMgwE0QR/dCu3zMhyDTlL/6hiioQiuOA== X-Gm-Gg: ASbGncsu2QSCkGzAu3ztgdrlvEcW9QjE9OTfSTj1BATPYaTlaqyQC0HzURy95gYCLEy Ss9sqjW4gveNhsNYos1w5VUcLa6PAVFSEZmOJT8I2VL3NtNVLHG91L492bEik/NXDqVxHSitd8x WxfLlu6SnDzvS1FbDcTWIFeQce3TNRxWJtKc8wFEvk2QVVlBzfegrwIEoUPYiJADPNH+J9S9CRi yz8t7GnQrdTzeWekwmMwQ0fqyhHiFISBpsyGm4KfMc839vWhoSbU/MUyLHSp7TQ15X4MwvMIsfP 1MUnd96dau28uCMbWaPWuhUWzsll47aj/dKEGc192jk+clY2zAZNUIGsmsyEb23KNqvZ/vw= X-Received: by 2002:a5d:5f81:0:b0:391:22a9:4408 with SMTP id ffacd0b85a97d-3a074e1f470mr1107809f8f.16.1745569050630; Fri, 25 Apr 2025 01:17:30 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFJg971aqo8Jp2DD0sLjroPpaq2VGTsTlnda8tdZOkS/zEdxzp9UNRB8QDEhn4HU4OMmpqxNg== X-Received: by 2002:a5d:5f81:0:b0:391:22a9:4408 with SMTP id ffacd0b85a97d-3a074e1f470mr1107731f8f.16.1745569049967; Fri, 25 Apr 2025 01:17:29 -0700 (PDT) Received: from localhost (p200300cbc70f69006c5680f80c146d2a.dip0.t-ipconnect.de. [2003:cb:c70f:6900:6c56:80f8:c14:6d2a]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a073ca4cbcsm1599884f8f.25.2025.04.25.01.17.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Apr 2025 01:17:29 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, x86@kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, David Hildenbrand , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , Peter Xu Subject: [PATCH v1 05/11] mm: convert VM_PFNMAP tracking to pfnmap_track() + pfnmap_untrack() Date: Fri, 25 Apr 2025 10:17:09 +0200 Message-ID: <20250425081715.1341199-6-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250425081715.1341199-1-david@redhat.com> References: <20250425081715.1341199-1-david@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Let's use our new interface. In remap_pfn_range(), we'll now decide whether we have to track (full VMA covered) or only sanitize the pgprot (partial VMA covered). Remember what we have to untrack by linking it from the VMA. When duplicating VMAs (e.g., splitting, mremap, fork), we'll handle it similar to anon VMA names, and use a kref to share the tracking. Once the last VMA un-refs our tracking data, we'll do the untracking, which simplifies things a lot and should sort our various issues we saw recently, for example, when partially unmapping/zapping a tracked VMA. This change implies that we'll keep tracking the original PFN range even after splitting + partially unmapping it: not too bad, because it was not working reliably before. The only thing that kind-of worked before was shrinking such a mapping using mremap(): we managed to adjust the reservation in a hacky way, now we won't adjust the reservation but leave it around until all involved VMAs are gone. Signed-off-by: David Hildenbrand --- include/linux/mm_inline.h | 2 + include/linux/mm_types.h | 11 ++++++ kernel/fork.c | 54 ++++++++++++++++++++++++-- mm/memory.c | 81 +++++++++++++++++++++++++++++++-------- mm/mremap.c | 4 -- 5 files changed, 128 insertions(+), 24 deletions(-) diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h index f9157a0c42a5c..89b518ff097e6 100644 --- a/include/linux/mm_inline.h +++ b/include/linux/mm_inline.h @@ -447,6 +447,8 @@ static inline bool anon_vma_name_eq(struct anon_vma_nam= e *anon_name1, =20 #endif /* CONFIG_ANON_VMA_NAME */ =20 +void pfnmap_track_ctx_release(struct kref *ref); + static inline void init_tlb_flush_pending(struct mm_struct *mm) { atomic_set(&mm->tlb_flush_pending, 0); diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 56d07edd01f91..91124761cfda8 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -764,6 +764,14 @@ struct vma_numab_state { int prev_scan_seq; }; =20 +#ifdef __HAVE_PFNMAP_TRACKING +struct pfnmap_track_ctx { + struct kref kref; + unsigned long pfn; + unsigned long size; +}; +#endif + /* * This struct describes a virtual memory area. There is one of these * per VM-area/task. A VM area is any part of the process virtual memory @@ -877,6 +885,9 @@ struct vm_area_struct { struct anon_vma_name *anon_name; #endif struct vm_userfaultfd_ctx vm_userfaultfd_ctx; +#ifdef __HAVE_PFNMAP_TRACKING + struct pfnmap_track_ctx *pfnmap_track_ctx; +#endif } __randomize_layout; =20 #ifdef CONFIG_NUMA diff --git a/kernel/fork.c b/kernel/fork.c index 168681fc4b25a..ae518b8fe752c 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -481,7 +481,51 @@ static void vm_area_init_from(const struct vm_area_str= uct *src, #ifdef CONFIG_NUMA dest->vm_policy =3D src->vm_policy; #endif +#ifdef __HAVE_PFNMAP_TRACKING + dest->pfnmap_track_ctx =3D NULL; +#endif +} + +#ifdef __HAVE_PFNMAP_TRACKING +static inline int vma_pfnmap_track_ctx_dup(struct vm_area_struct *orig, + struct vm_area_struct *new) +{ + struct pfnmap_track_ctx *ctx =3D orig->pfnmap_track_ctx; + + if (likely(!ctx)) + return 0; + + /* + * We don't expect to ever hit this. If ever required, we would have + * to duplicate the tracking. + */ + if (unlikely(kref_read(&ctx->kref) >=3D REFCOUNT_MAX)) + return -ENOMEM; + kref_get(&ctx->kref); + new->pfnmap_track_ctx =3D ctx; + return 0; +} + +static inline void vma_pfnmap_track_ctx_release(struct vm_area_struct *vma) +{ + struct pfnmap_track_ctx *ctx =3D vma->pfnmap_track_ctx; + + if (likely(!ctx)) + return; + + kref_put(&ctx->kref, pfnmap_track_ctx_release); + vma->pfnmap_track_ctx =3D NULL; +} +#else +static inline int vma_pfnmap_track_ctx_dup(struct vm_area_struct *orig, + struct vm_area_struct *new) +{ + return 0; } +static inline void vma_pfnmap_track_ctx_release(struct vm_area_struct *vma) +{ +} +#endif =20 struct vm_area_struct *vm_area_dup(struct vm_area_struct *orig) { @@ -493,6 +537,11 @@ struct vm_area_struct *vm_area_dup(struct vm_area_stru= ct *orig) ASSERT_EXCLUSIVE_WRITER(orig->vm_flags); ASSERT_EXCLUSIVE_WRITER(orig->vm_file); vm_area_init_from(orig, new); + + if (vma_pfnmap_track_ctx_dup(orig, new)) { + kmem_cache_free(vm_area_cachep, new); + return NULL; + } vma_lock_init(new, true); INIT_LIST_HEAD(&new->anon_vma_chain); vma_numab_state_init(new); @@ -507,6 +556,7 @@ void vm_area_free(struct vm_area_struct *vma) vma_assert_detached(vma); vma_numab_state_free(vma); free_anon_vma_name(vma); + vma_pfnmap_track_ctx_release(vma); kmem_cache_free(vm_area_cachep, vma); } =20 @@ -669,10 +719,6 @@ static __latent_entropy int dup_mmap(struct mm_struct = *mm, if (!tmp) goto fail_nomem; =20 - /* track_pfn_copy() will later take care of copying internal state. */ - if (unlikely(tmp->vm_flags & VM_PFNMAP)) - untrack_pfn_clear(tmp); - retval =3D vma_dup_policy(mpnt, tmp); if (retval) goto fail_nomem_policy; diff --git a/mm/memory.c b/mm/memory.c index c737a8625866a..eb2b3f10a97ec 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1370,7 +1370,7 @@ copy_page_range(struct vm_area_struct *dst_vma, struc= t vm_area_struct *src_vma) struct mm_struct *dst_mm =3D dst_vma->vm_mm; struct mm_struct *src_mm =3D src_vma->vm_mm; struct mmu_notifier_range range; - unsigned long next, pfn =3D 0; + unsigned long next; bool is_cow; int ret; =20 @@ -1380,12 +1380,6 @@ copy_page_range(struct vm_area_struct *dst_vma, stru= ct vm_area_struct *src_vma) if (is_vm_hugetlb_page(src_vma)) return copy_hugetlb_page_range(dst_mm, src_mm, dst_vma, src_vma); =20 - if (unlikely(src_vma->vm_flags & VM_PFNMAP)) { - ret =3D track_pfn_copy(dst_vma, src_vma, &pfn); - if (ret) - return ret; - } - /* * We need to invalidate the secondary MMU mappings only when * there could be a permission downgrade on the ptes of the @@ -1427,8 +1421,6 @@ copy_page_range(struct vm_area_struct *dst_vma, struc= t vm_area_struct *src_vma) raw_write_seqcount_end(&src_mm->write_protect_seq); mmu_notifier_invalidate_range_end(&range); } - if (ret && unlikely(src_vma->vm_flags & VM_PFNMAP)) - untrack_pfn_copy(dst_vma, pfn); return ret; } =20 @@ -1923,9 +1915,6 @@ static void unmap_single_vma(struct mmu_gather *tlb, if (vma->vm_file) uprobe_munmap(vma, start, end); =20 - if (unlikely(vma->vm_flags & VM_PFNMAP)) - untrack_pfn(vma, 0, 0, mm_wr_locked); - if (start !=3D end) { if (unlikely(is_vm_hugetlb_page(vma))) { /* @@ -2871,6 +2860,36 @@ int remap_pfn_range_notrack(struct vm_area_struct *v= ma, unsigned long addr, return error; } =20 +#ifdef __HAVE_PFNMAP_TRACKING +static inline struct pfnmap_track_ctx *pfnmap_track_ctx_alloc(unsigned lon= g pfn, + unsigned long size, pgprot_t *prot) +{ + struct pfnmap_track_ctx *ctx; + + if (pfnmap_track(pfn, size, prot)) + return ERR_PTR(-EINVAL); + + ctx =3D kmalloc(sizeof(*ctx), GFP_KERNEL); + if (unlikely(!ctx)) { + pfnmap_untrack(pfn, size); + return ERR_PTR(-ENOMEM); + } + + ctx->pfn =3D pfn; + ctx->size =3D size; + kref_init(&ctx->kref); + return ctx; +} + +void pfnmap_track_ctx_release(struct kref *ref) +{ + struct pfnmap_track_ctx *ctx =3D container_of(ref, struct pfnmap_track_ct= x, kref); + + pfnmap_untrack(ctx->pfn, ctx->size); + kfree(ctx); +} +#endif /* __HAVE_PFNMAP_TRACKING */ + /** * remap_pfn_range - remap kernel memory to userspace * @vma: user vma to map to @@ -2883,20 +2902,50 @@ int remap_pfn_range_notrack(struct vm_area_struct *= vma, unsigned long addr, * * Return: %0 on success, negative error code otherwise. */ +#ifdef __HAVE_PFNMAP_TRACKING int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t prot) { + struct pfnmap_track_ctx *ctx =3D NULL; int err; =20 - err =3D track_pfn_remap(vma, &prot, pfn, addr, PAGE_ALIGN(size)); - if (err) + size =3D PAGE_ALIGN(size); + + /* + * If we cover the full VMA, we'll perform actual tracking, and + * remember to untrack when the last reference to our tracking + * context from a VMA goes away. + * + * If we only cover parts of the VMA, we'll only sanitize the + * pgprot. + */ + if (addr =3D=3D vma->vm_start && addr + size =3D=3D vma->vm_end) { + if (vma->pfnmap_track_ctx) + return -EINVAL; + ctx =3D pfnmap_track_ctx_alloc(pfn, size, &prot); + if (IS_ERR(ctx)) + return PTR_ERR(ctx); + } else if (pfnmap_sanitize_pgprot(pfn, size, &prot)) { return -EINVAL; + } =20 err =3D remap_pfn_range_notrack(vma, addr, pfn, size, prot); - if (err) - untrack_pfn(vma, pfn, PAGE_ALIGN(size), true); + if (ctx) { + if (err) + kref_put(&ctx->kref, pfnmap_track_ctx_release); + else + vma->pfnmap_track_ctx =3D ctx; + } return err; } + +#else +int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr, + unsigned long pfn, unsigned long size, pgprot_t prot) +{ + return remap_pfn_range_notrack(vma, addr, pfn, size, prot); +} +#endif EXPORT_SYMBOL(remap_pfn_range); =20 /** diff --git a/mm/mremap.c b/mm/mremap.c index 7db9da609c84f..6e78e02f74bd3 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -1191,10 +1191,6 @@ static int copy_vma_and_data(struct vma_remap_struct= *vrm, if (is_vm_hugetlb_page(vma)) clear_vma_resv_huge_pages(vma); =20 - /* Tell pfnmap has moved from this vma */ - if (unlikely(vma->vm_flags & VM_PFNMAP)) - untrack_pfn_clear(vma); - *new_vma_ptr =3D new_vma; return err; } --=20 2.49.0 From nobody Sat Feb 7 18:20:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B0C1723644D for ; Fri, 25 Apr 2025 08:17:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569058; cv=none; b=Qk4M2TXUsTbhNX/dbdyHNSO/zPdJPjNDC0YJ7x5nNvGfIYLf1ZxbeZ4EkS0ZOvahD+tLFGDRZK0Kreg7bC6TLYCB4OoHlJiXKCt1zsRiQmx6tDx6Cls7BSkg4FrvWdLg6H+g76C/VmU7O3Hvm322a9yj1WOcSlzyJMRxr7OgrsQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569058; c=relaxed/simple; bh=ZZLgTzRZD4dD78rVmQM4/tSMlNSPKSx1Dt+RBO0GL+k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ERjpxIpeuhk5Vqd0LF9tD9BGssXey2Qg8riwc2VDdxJ4JI/d50SwOPNMUYKheJaMFzMl8M4ORnqt8v0N1rx6pTz3+BnSqq1fh6px1K6QroVhO28035tdcEVHdHlAJZjDYYJX4QsRGvIyBDrt3np01fDMhr5WJoBhB5y01WuG4bc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=JuC6Etpj; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="JuC6Etpj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745569055; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=evDGoI+/XQeXjHcfAaTzbc2xRRT2bYWbObPQgXY7yUk=; b=JuC6EtpjVkl4HiTSNKIPTowxeMuj+JxNS0QlsjeIwZXSZHkpH1jTsaARRIvP4JwNaXY2zV A8ug8kaIFdYBnJeX7Ddqclu313LH0GLI8NfZ255q5AID5+avTgY2QfdudH5CT/sHg/zdY0 q5Ekka1BbsoVNyZ8g4Fs6ew5mTdbwFU= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-457-Om2ajcB5NgCmGbynz2Bz1Q-1; Fri, 25 Apr 2025 04:17:34 -0400 X-MC-Unique: Om2ajcB5NgCmGbynz2Bz1Q-1 X-Mimecast-MFC-AGG-ID: Om2ajcB5NgCmGbynz2Bz1Q_1745569053 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-43d08915f61so9969375e9.2 for ; Fri, 25 Apr 2025 01:17:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745569053; x=1746173853; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=evDGoI+/XQeXjHcfAaTzbc2xRRT2bYWbObPQgXY7yUk=; b=hajIADgdX89//2AfeGGKNGdsFjFcPYXP60Hwq/H289AsKI7reawqJcPsLQm3x4fIyM XFpLhFcaEw3m+2d1zgKhoCdKnotTCnzKlypYvTKEIndVE5SPylUztzxR7eCJxdFPqC4p FFWe2z6vPRyANtpXctEm1tm3TriCLknm/kmaVRn3ZI3Nv9vGKZPXCK8ojmdfBy4C56MI xOScuNm5WDSU81wlLG/tmB8lC0FCdefMOeuV8+vhZw6xUITo2jh0cW+63xBg9v0/EBUi /iTmhyaDtr3Zb0d6Tq3FfuQEqDdxSkXVHX5MNajK2z2IJNzCewP7+cLd+T+LjJxmq04T qaRg== X-Gm-Message-State: AOJu0YzwwfryJEbmv/KuAzPrHh6zCzm4g4TY6jSNnf4Gj65L51ya9QWK Ncehtif+duKDFyPOWFVFOZnMrwlITytVcTbmZrItOdzbnzOVnyUCBYGcOPapeHnHgwNVycEdYlK 1tKqKXhnN862fdDcT5KXWS8jG0xAOYDjBUqk7IxyVaZxlrGvZCnyPsvVJU95okcFSOEiNmY6Qhl ygVxiIFskTshAG7n8swUxjDkGJT+/Gc+LanhfQCyyOJw== X-Gm-Gg: ASbGncviSs77V0sKbiD4eEIYFc98ehjqm9fuugztFQJ300BQbp5aj9D6501Qt4CE1p5 0TuNPVp77YEDoiTpbQ7/1CRr5Q5zjQ2sAneAx2JWOQ6KAXmobhE0oQqYv5sT1Fo3y6qknFAaWea PiIK5dJbIv1TbxbGmLt9nw9LNjCqXesOgH1SzzK24EG2t1xUBnPT3NJbbbLNnXV3dfVHXc9jXKq eCEA1hLxX3sAUQmjNUbjeL2js7T0E+BXIh9LxT45MoK29+5uhOLChor8h4EcXDkq9JmrpZD8iVE ixCMutlwVX9DEQDVgu2WljaSuXQG6cEo7NkpTgAJGzzSBAClAZiQ7N8hPwJpFssmDsHwhew= X-Received: by 2002:a05:600c:198f:b0:43d:160:cd97 with SMTP id 5b1f17b1804b1-440a669ae6dmr9331415e9.25.1745569052758; Fri, 25 Apr 2025 01:17:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFLU3fxIlqe9QX0QeLDRedHwb9sZfQbAe1nE7pImM0iT/BFkLTcKeXBBqkMmeCWWs62lN1KYQ== X-Received: by 2002:a05:600c:198f:b0:43d:160:cd97 with SMTP id 5b1f17b1804b1-440a669ae6dmr9330695e9.25.1745569051957; Fri, 25 Apr 2025 01:17:31 -0700 (PDT) Received: from localhost (p200300cbc70f69006c5680f80c146d2a.dip0.t-ipconnect.de. [2003:cb:c70f:6900:6c56:80f8:c14:6d2a]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-4409d29b990sm51033025e9.4.2025.04.25.01.17.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Apr 2025 01:17:31 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, x86@kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, David Hildenbrand , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , Peter Xu Subject: [PATCH v1 06/11] x86/mm/pat: remove old pfnmap tracking interface Date: Fri, 25 Apr 2025 10:17:10 +0200 Message-ID: <20250425081715.1341199-7-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250425081715.1341199-1-david@redhat.com> References: <20250425081715.1341199-1-david@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We can now get rid of the old interface along with get_pat_info() and follow_phys(). Signed-off-by: David Hildenbrand Reviewed-by: Lorenzo Stoakes --- arch/x86/mm/pat/memtype.c | 147 -------------------------------------- include/linux/pgtable.h | 66 ----------------- 2 files changed, 213 deletions(-) diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c index c011d8dd8f441..668ebf0065157 100644 --- a/arch/x86/mm/pat/memtype.c +++ b/arch/x86/mm/pat/memtype.c @@ -933,119 +933,6 @@ static void free_pfn_range(u64 paddr, unsigned long s= ize) memtype_free(paddr, paddr + size); } =20 -static int follow_phys(struct vm_area_struct *vma, unsigned long *prot, - resource_size_t *phys) -{ - struct follow_pfnmap_args args =3D { .vma =3D vma, .address =3D vma->vm_s= tart }; - - if (follow_pfnmap_start(&args)) - return -EINVAL; - - /* Never return PFNs of anon folios in COW mappings. */ - if (!args.special) { - follow_pfnmap_end(&args); - return -EINVAL; - } - - *prot =3D pgprot_val(args.pgprot); - *phys =3D (resource_size_t)args.pfn << PAGE_SHIFT; - follow_pfnmap_end(&args); - return 0; -} - -static int get_pat_info(struct vm_area_struct *vma, resource_size_t *paddr, - pgprot_t *pgprot) -{ - unsigned long prot; - - VM_WARN_ON_ONCE(!(vma->vm_flags & VM_PAT)); - - /* - * We need the starting PFN and cachemode used for track_pfn_remap() - * that covered the whole VMA. For most mappings, we can obtain that - * information from the page tables. For COW mappings, we might now - * suddenly have anon folios mapped and follow_phys() will fail. - * - * Fallback to using vma->vm_pgoff, see remap_pfn_range_notrack(), to - * detect the PFN. If we need the cachemode as well, we're out of luck - * for now and have to fail fork(). - */ - if (!follow_phys(vma, &prot, paddr)) { - if (pgprot) - *pgprot =3D __pgprot(prot); - return 0; - } - if (is_cow_mapping(vma->vm_flags)) { - if (pgprot) - return -EINVAL; - *paddr =3D (resource_size_t)vma->vm_pgoff << PAGE_SHIFT; - return 0; - } - WARN_ON_ONCE(1); - return -EINVAL; -} - -int track_pfn_copy(struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, unsigned long *pfn) -{ - const unsigned long vma_size =3D src_vma->vm_end - src_vma->vm_start; - resource_size_t paddr; - pgprot_t pgprot; - int rc; - - if (!(src_vma->vm_flags & VM_PAT)) - return 0; - - /* - * Duplicate the PAT information for the dst VMA based on the src - * VMA. - */ - if (get_pat_info(src_vma, &paddr, &pgprot)) - return -EINVAL; - rc =3D reserve_pfn_range(paddr, vma_size, &pgprot, 1); - if (rc) - return rc; - - /* Reservation for the destination VMA succeeded. */ - vm_flags_set(dst_vma, VM_PAT); - *pfn =3D PHYS_PFN(paddr); - return 0; -} - -void untrack_pfn_copy(struct vm_area_struct *dst_vma, unsigned long pfn) -{ - untrack_pfn(dst_vma, pfn, dst_vma->vm_end - dst_vma->vm_start, true); - /* - * Reservation was freed, any copied page tables will get cleaned - * up later, but without getting PAT involved again. - */ -} - -/* - * prot is passed in as a parameter for the new mapping. If the vma has - * a linear pfn mapping for the entire range, or no vma is provided, - * reserve the entire pfn + size range with single reserve_pfn_range - * call. - */ -int track_pfn_remap(struct vm_area_struct *vma, pgprot_t *prot, - unsigned long pfn, unsigned long addr, unsigned long size) -{ - resource_size_t paddr =3D (resource_size_t)pfn << PAGE_SHIFT; - - /* reserve the whole chunk starting from paddr */ - if (!vma || (addr =3D=3D vma->vm_start - && size =3D=3D (vma->vm_end - vma->vm_start))) { - int ret; - - ret =3D reserve_pfn_range(paddr, size, prot, 0); - if (ret =3D=3D 0 && vma) - vm_flags_set(vma, VM_PAT); - return ret; - } - - return pfnmap_sanitize_pgprot(pfn, size, prot); -} - int pfnmap_sanitize_pgprot(unsigned long pfn, unsigned long size, pgprot_t= *prot) { resource_size_t paddr =3D (resource_size_t)pfn << PAGE_SHIFT; @@ -1082,40 +969,6 @@ void pfnmap_untrack(unsigned long pfn, unsigned long = size) free_pfn_range(paddr, size); } =20 -/* - * untrack_pfn is called while unmapping a pfnmap for a region. - * untrack can be called for a specific region indicated by pfn and size or - * can be for the entire vma (in which case pfn, size are zero). - */ -void untrack_pfn(struct vm_area_struct *vma, unsigned long pfn, - unsigned long size, bool mm_wr_locked) -{ - resource_size_t paddr; - - if (vma && !(vma->vm_flags & VM_PAT)) - return; - - /* free the chunk starting from pfn or the whole chunk */ - paddr =3D (resource_size_t)pfn << PAGE_SHIFT; - if (!paddr && !size) { - if (get_pat_info(vma, &paddr, NULL)) - return; - size =3D vma->vm_end - vma->vm_start; - } - free_pfn_range(paddr, size); - if (vma) { - if (mm_wr_locked) - vm_flags_clear(vma, VM_PAT); - else - __vm_flags_mod(vma, 0, VM_PAT); - } -} - -void untrack_pfn_clear(struct vm_area_struct *vma) -{ - vm_flags_clear(vma, VM_PAT); -} - pgprot_t pgprot_writecombine(pgprot_t prot) { pgprot_set_cachemode(&prot, _PAGE_CACHE_MODE_WC); diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h index 898a3ab195578..0ffc6b9339182 100644 --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -1489,17 +1489,6 @@ static inline pmd_t pmd_swp_clear_soft_dirty(pmd_t p= md) * vmf_insert_pfn. */ =20 -/* - * track_pfn_remap is called when a _new_ pfn mapping is being established - * by remap_pfn_range() for physical range indicated by pfn and size. - */ -static inline int track_pfn_remap(struct vm_area_struct *vma, pgprot_t *pr= ot, - unsigned long pfn, unsigned long addr, - unsigned long size) -{ - return 0; -} - static inline int pfnmap_sanitize_pgprot(unsigned long pfn, unsigned long = size, pgprot_t *prot) { @@ -1515,55 +1504,7 @@ static inline int pfnmap_track(unsigned long pfn, un= signed long size, static inline void pfnmap_untrack(unsigned long pfn, unsigned long size) { } - -/* - * track_pfn_copy is called when a VM_PFNMAP VMA is about to get the page - * tables copied during copy_page_range(). Will store the pfn to be - * passed to untrack_pfn_copy() only if there is something to be untracked. - * Callers should initialize the pfn to 0. - */ -static inline int track_pfn_copy(struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, unsigned long *pfn) -{ - return 0; -} - -/* - * untrack_pfn_copy is called when a VM_PFNMAP VMA failed to copy during - * copy_page_range(), but after track_pfn_copy() was already called. Can - * be called even if track_pfn_copy() did not actually track anything: - * handled internally. - */ -static inline void untrack_pfn_copy(struct vm_area_struct *dst_vma, - unsigned long pfn) -{ -} - -/* - * untrack_pfn is called while unmapping a pfnmap for a region. - * untrack can be called for a specific region indicated by pfn and size or - * can be for the entire vma (in which case pfn, size are zero). - */ -static inline void untrack_pfn(struct vm_area_struct *vma, - unsigned long pfn, unsigned long size, - bool mm_wr_locked) -{ -} - -/* - * untrack_pfn_clear is called in the following cases on a VM_PFNMAP VMA: - * - * 1) During mremap() on the src VMA after the page tables were moved. - * 2) During fork() on the dst VMA, immediately after duplicating the src = VMA. - */ -static inline void untrack_pfn_clear(struct vm_area_struct *vma) -{ -} #else -extern int track_pfn_remap(struct vm_area_struct *vma, pgprot_t *prot, - unsigned long pfn, unsigned long addr, - unsigned long size); - /** * pfnmap_sanitize_pgprot - sanitize the pgprot for a pfn range * @pfn: the start of the pfn range @@ -1603,13 +1544,6 @@ int pfnmap_track(unsigned long pfn, unsigned long si= ze, pgprot_t *prot); * un-doing any reservation. */ void pfnmap_untrack(unsigned long pfn, unsigned long size); -extern int track_pfn_copy(struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, unsigned long *pfn); -extern void untrack_pfn_copy(struct vm_area_struct *dst_vma, - unsigned long pfn); -extern void untrack_pfn(struct vm_area_struct *vma, unsigned long pfn, - unsigned long size, bool mm_wr_locked); -extern void untrack_pfn_clear(struct vm_area_struct *vma); #endif =20 #ifdef CONFIG_MMU --=20 2.49.0 From nobody Sat Feb 7 18:20:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8D0482367A3 for ; Fri, 25 Apr 2025 08:17:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569060; cv=none; b=VfJrcrjjgg1J0zqVAmn8786XDCOsjNI/1i9KREW4puSe8FQZOpjU4tqxPtDH5AP3NmB92pr9yGLBKnMJOtXjj1oa1PhL430J5wVXPran1dkBNmrKU5MB28pvjYjaaMdYpgr6H2x0FvJP1blYlNazHRs+uSpLSla2vGZ5wkW1n7g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569060; c=relaxed/simple; bh=zb1DGhQBoGmzpTwSqI1Egmp9Z8u5JW6+w6xVrEIvOU4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oPu3vGKMjrDi9WmwHIQCsZE9wLd7ICxIhFKvezwjIopdppeT2dUMESfWkhrFuwFPp4R+XezRCgtarRFHuEy7cb0cQ8WQ9TeMBtXRXEk/NdrTVJG9FyT22C5XJb5EM4Vm5rPIGQER6LqJ1iZsP4nt9NKeKUm3TYWoV04edsoKlOw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=alqLEVs7; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="alqLEVs7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745569057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7xNohxILTOPqd/8P2+09zos3Ls7ebzSxsppSFkARpPU=; b=alqLEVs70GPJMZR8jrWB2DQ4ta5xpZx/lxuz+gNT8dvwE6NoQYFXDo21xRdDwPNHV9Ay3+ rdwLKNCAcfsgj8GpET7otpcHE6Tv0kVCrxgdGqpue70B4O3Gb0X/ZszA2G1GRWF1u5bKv4 ZH4eBI4qrmZRc7/BM8aZhv80glF2nac= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-466-AEmEq3QMOSCy0JMYZv3o5w-1; Fri, 25 Apr 2025 04:17:35 -0400 X-MC-Unique: AEmEq3QMOSCy0JMYZv3o5w-1 X-Mimecast-MFC-AGG-ID: AEmEq3QMOSCy0JMYZv3o5w_1745569054 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-391492acb59so913399f8f.3 for ; Fri, 25 Apr 2025 01:17:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745569054; x=1746173854; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7xNohxILTOPqd/8P2+09zos3Ls7ebzSxsppSFkARpPU=; b=Mwvvwm0k25i7gYGQ2Eiodtgd9gMMnctTCuZFYdFpXIRaU5Cvax9WnU+Y5wnJUxPvqb f8FXwPxkXURK8BvGo1kkXXOA+6tsIIeBRlP2NHViGlFR5kxJCf0r/V6++7WT7FimoW9C /Ki5HRYZiXxueF6h4NIwogPSyoHWhEy+m794J/Jw8ufBFcnNqTRwOhN2Z+O6d5DKyIn9 d3sxIjEKsjHHwrJVRwcuG+9IpbB/3k8+H8uXxXRlkHfChfnypIRsElEccZIOjMnZnF8/ P1ij5fRKvFklNJXyfggyIawVobDz+EMFGun3bi2KbIrDW3yPNxCgB5XNnWYYvgw4plxb NAfQ== X-Gm-Message-State: AOJu0YwoouFoj3LmQ9PHkSoV/BnA2+dBfjSEd3rBOMvoPML+YN1HNqgL pNLxH7JBeITM1oDTgRwIOBCGjZbNPi6F+j6VMsWbOIorLYsQd00eN/qjWHd8pDX0Y3q7fe5A22W 0WzoWjqGrYIJFGFQ90GXkNaVOCRP4jd7AgsbZ5629Lg16uNW7owCZLef01y9p/d35um4n7Ax1QP N1Xz1xBZWsXaa4TebuWzVckL/gJvE8tBJij3SRhflCAg== X-Gm-Gg: ASbGncsn3mQbzeho7/EMeurjfnQgDbpFE+9OKn7ZC8pEqTJB5e2kJzvA5hIgXo5n6Lf khwYXBogTKYIu8+wYSrTtKdTrqpLck5+J2ZBXEEsbhmznyHfUTLwTGLhCVbM5ol4wbLw+tbaQo8 AjRW+ghekUJqOREihckylZ1r2c00ji/KHK1Kg/8sv07FquBva5ro8PnPMdxLvQb7plHr9UNe3jn rP1jzrJAGkK4jRE2XqDLQNFElipWJTUq1c4iNZ72DcRk9wYYA/9xDBbGIgBv4l9FOHEWGDbLXdk IVpH+O0a+AZLaRbtOCGs2g8azhz4y7vgP2yT/hCvYIc1EJAQOWzaYYKQ3E1rrNEaQoVK6dY= X-Received: by 2002:a05:6000:430d:b0:399:7f43:b3a4 with SMTP id ffacd0b85a97d-3a074e2f3b3mr903690f8f.24.1745569054505; Fri, 25 Apr 2025 01:17:34 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFENsE4+5Cu5ObTVfglloYLU5xkxFPfypsGCDuMGrHDVRAMikMZaqFHaFNkwSVPa60/smc7Mg== X-Received: by 2002:a05:6000:430d:b0:399:7f43:b3a4 with SMTP id ffacd0b85a97d-3a074e2f3b3mr903634f8f.24.1745569054012; Fri, 25 Apr 2025 01:17:34 -0700 (PDT) Received: from localhost (p200300cbc70f69006c5680f80c146d2a.dip0.t-ipconnect.de. [2003:cb:c70f:6900:6c56:80f8:c14:6d2a]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a073c8cab5sm1648138f8f.10.2025.04.25.01.17.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Apr 2025 01:17:33 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, x86@kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, David Hildenbrand , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , Peter Xu Subject: [PATCH v1 07/11] mm: remove VM_PAT Date: Fri, 25 Apr 2025 10:17:11 +0200 Message-ID: <20250425081715.1341199-8-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250425081715.1341199-1-david@redhat.com> References: <20250425081715.1341199-1-david@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's unused, so let's remove it. Signed-off-by: David Hildenbrand Reviewed-by: Lorenzo Stoakes --- include/linux/mm.h | 4 +--- include/trace/events/mmflags.h | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 9b701cfbef223..a205020e2a58b 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -357,9 +357,7 @@ extern unsigned int kobjsize(const void *objp); # define VM_SHADOW_STACK VM_NONE #endif =20 -#if defined(CONFIG_X86) -# define VM_PAT VM_ARCH_1 /* PAT reserves whole VMA at once (x86) */ -#elif defined(CONFIG_PPC64) +#if defined(CONFIG_PPC64) # define VM_SAO VM_ARCH_1 /* Strong Access Ordering (powerpc) */ #elif defined(CONFIG_PARISC) # define VM_GROWSUP VM_ARCH_1 diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h index 15aae955a10bf..aa441f593e9a6 100644 --- a/include/trace/events/mmflags.h +++ b/include/trace/events/mmflags.h @@ -172,9 +172,7 @@ IF_HAVE_PG_ARCH_3(arch_3) __def_pageflag_names \ ) : "none" =20 -#if defined(CONFIG_X86) -#define __VM_ARCH_SPECIFIC_1 {VM_PAT, "pat" } -#elif defined(CONFIG_PPC64) +#if defined(CONFIG_PPC64) #define __VM_ARCH_SPECIFIC_1 {VM_SAO, "sao" } #elif defined(CONFIG_PARISC) #define __VM_ARCH_SPECIFIC_1 {VM_GROWSUP, "growsup" } --=20 2.49.0 From nobody Sat Feb 7 18:20:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 461802367AF for ; Fri, 25 Apr 2025 08:17:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569061; cv=none; b=nHQ2U+I6JVZ/+6qvsrB6oAOJjKdFr0CdGTo++pAGEwh6XCf5YYbs0WMAgmNElhvkZL9PgOgLWvJPFW21o3hksK5QrcP3tjbjpr1hjJZYDztIaYvXMSi/bGh3KWc6H8y6UWI0HNvVaEJvqB/PdiYrFiq50hckK7D+Vf5nJ7efOEg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569061; c=relaxed/simple; bh=sC9yz9dD/oKAzPcvHGkMQY89EvvA7vBfDCo6bq+VwYI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MbGGGJ9RFsISE7Z86V13sX1BcA5QMG8gXtsNg8DFIeGY6bac01bP+D3i9rTrCTnkcAi9h43L69JN/yep2Ng1m38YcYT4UJuLhXEZMjFv/0cb3XStwq2IIwHAipkTtPSIiCyif8zsx2c1hyzWS8YJ5vz8mQj4v2ePXog546i5xls= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=MXcHyEts; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="MXcHyEts" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745569059; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LXejfGAknVxklqhHCW/V9liutcQQAQcJcrhEqzVyY78=; b=MXcHyEtsPO8VF+fiiOyAp4X2Tb67TxXReE5wJutwVvBwNUCIU0pZr/Yg4WqhftuEpohiND rQs+DFHKKWC0aU/z4TXusQvvs3Yi92hKH26VIfwsgw8botk2V6EWd8HIkSsCRfjPmlMp2q qyPOKMJD0n1wfcm1faRGmzQ5lKmmCq0= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-18-FH9GsveDP7mfiO4TzWIr5w-1; Fri, 25 Apr 2025 04:17:37 -0400 X-MC-Unique: FH9GsveDP7mfiO4TzWIr5w-1 X-Mimecast-MFC-AGG-ID: FH9GsveDP7mfiO4TzWIr5w_1745569057 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-39c30f26e31so1170394f8f.3 for ; Fri, 25 Apr 2025 01:17:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745569056; x=1746173856; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LXejfGAknVxklqhHCW/V9liutcQQAQcJcrhEqzVyY78=; b=uz2Zpcgh6KpmQ7pMZPsqEKNMQ30inYHZmSm6rcRpvYCzZoDmxnr05KWflP5tL6HRo4 uVAuuxRavaDpS37U4CVTOAsliqbpWffTmOZPlQU9WExEAsniWp75u5s/tnLxwH0pd8N+ WZGUx97K9GYT9LC1OkCEHzzC4CiWxOyGDqdU+KqXQ8GAUu7Is4e0PILpxt4ejEpBx+0x l6U6jrcxIT/5RhD81AWFBkHlBlhJwVNdglecbbsccKUhmyyE/m6iL5Oz69NgupH1UIKh DKN7s5a0hOVHiatHIz1Q1R1Dfc+0ue1lPSn9tjRvIXPsJtA2AXkuKdiNLzHUGOfm387c 6KTw== X-Gm-Message-State: AOJu0YytVykxdCXPdijbGxvMY+jk4GiwiXuiCZd0Y8rUIAUy/qgThhcm ygtVpOJ/CZASCXTzYU06mc1bW6UtZbLmLqxweUUzhhi8/nbDWo9DtoZjgCDUZoy/GjJ3qyiw347 iVk3TICDQWoI7H3FyfjSsv6rre1sU/+dFsn+Od++TnShrgxtbU0pHAB5U8y3mFbKzgX0UPE0CV2 b9uCaFAeCEyCtJ1LCRzZibzAsGjLubdyo48E1pY3xyxQ== X-Gm-Gg: ASbGncsEZyGyVo21hC1q3YIqMDdmyWAB9hqjr/SYKkL/uUvv4Vwn20nE4LTfzscJTwi itmfJVI22WxyAxOArjVy8Up4BiGNAFlINo3tPJcJYnzRD0Z+mUzTLU5F35r58YMf0Mn84SBt00N ddCudJbYaQ9cz7/STtTc55bfgcoR5ZFcG+JegUIQCFQdEDNlb/1C0M8HQOqBcjCZaXx4uQONp5n r9OlWXU9NdMBi7gUekkdtSPq8UKgfsSLYpLSDDEGEnETtZ9LTaHiihK6x+Cs7TIMECVRNoB5wS8 XIa2TAmCR5qiup61EJnEOBbFEBf8Oa0Ut5XDXQaWXpPpQ2/ALfggTRheFncMDa5UMel5lU0= X-Received: by 2002:a05:6000:4028:b0:391:2c0c:1247 with SMTP id ffacd0b85a97d-3a074e0e4d1mr832166f8f.1.1745569056554; Fri, 25 Apr 2025 01:17:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEU1X+NuNfEcvtfeCEnq/l8/EdxH0+aUnwVbo8Kq4KyW0RucKtS6876psW/EjwOajf1KdVRgA== X-Received: by 2002:a05:6000:4028:b0:391:2c0c:1247 with SMTP id ffacd0b85a97d-3a074e0e4d1mr832108f8f.1.1745569056044; Fri, 25 Apr 2025 01:17:36 -0700 (PDT) Received: from localhost (p200300cbc70f69006c5680f80c146d2a.dip0.t-ipconnect.de. [2003:cb:c70f:6900:6c56:80f8:c14:6d2a]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a073ca52e5sm1657353f8f.36.2025.04.25.01.17.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Apr 2025 01:17:35 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, x86@kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, David Hildenbrand , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , Peter Xu Subject: [PATCH v1 08/11] x86/mm/pat: remove strict_prot parameter from reserve_pfn_range() Date: Fri, 25 Apr 2025 10:17:12 +0200 Message-ID: <20250425081715.1341199-9-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250425081715.1341199-1-david@redhat.com> References: <20250425081715.1341199-1-david@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Always set to 0, so let's remove it. Signed-off-by: David Hildenbrand Reviewed-by: Lorenzo Stoakes --- arch/x86/mm/pat/memtype.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c index 668ebf0065157..57e3ced4c28cb 100644 --- a/arch/x86/mm/pat/memtype.c +++ b/arch/x86/mm/pat/memtype.c @@ -858,8 +858,7 @@ int memtype_kernel_map_sync(u64 base, unsigned long siz= e, * Reserved non RAM regions only and after successful memtype_reserve, * this func also keeps identity mapping (if any) in sync with this new pr= ot. */ -static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_= prot, - int strict_prot) +static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_= prot) { int is_ram =3D 0; int ret; @@ -895,8 +894,7 @@ static int reserve_pfn_range(u64 paddr, unsigned long s= ize, pgprot_t *vma_prot, return ret; =20 if (pcm !=3D want_pcm) { - if (strict_prot || - !is_new_memtype_allowed(paddr, size, want_pcm, pcm)) { + if (!is_new_memtype_allowed(paddr, size, want_pcm, pcm)) { memtype_free(paddr, paddr + size); pr_err("x86/PAT: %s:%d map pfn expected mapping type %s for [mem %#010L= x-%#010Lx], got %s\n", current->comm, current->pid, @@ -906,10 +904,6 @@ static int reserve_pfn_range(u64 paddr, unsigned long = size, pgprot_t *vma_prot, cattr_name(pcm)); return -EINVAL; } - /* - * We allow returning different type than the one requested in - * non strict case. - */ pgprot_set_cachemode(vma_prot, pcm); } =20 @@ -959,7 +953,7 @@ int pfnmap_track(unsigned long pfn, unsigned long size,= pgprot_t *prot) { const resource_size_t paddr =3D (resource_size_t)pfn << PAGE_SHIFT; =20 - return reserve_pfn_range(paddr, size, prot, 0); + return reserve_pfn_range(paddr, size, prot); } =20 void pfnmap_untrack(unsigned long pfn, unsigned long size) --=20 2.49.0 From nobody Sat Feb 7 18:20:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 87D0623817E for ; Fri, 25 Apr 2025 08:17:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569065; cv=none; b=RudaTzPg27YGL5hVfXgz+BzuU6vpjnZTrZHNaI7RciXv5GLCRlMCQLgmENwNVNYwTh6i1bemo8O27ZEvsid3XIbY60mlkFRIvD4DQq1p5+GLHYRrC/Y9QvMhjG00kwoZMpRZWl5yUeXX2D6y3EXC5PT/Hzsk68ZbAYVytC7Wq8w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569065; c=relaxed/simple; bh=3pu/JRmizV3sTEFqn23N+eBiWBLA1us5qDw3DkZsmds=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ij7uwKuhlXmmMpPbx+IBbNUG9jOax59FsNS8p0OgklyzqKm9/X5jN3RwZ9m9JiPQh2FrYEDELNnvUPKU+EHCX1xX1QQQPrN3ohsZ+/jhVwfi+Bbo+6biuNpUE4yfBPQb2Q4LoIdl6Xeuerdjy87ZfA2/m0DvT4IaIb5YMThjpj0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=HXitVtvk; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="HXitVtvk" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745569062; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rqCDzyJE3N7q1dfRPTJIKewHsgjJcYj+B7llEZA1rCc=; b=HXitVtvku83b/NbuS9TYDrfzGvgCzXP3nhu79QsSF64kBN/um5tgszlkxfCNpZjfAdE0z3 pnptNT9erv773zWxSlzsJ5GNlx58nFecPwJ3mnWIWAxqXJN+jfXkiz4R85oe5saZsjEu0T XoEK3CCThdSuIP/OMP4y2HkQYJBhb6g= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-323-WxaiQOkHMay7W_8rfMV1Nw-1; Fri, 25 Apr 2025 04:17:40 -0400 X-MC-Unique: WxaiQOkHMay7W_8rfMV1Nw-1 X-Mimecast-MFC-AGG-ID: WxaiQOkHMay7W_8rfMV1Nw_1745569059 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-43cf327e9a2so12005765e9.3 for ; Fri, 25 Apr 2025 01:17:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745569059; x=1746173859; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rqCDzyJE3N7q1dfRPTJIKewHsgjJcYj+B7llEZA1rCc=; b=nSTe3ccel3W4Ly+p8k0j638LCs7cuQJUEO4ie00TEHuw2IeVmOYpoH9A9l5vb3tI4h jqEOui05IY1MQ5Sl8GnMBg+TfRS4fj4MuS1etDMpytuXcdCOwOi3ntC5MtrLPzax8kP3 Jzo21ru3jPiGzy2WyHQWzoUy6tRjLLxGqzbRjokenY+Kz/lO1cuEfe+7x17qxlKuJE2v N7sTRBX9w4oZMFPtLlAkXP4hYXUXfkPt6x6Ac9ir/BhleIvEZaIcvAyvW6NKbI4VMKpB b/Rxg8dMRDajPxgz5DrtK+EDsy7xdpmxKuV6bDoI6Dz6C6/1uln9Kq0yihcAHOQrI5H9 sW+Q== X-Gm-Message-State: AOJu0YwfOpjcI7QP3V1J/JZesxWLJj5xVLTOrUCGdNhdWeJ4ElXFeIg+ s76R/e75x55vf9BODQdZwbqgJ9Qn6/e/8GY1OegZiDJG4eDJnnAh2DPvf0OS10/c0ixWck1Vpun xZUptsy1IYztk2Brc/TC1Kgx3LqMATBt/Lgmegra1G4kS9zZqS3KTUvvLCMfERWSypYqHgJ57nA RxlpspFQc7eq1xMaSC5CTyuSdpLFqSaRejBmD/iy/rRA== X-Gm-Gg: ASbGncsyIJJ1v3a9hUPR3/KOHVBEIrJUasVWu0NcrXAVH7oVWcVEH6VchOwEL/0H9TT pc9Evfb4rHeXuUbRZGpfAbjlStW/tG24pfzxnu7MFeZBYzWb1NQB7T7i8pmwET+kHj3LQXZwcxb OAw22PnMyPFs3mvLLeVwnG92PsARPAadVmkcYRLcSg4MZC5HthJRKt8JUxSK6gmX1NKqwTnXKgd BjpPsjsNrhALnBn7f5VXoGI8eOyyeB0m7QDQOp246A7DOOxsgND/GzzXEUHAWDp6nOSyFlAe3cf gDsLoaLjIkmcGeZJMOkj80BuOQsYpk9QOO1r5HWpKcK8U6Qo/U/rAX4Vt8CpyXqzahYvZHQ= X-Received: by 2002:a05:6000:4026:b0:38d:badf:9df5 with SMTP id ffacd0b85a97d-3a074e1e7c1mr893904f8f.17.1745569059420; Fri, 25 Apr 2025 01:17:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEeMJVro3CtNN/nAt/kzydgqpqMLMz4QDAdVYj55uYz4S+yOKx9n2ojCFKF9ThYiE7nLuy7NA== X-Received: by 2002:a05:6000:4026:b0:38d:badf:9df5 with SMTP id ffacd0b85a97d-3a074e1e7c1mr893849f8f.17.1745569058900; Fri, 25 Apr 2025 01:17:38 -0700 (PDT) Received: from localhost (p200300cbc70f69006c5680f80c146d2a.dip0.t-ipconnect.de. [2003:cb:c70f:6900:6c56:80f8:c14:6d2a]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-4408d8d191bsm78695765e9.1.2025.04.25.01.17.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Apr 2025 01:17:38 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, x86@kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, David Hildenbrand , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , Peter Xu Subject: [PATCH v1 09/11] x86/mm/pat: remove MEMTYPE_*_MATCH Date: Fri, 25 Apr 2025 10:17:13 +0200 Message-ID: <20250425081715.1341199-10-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250425081715.1341199-1-david@redhat.com> References: <20250425081715.1341199-1-david@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The "memramp() shrinking" scenario no longer applies, so let's remove that now-unnecessary handling. Signed-off-by: David Hildenbrand Reviewed-by: Lorenzo Stoakes --- arch/x86/mm/pat/memtype_interval.c | 44 ++++-------------------------- 1 file changed, 6 insertions(+), 38 deletions(-) diff --git a/arch/x86/mm/pat/memtype_interval.c b/arch/x86/mm/pat/memtype_i= nterval.c index 645613d59942a..9d03f0dbc4715 100644 --- a/arch/x86/mm/pat/memtype_interval.c +++ b/arch/x86/mm/pat/memtype_interval.c @@ -49,26 +49,15 @@ INTERVAL_TREE_DEFINE(struct memtype, rb, u64, subtree_m= ax_end, =20 static struct rb_root_cached memtype_rbroot =3D RB_ROOT_CACHED; =20 -enum { - MEMTYPE_EXACT_MATCH =3D 0, - MEMTYPE_END_MATCH =3D 1 -}; - -static struct memtype *memtype_match(u64 start, u64 end, int match_type) +static struct memtype *memtype_match(u64 start, u64 end) { struct memtype *entry_match; =20 entry_match =3D interval_iter_first(&memtype_rbroot, start, end-1); =20 while (entry_match !=3D NULL && entry_match->start < end) { - if ((match_type =3D=3D MEMTYPE_EXACT_MATCH) && - (entry_match->start =3D=3D start) && (entry_match->end =3D=3D end)) - return entry_match; - - if ((match_type =3D=3D MEMTYPE_END_MATCH) && - (entry_match->start < start) && (entry_match->end =3D=3D end)) + if (entry_match->start =3D=3D start && entry_match->end =3D=3D end) return entry_match; - entry_match =3D interval_iter_next(entry_match, start, end-1); } =20 @@ -132,32 +121,11 @@ struct memtype *memtype_erase(u64 start, u64 end) { struct memtype *entry_old; =20 - /* - * Since the memtype_rbroot tree allows overlapping ranges, - * memtype_erase() checks with EXACT_MATCH first, i.e. free - * a whole node for the munmap case. If no such entry is found, - * it then checks with END_MATCH, i.e. shrink the size of a node - * from the end for the mremap case. - */ - entry_old =3D memtype_match(start, end, MEMTYPE_EXACT_MATCH); - if (!entry_old) { - entry_old =3D memtype_match(start, end, MEMTYPE_END_MATCH); - if (!entry_old) - return ERR_PTR(-EINVAL); - } - - if (entry_old->start =3D=3D start) { - /* munmap: erase this node */ - interval_remove(entry_old, &memtype_rbroot); - } else { - /* mremap: update the end value of this node */ - interval_remove(entry_old, &memtype_rbroot); - entry_old->end =3D start; - interval_insert(entry_old, &memtype_rbroot); - - return NULL; - } + entry_old =3D memtype_match(start, end); + if (!entry_old) + return ERR_PTR(-EINVAL); =20 + interval_remove(entry_old, &memtype_rbroot); return entry_old; } =20 --=20 2.49.0 From nobody Sat Feb 7 18:20:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F22A7238D2B for ; Fri, 25 Apr 2025 08:17:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569067; cv=none; b=j3+cmBUSRWwFJDJMRfwscBgRg32VYbtG8HoaFmnd/pQvmTQ4So/zMz4n6Jvhb/X4FIeUpyHL0CQahjrHaKSl/sE9sWyJipvnWqB3OREXynl+AJb48rWwE4zC5Dkjc5hySfohopLt902ExfIfPV92LXvgxycqEDA1uYE3uRXXY34= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569067; c=relaxed/simple; bh=UTdvk4e9mPj5bjUj9xrQ9gt4nmgB758NPYuFXNV2/LM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iLyOSV0EmjGOL8bvccNnmGXsHgY6OcPA/FQFCMlO44F2UMG/O9wqKgjtrJdl8y1uXlkdbiIOAcF8NgmHODwad/OvH5z67XUFtN51JFPub+KD37ws0ADCqRV4vJL0d+Q6H4ZGm+471Byru1Fj+OJRiXhFoGZTvnngEloYMSXuLkw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=dwG8RBFE; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="dwG8RBFE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745569065; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9zl4AHm9mXbjqorzBNgFLxI0voD1/7+bTcOR/2Fa4AA=; b=dwG8RBFETNyK6JwHDO2k5UKLlZxaiRHM5Tb6f7grtXsvtWrZ4opmLqgvzUYcxDg+jirPRt yOxBafoTzmCcIZsNQm5Os39FHw7gefmYIai9EsXhTQu2YbfpES3bH6reTQTmW0LM/xmWKI gv5eHVmzCzcXOJUNuLDoBU573JWRFY8= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-538-LCvpcZJoMJu7hwXP9rTwVA-1; Fri, 25 Apr 2025 04:17:42 -0400 X-MC-Unique: LCvpcZJoMJu7hwXP9rTwVA-1 X-Mimecast-MFC-AGG-ID: LCvpcZJoMJu7hwXP9rTwVA_1745569062 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-3913b2d355fso641337f8f.1 for ; Fri, 25 Apr 2025 01:17:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745569061; x=1746173861; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9zl4AHm9mXbjqorzBNgFLxI0voD1/7+bTcOR/2Fa4AA=; b=q8O97DRQfWuTefpluC23MfEXQ+lfkET2QLLquoxa7fDrcUwpQhWOLFf4w2P7LF3qer w+DCvv9pVJZCexG3xP101M/8SScQH0ISEzor3XbBIPHJyB+W1wj/ukX1B03blUHsalx1 XE74TkdG59QYTCpTiqH8XxEXmfBwxvpiJW3ygSTKzK1a820BO9/oHpnKJPGpElMoXaI3 cHaWb4Z5x9FJMQZtFmVPOV7q3j5wJouz9liDr26krm7WQBUkVs1O3FcNPqLyk4eBKSZO MA8PT/qCZyWnqUvzDTw7aDXwRZ+EUNllKsm7fLijlDQeKn+FGKaC3KmrUuYsaRW8bewW 0yug== X-Gm-Message-State: AOJu0Yz7901DsdX5prNvMPO2vIwTo5CeKyLLxP19qF7t4Dm2Odeh81DY cDqyAztfvJ2MwXhtuA9MCtAokpxeeh+ELBo8I75mFvTcvGdQwYH7q5kSxfnFDTG9e2lWUPQbWY5 oRqOtkHnoPcIlTtvso8mKUOUDHVsZCpmoZN0GHG4uODz5n/fpPFM1Zi3JTSbgrK+bJOAO8cr38u ndP0Yrhmh5UF7qsajJEBvNK7hOT/PCXcA5/+DWtNcGvA== X-Gm-Gg: ASbGncvv8KWkzxaDiJLEfJY0sM/t7hfCbHNVi1mr/cp+tjMWf7adUCEQQkstSTASdDx nMojTqAHE1mGzhvS7xP4w5CPObrAHfB5D5eSpvB9g+4TL2Ag+VLE+IWm1wNV7y14tw7JGyLSaf5 Atx3O6RRXzdvxNAGUiVI2CIZR//+chpNID1CVYgzhPimPv+qdiN9+mvBcWH6tZafMr13qP6VGZZ DdTTmBhEl4SxnyRWs2Mh8KHmpeViO7iXwio1amUjFLY/vY0ITFCbwKFIoNCBRBELPrV5OWDJldy eHmT3YQu2eIBJZGJEvfYHkfMpRug/yGFYrYt+2ygjxiMlmhOGnGm4H6fDd9ALzxSGP04S98= X-Received: by 2002:a05:6000:4028:b0:391:2ab1:d4b8 with SMTP id ffacd0b85a97d-3a074e0efd6mr859070f8f.1.1745569061594; Fri, 25 Apr 2025 01:17:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG6cbIXolQS+v1W8kKfDd2qap93n7uHX4eGz19p8/zV2hhP2TLcyzd7t5uofpqhlq66/UdpGw== X-Received: by 2002:a05:6000:4028:b0:391:2ab1:d4b8 with SMTP id ffacd0b85a97d-3a074e0efd6mr859013f8f.1.1745569061032; Fri, 25 Apr 2025 01:17:41 -0700 (PDT) Received: from localhost (p200300cbc70f69006c5680f80c146d2a.dip0.t-ipconnect.de. [2003:cb:c70f:6900:6c56:80f8:c14:6d2a]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a073cc4153sm1649210f8f.57.2025.04.25.01.17.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Apr 2025 01:17:40 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, x86@kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, David Hildenbrand , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , Peter Xu Subject: [PATCH v1 10/11] drm/i915: track_pfn() -> "pfnmap tracking" Date: Fri, 25 Apr 2025 10:17:14 +0200 Message-ID: <20250425081715.1341199-11-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250425081715.1341199-1-david@redhat.com> References: <20250425081715.1341199-1-david@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" track_pfn() does not exist, let's simply refer to it as "pfnmap tracking". Signed-off-by: David Hildenbrand Reviewed-by: Lorenzo Stoakes --- drivers/gpu/drm/i915/i915_mm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_mm.c b/drivers/gpu/drm/i915/i915_mm.c index 76e2801619f09..c33bd3d830699 100644 --- a/drivers/gpu/drm/i915/i915_mm.c +++ b/drivers/gpu/drm/i915/i915_mm.c @@ -100,7 +100,7 @@ int remap_io_mapping(struct vm_area_struct *vma, =20 GEM_BUG_ON((vma->vm_flags & EXPECTED_FLAGS) !=3D EXPECTED_FLAGS); =20 - /* We rely on prevalidation of the io-mapping to skip track_pfn(). */ + /* We rely on prevalidation of the io-mapping to skip pfnmap tracking. */ r.mm =3D vma->vm_mm; r.pfn =3D pfn; r.prot =3D __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) | @@ -140,7 +140,7 @@ int remap_io_sg(struct vm_area_struct *vma, }; int err; =20 - /* We rely on prevalidation of the io-mapping to skip track_pfn(). */ + /* We rely on prevalidation of the io-mapping to skip pfnmap tracking. */ GEM_BUG_ON((vma->vm_flags & EXPECTED_FLAGS) !=3D EXPECTED_FLAGS); =20 while (offset >=3D r.sgt.max >> PAGE_SHIFT) { --=20 2.49.0 From nobody Sat Feb 7 18:20:51 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E84823315A for ; Fri, 25 Apr 2025 08:17:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569068; cv=none; b=UmdSfXxqoBhCh6kxy5Zk6WEz3glX31x6gL7rg/mCR0NnYfBUsae8QVbHh3QPq2uwaVQqXNZ/zkvxSwJxf0M8CmZzgjjkI1eVsO/9p/68FQFpQyGwkn1doAcj8sQHHDW8/HG9Nr6fwpdvlq/ZqfXQTIECfykp98DQIgDddfkEDOM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745569068; c=relaxed/simple; bh=P7aLK3l8yeYUwMXGvA+hIFjujX8ye0jfjOGlf8dWspU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=t82HSxvpZdMCpqSaip6zgDurG7KmVm6V+UG8aWz7T4RWJEw7e5XG12PDbG9BurQANZOtUVD1IiVQRv+nAp/zIIGaWEmQOW0zT0rV8ddBe5YOgxthLdWS57nE2X1ZX8FbCNoSAuFeDLNbuyIcb27ngzcB6T025UgssyaNguvrtNA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=FolyDqRx; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="FolyDqRx" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745569066; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W6VKic5wKMEIAlcOpats+61qo+m5NRwuI82rD38neOc=; b=FolyDqRxFS0hEOEiuIPJkD/qHGFYtTwd/B+99OgUpX7LQttCc5/wGF3edqKuJR+Ay7M0Qj srBjGkKA3cVIwvX6o3OvaiGsado9moKygFmSlHMcE+l3ijHCZa3MDt5z+i1yv7afOLsANr cRABNybgELJAANdyxyqB5F2IbyptnzU= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-588-nAq2T-JoNtud6EGWzAWiBg-1; Fri, 25 Apr 2025 04:17:44 -0400 X-MC-Unique: nAq2T-JoNtud6EGWzAWiBg-1 X-Mimecast-MFC-AGG-ID: nAq2T-JoNtud6EGWzAWiBg_1745569064 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-43e9a3d2977so14332345e9.1 for ; Fri, 25 Apr 2025 01:17:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745569063; x=1746173863; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W6VKic5wKMEIAlcOpats+61qo+m5NRwuI82rD38neOc=; b=BePNQqOpP9m/La57mp1h96YR73cWbocs8nu7y2AxFJrWcMGH5M6W3KdCkCWsGOgI1H I4JOf9wVuBO6LMV2ZClc6hGMlfBh6IwY/CndX00ntf0CNwshj7BbLF2eZw6TEzNC8m4M VPIYe/MW3UY4kHD5LdFPbf18to4QVgWXkkHgXjS5yxL6+aXfcT22EZcDuWwZt/1xGuIG OEyaioZl2YK7MEqm1TLyzPnaojn7yK96vR66LmyOKAxr71FCtVbijVKZ9a671oQVb9f4 AlyBPl97Hr1lTVPspNSiWV8r8p/CNmC+7GpIgt1TCY+M0zK2IoWvPKajLKGP5yC8YzfH AVbg== X-Gm-Message-State: AOJu0Yz4v5+QWRgURIml6Y5u7rYVy18jEzYiSYaFEfZMjomae++Lf3Af SX7k6mWdmm2E3ANstsQCSWjWRyvenYmVge2TL7N6bEhoZuYmFxGZlaBUXcJNd8PfICSlXWW6baW zv4LAwSrAHevGMSFNhDJ1BYIMUvHT+aqE9RSXWXAFmwkaFKlttHG4haNLrEOjRWwul0HxHWXc9Z cZuDif5jTrLEGNVrMMbMvvRvKwMbHysWEshi43shya3Q== X-Gm-Gg: ASbGncsyt/cdGi06/LKtb5QbJgNKXreNmbLsIiKsb0mLTuIi7rVwG0EMlBjNpD0PgPa HsYpWruth3NbLlbUjC76o7CK6k81LMAtvykiS91lftNtIZ8JT3g4Fe+DwcpiJuhrGtIVHh4NygL U9p2U4j0CeJeTaCkco8AblXrZKwLU1Eo0nEzYFrCSFeQkWLnTGGq41odF9+B3Cbob8EB4vBnU4z NerUNd1nJq9ZtgtY+nP8GjzQOtNGY40xGXgirPBcrRxD0dYmsaqBmG8peXsuijMpj1Mf/WUwOij QaeGvaD/ihkiILA/XZp5UwVdOpnKKYGacfPbBSWapDDHaGFfo3lARlKjE63UloXVBdKqRJQ= X-Received: by 2002:a05:600c:a418:b0:43c:fad6:fa5a with SMTP id 5b1f17b1804b1-440a66d91cbmr9335465e9.24.1745569063637; Fri, 25 Apr 2025 01:17:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGZBsLQHuNB03USKo+AemF2nPVLejdezBsqoRXAvjTmH+TtvceXr84oTyLSWQmeHt1CNvX3vA== X-Received: by 2002:a05:600c:a418:b0:43c:fad6:fa5a with SMTP id 5b1f17b1804b1-440a66d91cbmr9334915e9.24.1745569063186; Fri, 25 Apr 2025 01:17:43 -0700 (PDT) Received: from localhost (p200300cbc70f69006c5680f80c146d2a.dip0.t-ipconnect.de. [2003:cb:c70f:6900:6c56:80f8:c14:6d2a]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a073ca5467sm1591850f8f.28.2025.04.25.01.17.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 25 Apr 2025 01:17:42 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, x86@kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, David Hildenbrand , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , Peter Xu Subject: [PATCH v1 11/11] mm/io-mapping: track_pfn() -> "pfnmap tracking" Date: Fri, 25 Apr 2025 10:17:15 +0200 Message-ID: <20250425081715.1341199-12-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250425081715.1341199-1-david@redhat.com> References: <20250425081715.1341199-1-david@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" track_pfn() does not exist, let's simply refer to it as "pfnmap tracking". Signed-off-by: David Hildenbrand Reviewed-by: Lorenzo Stoakes --- mm/io-mapping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/io-mapping.c b/mm/io-mapping.c index 01b3627999304..7266441ad0834 100644 --- a/mm/io-mapping.c +++ b/mm/io-mapping.c @@ -21,7 +21,7 @@ int io_mapping_map_user(struct io_mapping *iomap, struct = vm_area_struct *vma, if (WARN_ON_ONCE((vma->vm_flags & expected_flags) !=3D expected_flags)) return -EINVAL; =20 - /* We rely on prevalidation of the io-mapping to skip track_pfn(). */ + /* We rely on prevalidation of the io-mapping to skip pfnmap tracking. */ return remap_pfn_range_notrack(vma, addr, pfn, size, __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) | (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK))); --=20 2.49.0