From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9B2D33D5C38 for ; Sun, 26 Jul 2026 22:23:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.71 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785104605; cv=none; b=IsvLXOO+g07Hk2prLxYoLhLnWaLlapX7qDSdzmSYdw60Fpp6iC/o1ce72LA3aa63qM9GQWN07hxjg/wTFrzmFneAAdM/BLJqi+RqspgHNXQTcFW1UL05GzyEfgtUrViNiEFRhokUSfAuR/KyoAF0u3seAA/cASScZQvvJVFrKrc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785104605; c=relaxed/simple; bh=vlH2rUf+R6ThZBH6KKbSV7aY568BYSNolZuWeaMp5ag=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=kOuzvWwr5IPqrhSN4AEryOX+zjilMydG7mXRZUbFmGm5Mo56zAWoSX969U/PqoyHuijwDkcuhI+Yo8Vmhff47lqD8Q0d8VgbIhhvKZOxEn+DLGPS8VN6B1EnFgGtGD64ZDoUjrRfxXQgbQmK3+sC1+CqzbE3A3oF+WbIjBIUGZs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--jackmanb.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=s091hn2l; arc=none smtp.client-ip=209.85.208.71 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--jackmanb.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="s091hn2l" Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-69841da1946so2211484a12.2 for ; Sun, 26 Jul 2026 15:23:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1785104602; x=1785709402; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=DacKmcthV2MkG170QiSb9qnx9wyJU1iYBlLXoU9TojQ=; b=s091hn2lEJDJFMwonwLEA5ha3Q4ebas1PO9Ab1jrfQjXOOr9l2Zeq7kBluWflawXoD Ji1JMxRonOGZVenvhjfJEsFioV1Tl5KpyxV/fR5jCu0OA22h16JDPrIhJcHpDbbYuRGU zIhspfvYv5udxSRrDYD4UTilldJFpxlw/Q3/4Z7Wfe8o5sSWSWT3EY81Foda4jCCoAVI AP0jW/M1s8L5fRWzcthSVi3B2EPY79g2csUHhoxKE7SGxarL5kIMk9toPRb47s681mUc oBtWVN2kHwzVf1hTHQdvCuTKBRsSV286sBUedguyfZ1hlXpLBxPjE9vADf8PnodUZR9d 6WGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785104602; x=1785709402; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=DacKmcthV2MkG170QiSb9qnx9wyJU1iYBlLXoU9TojQ=; b=dQs20R7TbdXYjCjLtag9tgzqg0QeO/chMhSGFQiUnM9SKtMwOP35KumeDK6rxX6nUB /uZuUUZKNlbG+WZcdi5L3HlNTf97EdcuB82kBTxNKOY4LDvtUfJGE2ApAbPatGdYZb08 fE3w4/nwPlBDyqzhQ3PlKSE3n8WiFVYOnkrkk9IbI15tSLzV5Cdk4dxXCMM8U3NTT5j8 d0Bbq907OI9dSWAgXRHiCaFio/W5orWdBk7GPY+4aWv68YtJH3iAD9dRel67WAFpibKX TyBm/PvygnzVq65NFiZEtpmgkeeSWeTYu9S4NU4OqCtojWMrGglABhbnK+M0kiYT8t7e JvUQ== X-Forwarded-Encrypted: i=1; AHgh+RrwH1J9QAwANFNrJDdY+dl1A6pxZxkHC8eq3Um47VJS7qsRHy5EppyhfHKMotCraS0INyuqJ0tZPgrmCZ8=@vger.kernel.org X-Gm-Message-State: AOJu0YxMCsdtj8LNcSQzlJHHbUuS8SDA/fh4gAmAX4Pwp4oqS8QWAzJS WHs4Xg1piiEu9HUEnv93/4Hpi4VAU88AdWihL7SbsDE1s3pONiFdG/EuUnJoDX5cdAF0GsCJmmN uhKRXM+6O/vvx3w== X-Received: from edds13.prod.google.com ([2002:a05:6402:520d:b0:69f:4a68:c7d]) (user=jackmanb job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6402:3226:b0:68c:3439:1340 with SMTP id 4fb4d7f45d1cf-69fc113fc17mr2508809a12.22.1785104601794; Sun, 26 Jul 2026 15:23:21 -0700 (PDT) Date: Sun, 26 Jul 2026 22:22:35 +0000 In-Reply-To: <20260726-page_alloc-unmapped-v3-0-6f5729aa9832@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260726-page_alloc-unmapped-v3-0-6f5729aa9832@google.com> X-Mailer: b4 0.16-dev Message-ID: <20260726-page_alloc-unmapped-v3-2-6f5729aa9832@google.com> Subject: [PATCH v3 02/26] mm/secretmem: make use of folio_{zap,restore}_direct_map From: Brendan Jackman To: Borislav Petkov , Dave Hansen , Peter Zijlstra , Andrew Morton , David Hildenbrand , Vlastimil Babka , Mike Rapoport , Wei Xu , Johannes Weiner , Zi Yan , Lorenzo Stoakes Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, x86@kernel.org, rppt@kernel.org, Sumit Garg , Will Deacon , rientjes@google.com, "Kalyazin, Nikita" , patrick.roy@linux.dev, "Itazuri, Takahiro" , Andy Lutomirski , David Kaplan , Thomas Gleixner , Yosry Ahmed , Patrick Bellasi , Reiji Watanabe , Sean Christopherson , Brendan Jackman , Nikita Kalyazin , Ackerley Tng Content-Type: text/plain; charset="utf-8" From: Nikita Kalyazin Replace set_direct_map_*_noflush with newly available folio_zap_direct_map calls that take folio's address internally. A side effect is even if filemap_add_folio fails, the TLB is still flushed, which is not expected to be on the hot path. Acked-by: David Hildenbrand (Arm) Reviewed-by: Ackerley Tng Signed-off-by: Nikita Kalyazin Signed-off-by: Brendan Jackman --- mm/secretmem.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/mm/secretmem.c b/mm/secretmem.c index d29865075b6ea..4a4934769f8ba 100644 --- a/mm/secretmem.c +++ b/mm/secretmem.c @@ -53,7 +53,6 @@ static vm_fault_t secretmem_fault(struct vm_fault *vmf) struct inode *inode = file_inode(vmf->vma->vm_file); pgoff_t offset = vmf->pgoff; gfp_t gfp = vmf->gfp_mask; - unsigned long addr; struct folio *folio; vm_fault_t ret; int err; @@ -72,7 +71,7 @@ static vm_fault_t secretmem_fault(struct vm_fault *vmf) goto out; } - err = set_direct_map_invalid_noflush(folio_page(folio, 0)); + err = folio_zap_direct_map(folio); if (err) { folio_put(folio); ret = vmf_error(err); @@ -87,7 +86,7 @@ static vm_fault_t secretmem_fault(struct vm_fault *vmf) * already happened when we marked the page invalid * which guarantees that this call won't fail */ - set_direct_map_default_noflush(folio_page(folio, 0)); + folio_restore_direct_map(folio); folio_put(folio); if (err == -EEXIST) goto retry; @@ -95,9 +94,6 @@ static vm_fault_t secretmem_fault(struct vm_fault *vmf) ret = vmf_error(err); goto out; } - - addr = (unsigned long)folio_address(folio); - flush_tlb_kernel_range(addr, addr + PAGE_SIZE); } vmf->page = folio_file_page(folio, vmf->pgoff); -- 2.54.0