From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out30-118.freemail.mail.aliyun.com (out30-118.freemail.mail.aliyun.com [115.124.30.118]) (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 6847730DEA6 for ; Tue, 17 Mar 2026 06:45:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=115.124.30.118 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773729913; cv=none; b=L0M4Frgkk4EYiLQFfytJYr9Tu+zd8kmIPLz6KD5Aii/BbWDbRvRQD3V+qgjkY7RUOjHl3N3lEsT+0Dtd03HiI95vJD4eM5/l5A41K/hJppGV6LgFF+b7S3IdsEvS2TTJ9TdJy+3uoa4yIy2Xju7gLQ25nDq1a59E1FGeeZ3woPQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773729913; c=relaxed/simple; bh=8ghl4Tyasnsz0ekbvIT4f5knJlPJmBDwa+JdA1ozBxQ=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=qPJ6VfJ7rVjMWV1bE4SVPPfU7n/2XqpsFi5Gs0+l+YLDxLgToAi6IIQCx1B0prOXNgxYqmb01cIt0impIM1cPWysb0N2y76pEZQlaD8XCBjRIBtu2fXK8kMLnkS0F7WrYLxy4FdW183D+m576mWgORqfpsJhzGOdxzofqGMFebw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com; spf=pass smtp.mailfrom=linux.alibaba.com; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b=NodgPK+6; arc=none smtp.client-ip=115.124.30.118 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b="NodgPK+6" DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1773729909; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; bh=d9m8AenGNBSpK6f9o8GrCon857vC2vFuEB2dcmCEqmU=; b=NodgPK+6dMbsoNxKCOUFABB5sTnX/b91O4OB0qArN11uTlAl/bU7IXw2m2OH0Cz1YYXvuSwT0Q36PXu4OKZ2WJ1n004RV+/mGSlDRbS6XW2W3Zzd+C0j12V0f5nOGpF/VzpzExUl003vx4UMQQyd8ktXORCLXZO1mihya3Hrydw= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R131e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=maildocker-contentspam011083073210;MF=ying.huang@linux.alibaba.com;NM=1;PH=DS;RN=33;SR=0;TI=SMTPD_---0X.9ya0W_1773729894; Received: from DESKTOP-5N7EMDA(mailfrom:ying.huang@linux.alibaba.com fp:SMTPD_---0X.9ya0W_1773729894 cluster:ay36) by smtp.aliyun-inc.com; Tue, 17 Mar 2026 14:45:07 +0800 From: "Huang, Ying" To: "JP Kobryn (Meta)" Cc: "Vlastimil Babka (SUSE)" , linux-mm@kvack.org, akpm@linux-foundation.org, mhocko@suse.com, apopple@nvidia.com, axelrasmussen@google.com, byungchul@sk.com, cgroups@vger.kernel.org, david@kernel.org, eperezma@redhat.com, gourry@gourry.net, jasowang@redhat.com, hannes@cmpxchg.org, joshua.hahnjy@gmail.com, Liam.Howlett@oracle.com, linux-kernel@vger.kernel.org, lorenzo.stoakes@oracle.com, matthew.brost@intel.com, mst@redhat.com, rppt@kernel.org, muchun.song@linux.dev, zhengqi.arch@bytedance.com, rakie.kim@sk.com, roman.gushchin@linux.dev, shakeel.butt@linux.dev, surenb@google.com, virtualization@lists.linux.dev, weixugc@google.com, xuanzhuo@linux.alibaba.com, yuanchu@google.com, ziy@nvidia.com, kernel-team@meta.com Subject: Re: [PATCH v2] mm/mempolicy: track page allocations per mempolicy In-Reply-To: <0d66401f-9874-4047-971b-632723b0b7ee@linux.dev> (JP Kobryn's message of "Mon, 16 Mar 2026 21:37:01 -0700") References: <20260307045520.247998-1-jp.kobryn@linux.dev> <3a42463b-9ddd-4d64-b64c-6c2e6e4fc75d@kernel.org> <343bbd5b-67a0-46c4-8ec4-69158bf26b3f@linux.dev> <874imkpba1.fsf@DESKTOP-5N7EMDA> <60f71f4c-71d9-4751-8c6b-10179b98bef0@kernel.org> <87sea0o55p.fsf@DESKTOP-5N7EMDA> <0d66401f-9874-4047-971b-632723b0b7ee@linux.dev> Date: Tue, 17 Mar 2026 14:44:59 +0800 Message-ID: <87a4w7x8d0.fsf@DESKTOP-5N7EMDA> User-Agent: Gnus/5.13 (Gnus v5.13) Precedence: bulk X-Mailing-List: virtualization@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=ascii "JP Kobryn (Meta)" writes: > On 3/15/26 7:54 PM, Huang, Ying wrote: >> "JP Kobryn (Meta)" writes: >> >>> On 3/13/26 12:34 AM, Vlastimil Babka (SUSE) wrote: >>>> On 3/13/26 07:14, JP Kobryn (Meta) wrote: >>>>> On 3/12/26 10:07 PM, Huang, Ying wrote: >>>>>> "JP Kobryn (Meta)" writes: >>>>>> >>>>>>> On 3/12/26 6:40 AM, Vlastimil Babka (SUSE) wrote: >>>>>>> >>>>>>> How about I change from per-policy hit/miss/foreign triplets to a single >>>>>>> aggregated policy triplet (i.e. just 3 new counters which account for >>>>>>> all policies)? They would follow the same hit/miss/foreign semantics >>>>>>> already proposed (visible in quoted text above). This would still >>>>>>> provide the otherwise missing signal of whether policy-driven >>>>>>> allocations to a node are intentional or fallback. >>>>>>> >>>>>>> Note that I am also planning on moving the stats off of the memcg so the >>>>>>> 3 new counters will be global per-node in response to similar feedback. >>>>>> >>>>>> Emm, what's the difference between these newly added counters and the >>>>>> existing numa_hit/miss/foreign counters? >>>>> >>>>> The existing counters don't account for node masks in the policies that >>>>> make use of them. An allocation can land on a node in the mask and still >>>>> be considered a miss because it wasn't the preferred node. >>>> That sounds like we could just a new counter e.g. numa_hit_preferred >>>> and >>>> adjust definitions accordingly? Or some other variant that fills the gap? >>> >>> It's an interesting thought. Looking into these existing counters more, >>> the in-kernel direct node allocations, which don't fall under any >>> mempolicy, are also included in these stats. One good example might be >>> include/linux/skbuff.h, where __dev_alloc_pages() calls >>> alloc_pages_node_noprof(NUMA_NO_NODE, ...) which eventually reaches >>> zone_statistics() and increments the stats. >> IIUC, the default memory policy is used here, that is, MPOL_LOCAL. > > I'm not seeing that. zone_statistics() is eventually reached. > alloc_pages_mpol() is not. Yes. The page isn't allocated through alloc_pages_mpol(). For example, if we want to allocate pages for the kernel instead of user space applications. However, IMHO, the equivalent memory policy is MPOL_LOCAL, that is, allocate from local node firstly, then fallback to other nodes. I don't think that alloc_pages_mpol() is so special. --- Best Regards, Huang, Ying