From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8E91AC3DA4A for ; Fri, 9 Aug 2024 16:59:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 259F66B009F; Fri, 9 Aug 2024 12:59:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 20AA36B00A1; Fri, 9 Aug 2024 12:59:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 05D236B00A0; Fri, 9 Aug 2024 12:59:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id DB66E6B009E for ; Fri, 9 Aug 2024 12:59:51 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 9A1C3120DDE for ; Fri, 9 Aug 2024 16:59:51 +0000 (UTC) X-FDA: 82433318982.19.7A330A9 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf22.hostedemail.com (Postfix) with ESMTP id 7EADEC002C for ; Fri, 9 Aug 2024 16:59:49 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=OLHAVbq9; spf=pass (imf22.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723222724; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4vBISjU3wc8bbFt9cGZRVmI4aFRJJnxKYVQ2bi1B1P4=; b=zbVEVH7QL0jWrmosro0S1wgrPpzA3f1gxEErzS6lyrWrZg4RxqKLB5ZiuA1WDaHYKAwHgJ nbZLz7mxSFFO4HbIDmJh6cRRAN7nfnYw2uT3hottL1ejPvnrz7neRa1ttgW6i192mlsDWj TH2W3FkU5QrSX4TfnsXGT3VEjcmoCaE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723222724; a=rsa-sha256; cv=none; b=u00dgl8WwW64Dr6juaAhBn8K9PukuanFuYH/Bmojc+zJq4I2MQ+j3UmcE7G3ezjPv9dFAr ph+l8mSC/UxB25t1QiWaoPTd2FS8eNK/Vkre24sXo5wIugEvcdRpbZ4Pk0jk6PPBkTAJzr 8tMxh1RHp2gqkXURrGsJVl5/FmW9Ah4= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=OLHAVbq9; spf=pass (imf22.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1723222788; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=4vBISjU3wc8bbFt9cGZRVmI4aFRJJnxKYVQ2bi1B1P4=; b=OLHAVbq9Op8R///JGN696si76Agq38PrrmbtTVV2ODc7lerK4ifTahICHiUjmxnh3vwSIa tvpLZ5nK7dvq7dPhuxHs4q2glkAYnzJsdJXU88A1Wr+7TrVFfkXuctcjGwzUY+l5nhuW6v B4tEj2QKUVItPFIrcRJRzdy5XhzQnp0= Received: from mail-oi1-f200.google.com (mail-oi1-f200.google.com [209.85.167.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-615-b7aRuOTYMfGZ40Ilim4New-1; Fri, 09 Aug 2024 12:59:45 -0400 X-MC-Unique: b7aRuOTYMfGZ40Ilim4New-1 Received: by mail-oi1-f200.google.com with SMTP id 5614622812f47-3dc2abc0ae0so197010b6e.2 for ; Fri, 09 Aug 2024 09:59:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723222784; x=1723827584; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4vBISjU3wc8bbFt9cGZRVmI4aFRJJnxKYVQ2bi1B1P4=; b=qEjL+1jxBxiC3jZsQjnB11QRHeypKvpxc03NiFiacaeDur+bySmOVhh9Q+HFf2DRVG CjlEgU8qQf2s/1LSAAxR6wM8lWvFYiaOgoTQssDHsTHuAbw+IHLHkwUX2HqoSdKCT7D6 qrVL8Nz6W1x8BucbGiHcQrLfvG6jwSB084l+178yMi2xuzncRkPiJBirKpAacQOXUm2i 8sxifEwT/TPZz5qcO+5RnDjzHvJW54OaUXlWnXSy+Cp3BuctdTMAFqKcOTpDKZtB7Sjg m2BAz2aNGD0dUGcxJW9oSqMQgpJN85jNml8J9xG3OvnuyOKio9fcIeVAu1x54yq/Z9rK 3jEQ== X-Gm-Message-State: AOJu0YyCDD3Y7I8sskiAVydSwbh+J4DnVqTwndfzPEukQ4Su/Ig5DsKU L1sJw1t/6qo0Cluwc3rYH1CvKFHIyXtQ+iaGeJnWsxooq5wVUx6tyKQe4lZhfPPYynFb8RBYwOK e3sbv01Z5qE6i7xtA+RIC4zrg94hFqBTp61YUsayV8N74tql6 X-Received: by 2002:a05:6358:e498:b0:1ac:ee25:ea01 with SMTP id e5c5f4694b2df-1b176f25c65mr138666955d.2.1723222784508; Fri, 09 Aug 2024 09:59:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGhzrEIAv0YtSNyCDkni9NvGO/yGcX0KWO+ywGAIyNJzMZXEzyIqhBTcGWxs3CX0V3QMBcTvQ== X-Received: by 2002:a05:6358:e498:b0:1ac:ee25:ea01 with SMTP id e5c5f4694b2df-1b176f25c65mr138663855d.2.1723222784120; Fri, 09 Aug 2024 09:59:44 -0700 (PDT) Received: from x1n (pool-99-254-121-117.cpe.net.cable.rogers.com. [99.254.121.117]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6bb9c79ba4asm78773856d6.36.2024.08.09.09.59.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Aug 2024 09:59:43 -0700 (PDT) Date: Fri, 9 Aug 2024 12:59:40 -0400 From: Peter Xu To: David Hildenbrand Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sean Christopherson , Oscar Salvador , Jason Gunthorpe , Axel Rasmussen , linux-arm-kernel@lists.infradead.org, x86@kernel.org, Will Deacon , Gavin Shan , Paolo Bonzini , Zi Yan , Andrew Morton , Catalin Marinas , Ingo Molnar , Alistair Popple , Borislav Petkov , Thomas Gleixner , kvm@vger.kernel.org, Dave Hansen , Alex Williamson , Yan Zhao Subject: Re: [PATCH 05/19] mm/gup: Detect huge pfnmap entries in gup-fast Message-ID: References: <20240809160909.1023470-1-peterx@redhat.com> <20240809160909.1023470-6-peterx@redhat.com> <67d734e4-86ea-462b-b389-6dc14c0b66f9@redhat.com> MIME-Version: 1.0 In-Reply-To: <67d734e4-86ea-462b-b389-6dc14c0b66f9@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Queue-Id: 7EADEC002C X-Stat-Signature: yztftd4o8cx6p6jbfponn6kgs83q7eid X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1723222789-29996 X-HE-Meta: U2FsdGVkX18w+SyxV/7J7O7XDt3uoVU2MczTzd0q+u0koQnuZ9V2c5u4cyJsT8vmK7OiTSeBSOMvTpACZb93Xf2tQ/zRWiFMTLDy2oYH1iQn2p/NbYKslqq3Q8N2OCZqW7XktS4ispnrS0FwgXG2JOXGKPEDGBeYSQmHjX77YWQzJWn2oWiVY400bFtWz4DtPEpIWtwx29q9NQ1Y8KJjrznGYyMPRtCoGbQ13ivg513dCJLg4D+Lr1eICSUPmkwgh7UYvxBiI/z/fUya0fanbfr5ig2E+wNgZcKRwZuYWGOWvo/tLKpSITrL/Vc+sYQzFnnjQbpxZ8pAwfPNVMyS1LSgY7ybGp/ZEEeHnv3ldf6q/qzMxYV3jLPsZtxWcjQVSxzHn0wcjvyjBET2m49+zWeEV87CsEDbbQhsQSmo35BLrcQ/bawXQ3hbVftCh0wNtKSHsnAfqzXDKmm1wu56PiucUDieHjWpgqSdbKjs+ZLPTngOLtD422GvUZaeBfX7emtna3oVTVwkgKIAzrGSaYgmXTvbW/nd9h4X6AHnmd9jS4zHvXmrddP/UQKoQ+UQ0hFhNGMhpZMX49/n1/eSh4gXvw5YVqkfMEx3DBtg44Jsq56yhFaXWjuTSVdGpDZD5o2VYgklSxGEnF5ktJuQOtC3CDcTQWo3RspuwrrDJFepXyahXy2+5WxHVXMa21cFay1TQgAbXPi7UnVIk081LEOrL+1/kI6JiXyoRkr8XHZ/XffFKXRV4ZqxUn1UHY5yHTQ0Oqf1mH4YswaDMzku21zBUWiKiCWd2Q8AeEZCEB9qKKWU2fs0ZYQT3ndncdP8t0mp79WpTZrUPv0DafFwuhfZ89ZRAAhacATk/lCFK9cnm1uGLZBhCn6Onjh4LLGviQO7uz8jrwJbC4LvjRQXZkK7TcqfYstP3xUEHjDcMrvNYnkOXN+VFQ+o19Qkn/MhDSZXdcB2P0nEa7mDTtP lrjS9QOm iFSMSM3oSZh0cWTI7GDsDKh25U9OtAbfBwHcWeQ4f27NhmXSR4YPAeoRWWNpV1DxR7S+zlBsDNGHQty7BLl6aH49bp2iQHHU+hnoqkzRW7tnm9oBQ6mQKBsGlXHVOJzU5DdsAjDQinU6xR65c05DDDenfV+Uqghkh0gMEK0AadliKBwx+83P6AbLx2IHuag3E3KT6cj2ZZAag+Dw731PcjNwaIqT13ODOTGOj+p8HQAUYuPQkXo4T53HmdAukgcJvAwn3cTrsYLSsUgXXhR37uZB24qC5C4TIqg5ZDVgwNS8O/DjIm8eyyXAqgNk8Nm+eFZsV2/oqjBEgPx8ieSZ+szASC/HxJCUpCLIxi6rG9262pAf585rSwfGxfiY12OFilpAO92qRRddpQ4CAtNMeKmbLdixzirKjupJmhl5e2sFMWofmIV+MPGzaDEdV2udAUM/+BorcK/wWzbPjE0o/UI3gug== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, Aug 09, 2024 at 06:23:53PM +0200, David Hildenbrand wrote: > On 09.08.24 18:08, Peter Xu wrote: > > Since gup-fast doesn't have the vma reference, teach it to detect such huge > > pfnmaps by checking the special bit for pmd/pud too, just like ptes. > > > > Signed-off-by: Peter Xu > > --- > > mm/gup.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/mm/gup.c b/mm/gup.c > > index d19884e097fd..a49f67a512ee 100644 > > --- a/mm/gup.c > > +++ b/mm/gup.c > > @@ -3038,6 +3038,9 @@ static int gup_fast_pmd_leaf(pmd_t orig, pmd_t *pmdp, unsigned long addr, > > if (!pmd_access_permitted(orig, flags & FOLL_WRITE)) > > return 0; > > + if (pmd_special(orig)) > > + return 0; > > + > > if (pmd_devmap(orig)) { > > if (unlikely(flags & FOLL_LONGTERM)) > > return 0; > > @@ -3082,6 +3085,9 @@ static int gup_fast_pud_leaf(pud_t orig, pud_t *pudp, unsigned long addr, > > if (!pud_access_permitted(orig, flags & FOLL_WRITE)) > > return 0; > > + if (pud_special(orig)) > > + return 0; > > + > > if (pud_devmap(orig)) { > > if (unlikely(flags & FOLL_LONGTERM)) > > return 0; > > In gup_fast_pte_range() we check after checking pte_devmap(). Do we want to > do it in a similar fashion here, or is there a reason to do it differently? IIUC they should behave the same, as the two should be mutual exclusive so far. E.g. see insert_pfn(): if (pfn_t_devmap(pfn)) entry = pte_mkdevmap(pfn_t_pte(pfn, prot)); else entry = pte_mkspecial(pfn_t_pte(pfn, prot)); It might change for sure if Alistair move on with the devmap work, though.. these two always are processed together now, so I hope that won't add much burden which series will land first, then we may need some care on merging them. I don't expect anything too tricky in merge if that was about removal of the devmap bits. > > Acked-by: David Hildenbrand Thanks, I'll take this one first. -- Peter Xu