2022-01-19 19:07:45

by Bharata B Rao

[permalink] [raw]
Subject: [PATCH] sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa

The older format of /proc/pid/sched printed home node info which
required the mempolicy and task lock around mpol_get(). However
the format has changed since then and there is no need for
sched_show_numa() any more to have mempolicy argument,
asssociated mpol_get/put and task_lock/unlock. Remove them.

Fixes: 397f2378f1361 ("sched/numa: Fix numa balancing stats in /proc/pid/sched")
Signed-off-by: Bharata B Rao <[email protected]>
---
kernel/sched/debug.c | 10 ----------
1 file changed, 10 deletions(-)

diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
index 7dcbaa31c5d9..50e05c8d0d61 100644
--- a/kernel/sched/debug.c
+++ b/kernel/sched/debug.c
@@ -931,25 +931,15 @@ void print_numa_stats(struct seq_file *m, int node, unsigned long tsf,
static void sched_show_numa(struct task_struct *p, struct seq_file *m)
{
#ifdef CONFIG_NUMA_BALANCING
- struct mempolicy *pol;
-
if (p->mm)
P(mm->numa_scan_seq);

- task_lock(p);
- pol = p->mempolicy;
- if (pol && !(pol->flags & MPOL_F_MORON))
- pol = NULL;
- mpol_get(pol);
- task_unlock(p);
-
P(numa_pages_migrated);
P(numa_preferred_nid);
P(total_numa_faults);
SEQ_printf(m, "current_node=%d, numa_group_id=%d\n",
task_node(p), task_numa_group_id(p));
show_numa_stats(p, m);
- mpol_put(pol);
#endif
}

--
2.25.1


2022-01-19 20:11:31

by Srikar Dronamraju

[permalink] [raw]
Subject: Re: [PATCH] sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa

* Bharata B Rao <[email protected]> [2022-01-18 10:35:15]:

> The older format of /proc/pid/sched printed home node info which
> required the mempolicy and task lock around mpol_get(). However
> the format has changed since then and there is no need for
> sched_show_numa() any more to have mempolicy argument,
> asssociated mpol_get/put and task_lock/unlock. Remove them.
>

> Fixes: 397f2378f1361 ("sched/numa: Fix numa balancing stats in /proc/pid/sched")
> Signed-off-by: Bharata B Rao <[email protected]>

Agree. Since pol is now being used, this whole hunk can be removed.

Reviewed-by: Srikar Dronamraju <[email protected]>

> ---
> kernel/sched/debug.c | 10 ----------
> 1 file changed, 10 deletions(-)
>
> diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
> index 7dcbaa31c5d9..50e05c8d0d61 100644
> --- a/kernel/sched/debug.c
> +++ b/kernel/sched/debug.c
> @@ -931,25 +931,15 @@ void print_numa_stats(struct seq_file *m, int node, unsigned long tsf,
> static void sched_show_numa(struct task_struct *p, struct seq_file *m)
> {
> #ifdef CONFIG_NUMA_BALANCING
> - struct mempolicy *pol;
> -
> if (p->mm)
> P(mm->numa_scan_seq);
>
> - task_lock(p);
> - pol = p->mempolicy;
> - if (pol && !(pol->flags & MPOL_F_MORON))
> - pol = NULL;
> - mpol_get(pol);
> - task_unlock(p);
> -
> P(numa_pages_migrated);
> P(numa_preferred_nid);
> P(total_numa_faults);
> SEQ_printf(m, "current_node=%d, numa_group_id=%d\n",
> task_node(p), task_numa_group_id(p));
> show_numa_stats(p, m);
> - mpol_put(pol);
> #endif
> }
>
> --
> 2.25.1
>

--
Thanks and Regards
Srikar Dronamraju

2022-01-20 06:15:08

by Mel Gorman

[permalink] [raw]
Subject: Re: [PATCH] sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa

On Tue, Jan 18, 2022 at 10:35:15AM +0530, Bharata B Rao wrote:
> The older format of /proc/pid/sched printed home node info which
> required the mempolicy and task lock around mpol_get(). However
> the format has changed since then and there is no need for
> sched_show_numa() any more to have mempolicy argument,
> asssociated mpol_get/put and task_lock/unlock. Remove them.
>
> Fixes: 397f2378f1361 ("sched/numa: Fix numa balancing stats in /proc/pid/sched")
> Signed-off-by: Bharata B Rao <[email protected]>

Acked-by: Mel Gorman <[email protected]>

--
Mel Gorman
SUSE Labs

2022-01-20 07:42:06

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH] sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa

On Tue, Jan 18, 2022 at 10:35:15AM +0530, Bharata B Rao wrote:
> The older format of /proc/pid/sched printed home node info which
> required the mempolicy and task lock around mpol_get(). However
> the format has changed since then and there is no need for
> sched_show_numa() any more to have mempolicy argument,
> asssociated mpol_get/put and task_lock/unlock. Remove them.
>
> Fixes: 397f2378f1361 ("sched/numa: Fix numa balancing stats in /proc/pid/sched")
> Signed-off-by: Bharata B Rao <[email protected]>

Thanks!

2022-01-30 10:32:55

by tip-bot2 for Jacob Pan

[permalink] [raw]
Subject: [tip: sched/core] sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa

The following commit has been merged into the sched/core branch of tip:

Commit-ID: 28c988c3ec29db74a1dda631b18785958d57df4f
Gitweb: https://git.kernel.org/tip/28c988c3ec29db74a1dda631b18785958d57df4f
Author: Bharata B Rao <[email protected]>
AuthorDate: Tue, 18 Jan 2022 10:35:15 +05:30
Committer: Peter Zijlstra <[email protected]>
CommitterDate: Thu, 27 Jan 2022 12:57:18 +01:00

sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa

The older format of /proc/pid/sched printed home node info which
required the mempolicy and task lock around mpol_get(). However
the format has changed since then and there is no need for
sched_show_numa() any more to have mempolicy argument,
asssociated mpol_get/put and task_lock/unlock. Remove them.

Fixes: 397f2378f1361 ("sched/numa: Fix numa balancing stats in /proc/pid/sched")
Signed-off-by: Bharata B Rao <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Reviewed-by: Srikar Dronamraju <[email protected]>
Acked-by: Mel Gorman <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
---
kernel/sched/debug.c | 10 ----------
1 file changed, 10 deletions(-)

diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
index aa29211..102d6f7 100644
--- a/kernel/sched/debug.c
+++ b/kernel/sched/debug.c
@@ -931,25 +931,15 @@ void print_numa_stats(struct seq_file *m, int node, unsigned long tsf,
static void sched_show_numa(struct task_struct *p, struct seq_file *m)
{
#ifdef CONFIG_NUMA_BALANCING
- struct mempolicy *pol;
-
if (p->mm)
P(mm->numa_scan_seq);

- task_lock(p);
- pol = p->mempolicy;
- if (pol && !(pol->flags & MPOL_F_MORON))
- pol = NULL;
- mpol_get(pol);
- task_unlock(p);
-
P(numa_pages_migrated);
P(numa_preferred_nid);
P(total_numa_faults);
SEQ_printf(m, "current_node=%d, numa_group_id=%d\n",
task_node(p), task_numa_group_id(p));
show_numa_stats(p, m);
- mpol_put(pol);
#endif
}