linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Michal Hocko <mhocko@suse.com>
Cc: Dongjoo Seo <dongjoo.linux.dev@gmail.com>,
	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
Date: Wed, 23 Oct 2024 13:41:21 -0700	[thread overview]
Message-ID: <20241023134121.68d4af59e2d9cc3e78a34cc8@linux-foundation.org> (raw)
In-Reply-To: <Zxk6bHlrP5S_0LBK@tiehlicka>

On Wed, 23 Oct 2024 20:03:24 +0200 Michal Hocko <mhocko@suse.com> 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.
: 
: This patch corrects this issue by:
: 1. Checking if the zone or preferred zone is CPU-less before updating
:    the NUMA stats.
: 2. Ensuring NUMA_HIT is only updated if the zone is not CPU-less.
: 3. Ensuring NUMA_FOREIGN is only updated if the preferred zone is not
:    CPU-less.
: 
: Example Before and After Patch:
: - Before Patch:
:  node0                   node1           node2
:  numa_hit                86333181       114338269            5108
:  numa_miss                5199455               0        56844591
:  numa_foreign            32281033        29763013               0
:  interleave_hit                91              91               0
:  local_node              86326417       114288458               0
:  other_node               5206219           49768        56849702
: 
: - After Patch:
:                             node0           node1           node2
:  numa_hit                 2523058         9225528               0
:  numa_miss                 150213           10226        21495942
:  numa_foreign            17144215         4501270               0
:  interleave_hit                91              94               0
:  local_node               2493918         9208226               0
:  other_node                179351           27528        21495942
: 
: Similarly, in the context of cpuless nodes, this patch ensures that NUMA
: statistics are accurately updated by adding checks to prevent the
: miscounting of memory allocations when the involved nodes have no CPUs. 
: This ensures more precise tracking of memory access patterns accross all
: nodes, regardless of whether they have CPUs or not, improving the overall
: reliability of NUMA stat.  The reason is that page allocation from
: dev_dax, cpuset, memcg ..  comes with preferred allocating zone in cpuless
: node and its hard to track the zone info for miss information.
: 



  reply	other threads:[~2024-10-23 20:41 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-23 17:50 Dongjoo Seo
2024-10-23 18:03 ` Michal Hocko
2024-10-23 20:41   ` Andrew Morton [this message]
2024-10-23 21:38     ` Michal Hocko
2024-10-23 22:15       ` Dongjoo Seo
2024-10-23 22:23         ` Michal Hocko
2024-10-24  4:54           ` Dongjoo Seo
2024-10-24  8:24             ` Michal Hocko
2024-10-24 18:13               ` Dongjoo Seo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241023134121.68d4af59e2d9cc3e78a34cc8@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=a.manzanares@samsung.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave@stgolabs.net \
    --cc=dongjoo.linux.dev@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.com \
    --cc=nifan@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox