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 B8ED0C83F34 for ; Thu, 17 Jul 2025 15:30:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 090B36B00B1; Thu, 17 Jul 2025 11:30:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 01ABA6B00B7; Thu, 17 Jul 2025 11:30:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E4B986B00B8; Thu, 17 Jul 2025 11:30:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id D34676B00B1 for ; Thu, 17 Jul 2025 11:30:09 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 37F72B5C43 for ; Thu, 17 Jul 2025 15:30:09 +0000 (UTC) X-FDA: 83674142538.24.76E0F54 Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) by imf30.hostedemail.com (Postfix) with ESMTP id 2AB0B8000A for ; Thu, 17 Jul 2025 15:30:06 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hszZl4DZ; spf=pass (imf30.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.208.47 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752766207; a=rsa-sha256; cv=none; b=xqdCAYf8s/OFPt0T5zMnIOiuC8gy7HgP+ppIXjc3gKHjD9BT9nIhTDAMqecYvU9Cr4bY6O 03GGzGFtyDZHu5Z5/Ap+SDeU272KqO5/qdF7gKPSr4xHygrfdnKq2Fe+na53RIPnp8LY6I X5DQ3aGjDbMfD5kCjJzvdH3mz3Ba10o= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hszZl4DZ; spf=pass (imf30.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.208.47 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752766207; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Vsrgol1TK/+ocMyVX1rhmkelYUr4jt07AkKai6atjpc=; b=niqjNv4xHviIazSJFUpw5slH4BAbpItTC6oHW1U6+ad9chXOBHixsFfX3V9uuhnuYtUstT nDCDD5xi2EnElcQZlEojuL224/R8aRqL/sbvAxbBpnHUwqPvPO1HkkEDpJC0QADZu6c+X/ rYbSP/u+TVX8DsQSrzRkZiKaGZ1HyZ4= Received: by mail-ed1-f47.google.com with SMTP id 4fb4d7f45d1cf-611f74c1837so1944494a12.3 for ; Thu, 17 Jul 2025 08:30:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752766205; x=1753371005; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=Vsrgol1TK/+ocMyVX1rhmkelYUr4jt07AkKai6atjpc=; b=hszZl4DZllXbAjyotKQtZb3tK/FsrJfJ21tckYbwy26iPAqHMuD2wYmcHyIXmQuckM F6ImWwzbNxx/RhOdhMx3zQ63fdNYtofs1ck4icL6TnVxMpb/JosHZwPhKYLyP5kzy+WB SDjTlELOyJ/xiOzPcxhIDGQK2AnVQHhA03NG3GpfSfjuOYQZpZ+zy+snmf3/SZ8gobtK 2anYw0KRDLz9L1PLUz7ov84525lHDOW7EBdJDoKzDd1IN1wqS8Z1qPZ2kM7nGfDMyzTS tW8eDjnvG/T6LkV8RKZMPnbir3465QbS363PZe82h51J0zYK5J9Cp4jh2dBb5A9ThmEm p3hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752766205; x=1753371005; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Vsrgol1TK/+ocMyVX1rhmkelYUr4jt07AkKai6atjpc=; b=nXgxZP/g7dQL1fBFYyhP6WEndhmKC6kWAEf6UwUNiupO6e9GIYOXZ+mbJwfvtR5Tz5 r3fDgvcsXGkRJibWLv2Ai6JlmhPvjLwFVDnWFXdRU9PFRBxb9CKhWi6mKV/maE0mDpwT EZUWJuXpz12qI6XbaMYRZTbikDyXWqtQVjMlA6F9gEp1Got6n1T3GuzE9Ah7bkWkFDBn A6wip5eidB0mv+14RJb6Su18aiegtkLM7A7LBBWVq5CttQLbaMo0Z8OmyMcLk4PqmETk sBY+JJeW+Qln7GSMpcErWqKvGphyuEHwdbDJxHKOHMG8OIysB6mtQlX/LewdjOxEdUjf pi/A== X-Forwarded-Encrypted: i=1; AJvYcCUXzTBC2cV3a3jESaDu8IsDjB7OIXq6IF6qvvKemnuUwMuid+TSev9iP9mjBdqttQIYBvYGJsahfg==@kvack.org X-Gm-Message-State: AOJu0Yx2+lhxcFn2mLGoOwnepyz172I4t/5lf5nv/Vr8KzAnXzsGHMxi zOpeBHyxfSvjVRmps3h11+cq/U1J8gL44+g3yayKWbXJwgiO6B2gQNjG X-Gm-Gg: ASbGncv6vZDKdggxqrJ5KNhfg1vUWxJkPnehlkX75FfMcp92/Zpp/madzp2brbzD4IO 03CrEne36nubz3SlTLLL4N3TUMTdHGFrmHwpMAYmPpW7lAxCIVoF4qg+ZQUvgYPqMzqivPNMYML Tz/YObTrmgg06KLFf1xrLUshVAwNc6HAn3QXz9eVlWDeGYYOniKLh+6c3XvkNlvt003mfEyLd6W grt6GbAHGV4jgu8ykZ5eQceLsUliFIE2C5OI8axx+xb+8KIq58MdsBjO0aqyVdqAbB/i76oDwtc TiRqIcSgRyBnbyPAgV541IeZINRYcEDdfaPt+zeKJ6uwnP01bJbafkK/OOMYvcR0gfoWOyChvUA 6p0/GnmYrwDUYCW1qATp2vgNYeTZG2bV4KXtZpT6rxpTgV1qKb1RUkYBSoi5ur2+2MhQ+920= X-Google-Smtp-Source: AGHT+IGVxFeB7bDJ6L/cFesCIdj8Kq2Pjf0065vAWgr7Ek6+yRjgJnzTEbJldRxOPc92FyqhTFK1KA== X-Received: by 2002:a05:6402:50d4:b0:608:3b9d:a1b with SMTP id 4fb4d7f45d1cf-612823bb089mr6623895a12.19.1752766205233; Thu, 17 Jul 2025 08:30:05 -0700 (PDT) Received: from ?IPV6:2a03:83e0:1126:4:14f1:c189:9748:5e5a? ([2620:10d:c092:500::7:8a92]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6121606a19dsm7055507a12.37.2025.07.17.08.30.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Jul 2025 08:30:04 -0700 (PDT) Message-ID: <90ef1e37-4d76-4714-9071-51c33e315fa5@gmail.com> Date: Thu, 17 Jul 2025 16:30:01 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH v3 2/5] mm, thp: add bpf thp hook to determine thp allocator To: Yafang Shao , akpm@linux-foundation.org, david@redhat.com, ziy@nvidia.com, baolin.wang@linux.alibaba.com, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, npache@redhat.com, ryan.roberts@arm.com, dev.jain@arm.com, hannes@cmpxchg.org, gutierrez.asier@huawei-partners.com, willy@infradead.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org Cc: bpf@vger.kernel.org, linux-mm@kvack.org References: <20250608073516.22415-1-laoar.shao@gmail.com> <20250608073516.22415-3-laoar.shao@gmail.com> Content-Language: en-US From: Usama Arif In-Reply-To: <20250608073516.22415-3-laoar.shao@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 2AB0B8000A X-Stat-Signature: smrng7j17kja5yx4f49cbe9g6xrikih7 X-HE-Tag: 1752766206-626977 X-HE-Meta: U2FsdGVkX1+K+Ltr79KFbkYpDEuXYVZkFYnt4y56cnh7uDxIwe5QiMGiua7SN9r8HXru+txGK1npxHXFnwS5kWhFhMum0wUY+pQzRYrAhabXuqdeG89BvduMZdfPfHspEBUqdHMpcKl7Vym0MfOqRDtrgiW/pwFppMErBR4nYTubN+Ze3c5ydBwztzTQHJN09mvDSVVVHMj8aPXhlELIuoNKP/jYTfWKiIETtzx9JT2+gzuyBTZblBgw6suFjztvgyC4EL4Qz2FNInaAimazM5J7JvU7UWzKlnULmUKFGarDAxp7I7BGUK1YyVULWYVzpua9zevcpUickMta4f/83DVqCXKlcLL0bqCVc+QBf0ovkGjanu1IPHM0t35FmehWoUdxUlCFTV3y8N/G55xKxCgTo2ueh2muc2q6LpNa6H3Q24TAwu1tn6JoRcgPmT7vv6MdHXOQF2sF9afWIX1vCBCuYv4a1XoPa3sZGnj7Puf9Hz4WdIOuvQTYqPYHP+/7c+yEGeqWfpZT4mTOStikhUX0JiEG4bTavoTKiLUTmt924Ny1/J2jo//YtOdWZ1N+XS2DJK0paBPBfZ8f/XYOXeIvBXUgNFmIOt8D2f14+rxmntjaEh6954FWhnfvyN1fi/s7XNuDMod3FWBY+6X70FT7/hg7i1qQLMIKdMgaFJok0fQfanezYy9pN9+BCFQYZoEOC9oVtOlc25gZ838MSsalvf6/JGuNMFvrtYIJ7JROvMSIhpnW6UnNjl4T0111hwJGEMKebztPRazsp/dobOHyOP4uuMs06l0cxlmUPnx5nnnN92gfDhL6Pdt05OEJ8l+RCv/tToRAk1/9IBNMMHqzIi0y9DiiD5Z2ciD9jQweJjdR7HzflOEgeI9WnEr+J8OaJT/IWT47n/5/rWOaMq+ycIRhsfYYdZrZhURPP/DDJDP6jNRYovRkfkP6V+ygpSbRC/1z9pjf31d591r Zszdswjk wDKUo37a/3P8fCdBpYqNEC4bxVX1WOMtFkZGXQRIZ0YuzSZr6O+ukJwU+9UXCLIdxBIwarSJdbpD8tw7mKL1xYWJ+tJP1US8FcI89gSuz/9AuUQGYs5zZYKLYpAbMXsNfI0B5hH4AQMwGWqHw/zBq6IyONjZQUQfGSI1qT0Xu33d5tLykXj4qjBcEzhv2SGrA2IedzNIne3qKpZOShuKH99Y/ohTWOiUhAyZxo3/wjw4aY3woArNJ+1m/MNF0y4XOupt/r/6jJ20nh9EUNaXng0w/svnub0f2JYXE4rbEME3rf2rmaAu+RBetpWiNAW0fkYVJj9j6qcJ02d/kaMAW+FZk4xUezFTw5gHG16JTLIXob91lKWvtVtKKb1fEGbUae2witLLwjFixi8S6XDQjcCDylP5ldRqwZz5OuSTowmfXJgP/Wgc5LJrGs4MaRzlsudf26pODiug/jmRKudd0DipBg9CrAF6UuNG4AjscPn1cBhkjwo4qCmPjZav8hhCGzf9HPR46pyvBkuLs9abzAvC2LxfQEtgPoeiOgRX4OpfXWj24l4XtgL+4mmhsco6wgyzC+ExwmiwxzWfJxLRydHUo9aybiEo9FiK5 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 08/06/2025 08:35, Yafang Shao wrote: > A new hook bpf_thp_allocator() is added to determine if the THP is > allocated by khugepaged or by the current task. I would add in the summary why we need this. I am assuming I will find out when reviewing the next few patches, but would be good to know here. > > Signed-off-by: Yafang Shao > --- > include/linux/huge_mm.h | 10 ++++++++++ > mm/khugepaged.c | 2 ++ > 2 files changed, 12 insertions(+) > > diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h > index 2f190c90192d..db2eadd3f65b 100644 > --- a/include/linux/huge_mm.h > +++ b/include/linux/huge_mm.h > @@ -190,6 +190,14 @@ static inline bool hugepage_global_always(void) > (1< } > > +#define THP_ALLOC_KHUGEPAGED (1 << 1) > +#define THP_ALLOC_CURRENT (1 << 2) > +static inline int bpf_thp_allocator(unsigned long vm_flags, > + unsigned long tva_flags) > +{ > + return THP_ALLOC_KHUGEPAGED | THP_ALLOC_CURRENT; You dont use either vm_flags or tva_flags in this function? I am guessing you wanted to check if these bits are set here? But you dont seem to be setting these flags anywhere? I am guessing its in a future patch. If it is, I would move the setting of these bits here as its confusing to only see the check without knowing where its I feel this patch is broken and needs to be rewritten. > +} > + > static inline int highest_order(unsigned long orders) > { > return fls_long(orders) - 1; > @@ -290,6 +298,8 @@ unsigned long thp_vma_allowable_orders(struct vm_area_struct *vma, > if ((tva_flags & TVA_ENFORCE_SYSFS) && vma_is_anonymous(vma)) { > unsigned long mask = READ_ONCE(huge_anon_orders_always); > > + if (!(bpf_thp_allocator(vm_flags, tva_flags) & THP_ALLOC_CURRENT)) > + return 0; I am assuming that this is the point to check for allocation, but thp_vma_allowable_orders is not just used for allocation, its used for in other places as well, like hugepage_vma_revalidate and swap. > if (vm_flags & VM_HUGEPAGE) > mask |= READ_ONCE(huge_anon_orders_madvise); > if (hugepage_global_always() || > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > index 79e208999ddb..18f800fe7335 100644 > --- a/mm/khugepaged.c > +++ b/mm/khugepaged.c > @@ -472,6 +472,8 @@ void __khugepaged_enter(struct mm_struct *mm) > void khugepaged_enter_vma(struct vm_area_struct *vma, > unsigned long vm_flags) > { > + if (!(bpf_thp_allocator(vm_flags, 0) & THP_ALLOC_KHUGEPAGED)) > + return; > if (!test_bit(MMF_VM_HUGEPAGE, &vma->vm_mm->flags) && > hugepage_pmd_enabled()) { > if (__thp_vma_allowable_orders(vma, vm_flags, TVA_ENFORCE_SYSFS,