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 9AA50D0BB42 for ; Wed, 23 Oct 2024 22:15:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E89916B0095; Wed, 23 Oct 2024 18:15:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E39716B0099; Wed, 23 Oct 2024 18:15:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D005F6B009B; Wed, 23 Oct 2024 18:15:26 -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 B156C6B0095 for ; Wed, 23 Oct 2024 18:15:26 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 39C89C0D6D for ; Wed, 23 Oct 2024 22:15:07 +0000 (UTC) X-FDA: 82706273916.11.34C0D2E Received: from mail-pg1-f177.google.com (mail-pg1-f177.google.com [209.85.215.177]) by imf06.hostedemail.com (Postfix) with ESMTP id CDE3318000C for ; Wed, 23 Oct 2024 22:15:11 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="clHNl/XA"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of dongjoo.linux.dev@gmail.com designates 209.85.215.177 as permitted sender) smtp.mailfrom=dongjoo.linux.dev@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729721685; a=rsa-sha256; cv=none; b=mihrxjmj8U4ptnKW/78GmTtu5HdnNEyNE6h3m3o0GQ+iwslcg8n4+rTmtbkxctmQ5WphqC x0Pdxqy3eHO4AcjvafXVxl4m6PworFlOTYyD+apwMUd38iG06vToOuKeIZCwpxjQE8ExEo 0i828eMmBiArE/8HTFnpesIFdjl5BMU= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="clHNl/XA"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of dongjoo.linux.dev@gmail.com designates 209.85.215.177 as permitted sender) smtp.mailfrom=dongjoo.linux.dev@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729721685; 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=doAppx4+TadSeVQxVULvvCbAT6vdFA8GhI0qYKsV1fs=; b=Fv+A9TsaKkJct/DHwb9qIPWndPvojMHV0QAGIHo8MewDPmdfEXJ6ZMtEwCJeYWN6QbGmq+ g3UArbS5HTLHPZ9gPvPoxHTEFgM0d3hT1CyWMqaEEgJ/7RXyeSrzNNLNLh3X7r+HY6CjCu DJ8Wy3iskqDkh7CWrSuOBFV2lVbnSy4= Received: by mail-pg1-f177.google.com with SMTP id 41be03b00d2f7-7ed9f1bcb6bso167255a12.1 for ; Wed, 23 Oct 2024 15:15:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729721723; x=1730326523; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=doAppx4+TadSeVQxVULvvCbAT6vdFA8GhI0qYKsV1fs=; b=clHNl/XA03VmGqh2WWD2jE/0YOvjuhRVOa0zs0Lj6KOKGzWqe+7X915ujp/lOo8rrM 80f482nTJPhHf7PRbd851vP47Z26Fsd93Rw9wFJxhnoLYES5e3OVHYHCcbnTGR31Wbgu bR9MuV4UOXJtNu44Nsfsms250GY6B4RJTFpDDTzSftpOWAfxJ7/0C/4oalBLiBHso3L2 jd7kGE/sqowEmMyLBiONpdzp6ACkP0aJ1j2bhjW7H3P5/Iw+gzriSR96eqTD95CR1LIE dN1rVrPB4J4bFe95dWBNIKXAeOEVwviUwiH3cj9TICpD6lrES2ux3ZBhmNinqf7nx7Xb /l9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729721723; x=1730326523; 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=doAppx4+TadSeVQxVULvvCbAT6vdFA8GhI0qYKsV1fs=; b=ETb5xFdUZ0trYOtERe9GklOXjgEEnuBosy5N3Q7HVWNR2HflWFlshJWIyGpXOY48rJ 0T4jUjv+hByjkW3qBLLbbu6Ar6K00vYFL7vjcDwA64jF8TLWE9O8WAAbsF9gzp6vS0pZ 2Tqve9BJkYCszvaHjmO3NsOLUE+xnKcoHskJINMl23arF+u6/txJ+ElG8lcI48V0uxYQ u7dCiZ3F+CK5AJKAYTJGzro7+EwcOPl/uKeVzDlGDruDBpILYPj5c2Bq5UlBoPpDJpyp icTI7M+bpz6O3stBCBp7Jevh1JfSr8VeGU5O0g5iLJCcMu4kZFXyk63iCmL5andR4tQf N1yg== X-Forwarded-Encrypted: i=1; AJvYcCWLWzD7atSIPM3Xc67ZyYoHqGFD/N5dEteb1+hCWNUNa6/Jwtgg5goyhpnQVgvGad2I22zng30Upg==@kvack.org X-Gm-Message-State: AOJu0YzRFW6+PymdNtd/qE+9VfqjPqs7UHN9z0LjNQBFnVR7q4NzN9ww IC+dLkyeDWmj9no/QQd0nduIYYWA+7bjoHT89HG5U2VT8/LGg4CM X-Google-Smtp-Source: AGHT+IHDdJDwHzZGwwclE9qtVpWU9B9cO5pJh5TqEvqZ2h8Gj0qv3PQn+OgJnpIfkt3V+B7Y1+25YQ== X-Received: by 2002:a05:6a20:e607:b0:1d8:d6b6:94c6 with SMTP id adf61e73a8af0-1d978ad656fmr4371224637.2.1729721722925; Wed, 23 Oct 2024 15:15:22 -0700 (PDT) Received: from eqbm-smc020.dtc.local ([149.97.161.244]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-71ec13d74cbsm6854452b3a.138.2024.10.23.15.15.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Oct 2024 15:15:22 -0700 (PDT) Date: Wed, 23 Oct 2024 15:15:20 -0700 From: Dongjoo Seo To: Michal Hocko Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, dave@stgolabs.net, dan.j.williams@intel.com, nifan@outlook.com, a.manzanares@samsung.com Subject: Re: [PATCH] mm/page_alloc: fix NUMA stats update for cpu-less nodes Message-ID: References: <20241023175037.9125-1-dongjoo.linux.dev@gmail.com> <20241023134121.68d4af59e2d9cc3e78a34cc8@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Stat-Signature: nh114xy6s1mauxwdqwyws8cuphun5w7m X-Rspamd-Queue-Id: CDE3318000C X-Rspamd-Server: rspam02 X-HE-Tag: 1729721711-728366 X-HE-Meta: U2FsdGVkX1/v1XU4eUg1zQo58kWOBIxwonfh/CfLLoSNd8s5oK7v30T3Z2OBno9nYKswR7fil/TfKN+w327+UvBTRwjHchPN30hcBS3iQic0K3CxdZHrwCU5Yh7TbMOj1tcQU9NX79wiPZ5hsEtdWItZDHArepsKBrkG8401nSXRl5MZCKqK562b4GqgHBhC0UjLqZgIOlkSuE5ilTrsgFgK0gW1vpNOpwpY+QC9B+H3LOvvf/nDsOsZwf/c2tFm1+If7ST/twq/vKchGreq8Nskvvv8mH7tp5vDqMWzsGUihWKfU/Kxkm0NBFeRTyyu2jewsG8x819upHCLF+tdDa7HhYtd6A58nQG+F6ZpQFj+KFhgPF3jjmKioi8lTjn02N8lxLF5axvwG1PLDSoz+S3ExE9/jN4jZruXYoh4pGUOr6SWuMbc9cyPv1ISk7Gf84LOY5Icql4N/lNy/k9j6mgwCXGrZLXgIfCSVgfpb5LApWvwu9eG6wAiL0Ex2VolyzZbHPLyFcLFdHTtLxgPaaNDfqAbNwx2Vu4cUTwkzTU7JCjdKFebr/PuftAu1JbMLgQOWF6GgIlIXwvp7tVowCxV7C9rxdxRdb417/tr0zoOlmtVMf9UmZjgrrLZafSuHGqudx6vwqwblSsoEdEHZk49UZopxWzGSfLVJXIv8GKDxSMXI9eprKCUNKUuPS6EDnTiWrCjIZtNHinppxhCCg06Ybp8QPj5uKIyo9EvHaTFi88uOXDDl7Ws11S8bEnl3ekGHIgzWh6/2oaAmpT60NvpJofpAa5/dWHQavhxDDTZg2wdfaQkb0fMfXrmgTO1IblXk/94yw8M3qq9wp/aCiJXLXyxkvIw7QqShY27wDgMqSrciSuzbZSmjB+d9jl2VeHENg9xEYrpYfqdIXg9jCNdgHHwxE8w+gp6SMBRKsFjwu8kVP7UAcKe8JBSVXq8KI78v0gfO96/CPOuOOK fVg2QKMQ VybivzBg/wwFZOTdJ9fKD/d6hpGDqqJOuGSxlLdzpTuoFrLNWlkE9zgmRAn4sFGu3g1oiPYyeUFlYQeK8iEdQXo976evyTnlOYS/HbUEX57XjKghtngUGrUIWCZVRxCQ2X5bMxy/q3Rg6FoZbPaAye60veaQMoIYeikzoRTf2M0yqINL8WhOZlJuhEOa7E1f70WPCFQcLPm+YDoO5JWO3WktC6XN4TCoBz2r/taasLLrVW9SrOmouXoBNCdQyji2puQ7TvFistnw5aAVueym9mKWiISqb0eEY+QEOanLuTdNJ6cKY2rzQTl/WFv1sfq3VI4qFRcGSEI14RIZFK2ihHtCq+NsxIPfVN5iB/eHrqrhthGYNlz1EtGRW38rAEi8WVQwgKbI5vqpR2EL2dgedxlqdPELiVu+sBS9niKJCbApp/VVQi3Dw6s0YwRaCYRI5VwRAPMqRZeOPxWNRzSlAiN8U4SKD/y9PbGJeWx0NSQmnoV22Fo8Whs8Fhg== 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: Hi Andrew, Michal, Thanks for the feedback. The issue is that CPU-less nodes can lead to incorrect NUMA stats. For example, NUMA_HIT may incorrectly increase for CPU-less nodes because the current logic doesn't account for whether a node has CPUs. Key changes: local_stat: CPU-less nodes can't be "local," so allocations are counted as NUMA_OTHER. preferred_zone: If the preferred zone is CPU-less, NUMA_HIT and NUMA_FOREIGN are not updated since no CPU runs there. This ensures more accurate stats, especially for cases like dev_dax and cpuset. Hope that clarifies things. Thanks, Dongjoo On Wed, Oct 23, 2024 at 11:38:40PM +0200, Michal Hocko wrote: > On Wed 23-10-24 13:41:21, Andrew Morton wrote: > > On Wed, 23 Oct 2024 20:03:24 +0200 Michal Hocko wrote: > > > > > On Wed 23-10-24 10:50:37, Dongjoo Seo wrote: > > > > This patch corrects this issue by: > > > > > > What is this issue? Please describe the problem first, > > > > Actually, relocating the author's second-last paragraph to > > top-of-changelog produced a decent result ;) > > > > > ideally describe > > > the NUMA topology, workload and what kind of misaccounting happens > > > (expected values vs. really reported values). > > > > I think the changelog covered this adequately? > > > > So with these changelog alterations I've queued this for 6.12-rcX with > > a cc:stable. As far as I can tell this has been there since 2018. > > > > : In the case of memoryless node, when a process prefers a node with no > > : memory(e.g., because it is running on a CPU local to that node), the > > : kernel treats a nearby node with memory as the preferred node. As a > > : result, such allocations do not increment the numa_foreign counter on the > > : memoryless node, leading to skewed NUMA_HIT, NUMA_MISS, and NUMA_FOREIGN > > : stats for the nearest node. > > I am sorry but I still do not underastand that. Especially when I do > look at the patch which would like to treat cpuless nodes specially. > Let me be more specific. Why ... > > > - if (zone_to_nid(z) != numa_node_id()) > > + if (zone_to_nid(z) != numa_node_id() || z_is_cpuless) > > local_stat = NUMA_OTHER; > > > > - if (zone_to_nid(z) == zone_to_nid(preferred_zone)) > > + if (zone_to_nid(z) == zone_to_nid(preferred_zone) && !z_is_cpuless) > > __count_numa_events(z, NUMA_HIT, nr_account); > > else { > > __count_numa_events(z, NUMA_MISS, nr_account); > > - __count_numa_events(preferred_zone, NUMA_FOREIGN, nr_account); > > + if (!pref_is_cpuless) > > + __count_numa_events(preferred_zone, NUMA_FOREIGN, nr_account); > > ... a (well?) established meaning of local needs to be changed? Why > prefrerred policy should have a different meaning for cpuless policies? > Those are memory specific rather than cpu specific right? > > Quite some quiestions to have it in linux-next IMHO.... > -- > Michal Hocko > SUSE Labs