mailweb.openeuler.org
Manage this list

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Kernel

Threads by month
  • ----- 2025 -----
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
kernel@openeuler.org

  • 27 participants
  • 18548 discussions
[PATCH OLK-5.10 0/2] Support node_reclaim_distance adjust
by Hui Tang 19 Dec '23

19 Dec '23
Allow arch to adjust node_reclaim_distance. Hui Tang (2): arm64/numa: Support node_reclaim_distance adjust for arch config: enable COBFIG_ARCH_CUSTOM_NUMA_DISTANCE for arm64 arch/arm64/Kconfig | 13 +++++ arch/arm64/configs/openeuler_defconfig | 2 + arch/arm64/mm/numa.c | 80 ++++++++++++++++++++++++++ 3 files changed, 95 insertions(+) -- 2.34.1
2 3
0 0
[PATCH v3 OLK-5.10 0/1] Revert "mm/mempolicy: don't handle MPOL_LOCA
by Wupeng Ma 18 Dec '23

18 Dec '23
From: Ma Wupeng <mawupeng1(a)huawei.com> Revert to bring MPOL_LOCAL back. changelog since v2: - introduce mpol_rebind_preferred changelog since v1: - bugfix in __mpol_equal Ma Wupeng (1): Revert "mm/mempolicy: don't handle MPOL_LOCAL like a fake MPOL_PREFERRED policy" include/uapi/linux/mempolicy.h | 1 + mm/mempolicy.c | 142 ++++++++++++++++++++------------- 2 files changed, 87 insertions(+), 56 deletions(-) -- 2.25.1
2 2
0 0
[PATCH v2 OLK-5.10 0/1] Revert "mm/mempolicy: don't handle MPOL_LOCA
by Wupeng Ma 18 Dec '23

18 Dec '23
From: Ma Wupeng <mawupeng1(a)huawei.com> Revert to bring MPOL_LOCAL back. changelog since v1: - bugfix in __mpol_equal Ma Wupeng (1): Revert "mm/mempolicy: don't handle MPOL_LOCAL like a fake MPOL_PREFERRED policy" include/uapi/linux/mempolicy.h | 1 + mm/mempolicy.c | 138 +++++++++++++++++++-------------- 2 files changed, 81 insertions(+), 58 deletions(-) -- 2.25.1
2 2
0 0
[PATCH v2 OLK-5.10 0/1] Revert "mm/mempolicy: don't handle MPOL_LOCA
by Wupeng Ma 18 Dec '23

18 Dec '23
From: Ma Wupeng <mawupeng1(a)huawei.com> Revert to bring MPOL_LOCAL back. changelog since v1: - bugfix in __mpol_equal Ma Wupeng (1): Revert "mm/mempolicy: don't handle MPOL_LOCAL like a fake MPOL_PREFERRED policy" include/uapi/linux/mempolicy.h | 1 + mm/mempolicy.c | 138 +++++++++++++++++++-------------- 2 files changed, 81 insertions(+), 58 deletions(-) -- 2.25.1
2 4
0 0
[PATCH OLK-5.10 0/1] Revert "mm/mempolicy: don't handle MPOL_LOCA
by Wupeng Ma 18 Dec '23

18 Dec '23
From: Ma Wupeng <mawupeng1(a)huawei.com> Revert to bring MPOL_LOCAL back. Ma Wupeng (1): Revert "mm/mempolicy: don't handle MPOL_LOCAL like a fake MPOL_PREFERRED policy" include/uapi/linux/mempolicy.h | 1 + mm/mempolicy.c | 134 +++++++++++++++++++-------------- 2 files changed, 80 insertions(+), 55 deletions(-) -- 2.25.1
2 2
0 0
[PATCH OLK-6.6 0/3] xfs: fix attr inactive problems
by Long Li 18 Dec '23

18 Dec '23
This patch set fix two attr inactive problems: Guo Xuenan (1): xfs: force shutdown xfs when xfs_attr_inactive fails Zhang Yi (2): xfs: factor out __xfs_da3_node_read() xfs: atomic drop extent entries when inactiving attr fs/xfs/libxfs/xfs_da_btree.c | 5 +-- fs/xfs/libxfs/xfs_da_btree.h | 15 ++++++-- fs/xfs/xfs_attr_inactive.c | 66 ++++++++++++++++++++++++++---------- 3 files changed, 65 insertions(+), 21 deletions(-) -- 2.31.1
2 4
0 0
[PATCH OLK-5.10] sched: Support custom numa distance for schedluler
by Hui Tang 18 Dec '23

18 Dec '23
hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I8PG0C CVE: NA -------------------------------- Support arch redefine far numa distance, which affects the initialization of sched domain, such as SD_WAKE_AFFINE. Signed-off-by: Hui Tang <tanghui20(a)huawei.com> --- arch/arm64/Kconfig | 5 +++++ arch/arm64/include/asm/numa.h | 1 + arch/arm64/mm/numa.c | 40 +++++++++++++++++++++++++++++++++++ kernel/sched/topology.c | 9 +++++++- 4 files changed, 54 insertions(+), 1 deletion(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index c5eca65c27fc..88d9862aa139 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -2102,6 +2102,11 @@ config STACKPROTECTOR_PER_TASK def_bool y depends on STACKPROTECTOR && CC_HAVE_STACKPROTECTOR_SYSREG +config ARCH_CUSTOM_NUMA_DISTANCE + bool "Support custom far numa distance" + depends on ARCH_HISI + default n + menuconfig ASCEND_FEATURES bool "Support Ascend Features" depends on ARM64 diff --git a/arch/arm64/include/asm/numa.h b/arch/arm64/include/asm/numa.h index 43bfff72a32f..3af06fa3e969 100644 --- a/arch/arm64/include/asm/numa.h +++ b/arch/arm64/include/asm/numa.h @@ -43,6 +43,7 @@ void __init early_map_cpu_to_node(unsigned int cpu, int nid); void numa_store_cpu_info(unsigned int cpu); void numa_add_cpu(unsigned int cpu); void numa_remove_cpu(unsigned int cpu); +bool arch_numa_distance_is_far(int distance, int numa_levels); #else /* CONFIG_NUMA */ diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c index 480fcfb1b917..871394038ae0 100644 --- a/arch/arm64/mm/numa.c +++ b/arch/arm64/mm/numa.c @@ -619,6 +619,46 @@ static int __init dummy_numa_init(void) return 0; } +#ifdef CONFIG_ARCH_CUSTOM_NUMA_DISTANCE +static int arch_custom_numa_distance_flag = 1; +static int __init arch_custom_numa_distance_flag_setup(char *str) +{ + int val; + + if (kstrtoint(str, 0, &val)) + pr_warn("Unable to set arch_custom_numa_distance\n"); + + if (val != 0 || val != 1) + return 1; + + arch_custom_numa_distance_flag = val; + return 1; +} +early_param("arch_custom_numa_distance_flag=", arch_custom_numa_distance_flag_setup); + +bool arch_numa_distance_is_far(int distance, int numa_levels) +{ + unsigned int model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; + int far_numa_distance = node_reclaim_distance; + + if (arch_custom_numa_distance_flag == 0) + return distance > node_reclaim_distance; + + switch (model) { + case MIDR_HISI_TSV200: + if (nr_node_ids != 4 || numa_levels <= 3) + break; + + far_numa_distance = 40; + break; + default: + break; + } + + return distance > far_numa_distance; +} +#endif + /** * arm64_numa_init() - Initialize NUMA * diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index e7413d6dd75b..e0fd4e68616c 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -1529,6 +1529,12 @@ int sched_max_numa_distance; static int *sched_domains_numa_distance; static struct cpumask ***sched_domains_numa_masks; int __read_mostly node_reclaim_distance = RECLAIM_DISTANCE; + +#ifndef CONFIG_ARCH_CUSTOM_NUMA_DISTANCE +bool arch_numa_distance_is_far(int distance, int numa_levels) { + return distance > node_reclaim_distance; +} +#endif #endif /* @@ -1640,7 +1646,8 @@ sd_init(struct sched_domain_topology_level *tl, sd->flags &= ~SD_PREFER_SIBLING; sd->flags |= SD_SERIALIZE; - if (sched_domains_numa_distance[tl->numa_level] > node_reclaim_distance) { + if (arch_numa_distance_is_far(tl->numa_level, + sched_domains_numa_levels)) { sd->flags &= ~(SD_BALANCE_EXEC | SD_BALANCE_FORK | SD_WAKE_AFFINE); -- 2.34.1
2 1
0 0
[PATCH] sched: Support custom numa distance for schedluler
by Hui Tang 18 Dec '23

18 Dec '23
hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I8PG0C CVE: NA -------------------------------- Support arch redefine far numa distance, which affects the initialization of sched domain, such as SD_WAKE_AFFINE. Signed-off-by: Hui Tang <tanghui20(a)huawei.com> --- arch/arm64/Kconfig | 5 +++++ arch/arm64/include/asm/numa.h | 1 + arch/arm64/mm/numa.c | 40 +++++++++++++++++++++++++++++++++++ kernel/sched/topology.c | 9 +++++++- 4 files changed, 54 insertions(+), 1 deletion(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index c5eca65c27fc..88d9862aa139 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -2102,6 +2102,11 @@ config STACKPROTECTOR_PER_TASK def_bool y depends on STACKPROTECTOR && CC_HAVE_STACKPROTECTOR_SYSREG +config ARCH_CUSTOM_NUMA_DISTANCE + bool "Support custom far numa distance" + depends on ARCH_HISI + default n + menuconfig ASCEND_FEATURES bool "Support Ascend Features" depends on ARM64 diff --git a/arch/arm64/include/asm/numa.h b/arch/arm64/include/asm/numa.h index 43bfff72a32f..3af06fa3e969 100644 --- a/arch/arm64/include/asm/numa.h +++ b/arch/arm64/include/asm/numa.h @@ -43,6 +43,7 @@ void __init early_map_cpu_to_node(unsigned int cpu, int nid); void numa_store_cpu_info(unsigned int cpu); void numa_add_cpu(unsigned int cpu); void numa_remove_cpu(unsigned int cpu); +bool arch_numa_distance_is_far(int distance, int numa_levels); #else /* CONFIG_NUMA */ diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c index 480fcfb1b917..871394038ae0 100644 --- a/arch/arm64/mm/numa.c +++ b/arch/arm64/mm/numa.c @@ -619,6 +619,46 @@ static int __init dummy_numa_init(void) return 0; } +#ifdef CONFIG_ARCH_CUSTOM_NUMA_DISTANCE +static int arch_custom_numa_distance_flag = 1; +static int __init arch_custom_numa_distance_flag_setup(char *str) +{ + int val; + + if (kstrtoint(str, 0, &val)) + pr_warn("Unable to set arch_custom_numa_distance\n"); + + if (val != 0 || val != 1) + return 1; + + arch_custom_numa_distance_flag = val; + return 1; +} +early_param("arch_custom_numa_distance_flag=", arch_custom_numa_distance_flag_setup); + +bool arch_numa_distance_is_far(int distance, int numa_levels) +{ + unsigned int model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; + int far_numa_distance = node_reclaim_distance; + + if (arch_custom_numa_distance_flag == 0) + return distance > node_reclaim_distance; + + switch (model) { + case MIDR_HISI_TSV200: + if (nr_node_ids != 4 || numa_levels <= 3) + break; + + far_numa_distance = 40; + break; + default: + break; + } + + return distance > far_numa_distance; +} +#endif + /** * arm64_numa_init() - Initialize NUMA * diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index e7413d6dd75b..e0fd4e68616c 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -1529,6 +1529,12 @@ int sched_max_numa_distance; static int *sched_domains_numa_distance; static struct cpumask ***sched_domains_numa_masks; int __read_mostly node_reclaim_distance = RECLAIM_DISTANCE; + +#ifndef CONFIG_ARCH_CUSTOM_NUMA_DISTANCE +bool arch_numa_distance_is_far(int distance, int numa_levels) { + return distance > node_reclaim_distance; +} +#endif #endif /* @@ -1640,7 +1646,8 @@ sd_init(struct sched_domain_topology_level *tl, sd->flags &= ~SD_PREFER_SIBLING; sd->flags |= SD_SERIALIZE; - if (sched_domains_numa_distance[tl->numa_level] > node_reclaim_distance) { + if (arch_numa_distance_is_far(tl->numa_level, + sched_domains_numa_levels)) { sd->flags &= ~(SD_BALANCE_EXEC | SD_BALANCE_FORK | SD_WAKE_AFFINE); -- 2.34.1
1 0
0 0
[PATCH OLK-5.10] sched: Support custom numa distance for schedluler
by Hui Tang 18 Dec '23

18 Dec '23
hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I8PG0C CVE: NA -------------------------------- Support arch redefine far numa distance, which affects the initialization of sched domain, such as SD_WAKE_AFFINE. Signed-off-by: Hui Tang <tanghui20(a)huawei.com> --- arch/arm64/Kconfig | 5 +++++ arch/arm64/include/asm/numa.h | 1 + arch/arm64/mm/numa.c | 40 +++++++++++++++++++++++++++++++++++ kernel/sched/topology.c | 9 +++++++- 4 files changed, 54 insertions(+), 1 deletion(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index c5eca65c27fc..88d9862aa139 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -2102,6 +2102,11 @@ config STACKPROTECTOR_PER_TASK def_bool y depends on STACKPROTECTOR && CC_HAVE_STACKPROTECTOR_SYSREG +config ARCH_CUSTOM_NUMA_DISTANCE + bool "Support custom far numa distance" + depends on ARCH_HISI + default n + menuconfig ASCEND_FEATURES bool "Support Ascend Features" depends on ARM64 diff --git a/arch/arm64/include/asm/numa.h b/arch/arm64/include/asm/numa.h index 43bfff72a32f..3af06fa3e969 100644 --- a/arch/arm64/include/asm/numa.h +++ b/arch/arm64/include/asm/numa.h @@ -43,6 +43,7 @@ void __init early_map_cpu_to_node(unsigned int cpu, int nid); void numa_store_cpu_info(unsigned int cpu); void numa_add_cpu(unsigned int cpu); void numa_remove_cpu(unsigned int cpu); +bool arch_numa_distance_is_far(int distance, int numa_levels); #else /* CONFIG_NUMA */ diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c index 480fcfb1b917..871394038ae0 100644 --- a/arch/arm64/mm/numa.c +++ b/arch/arm64/mm/numa.c @@ -619,6 +619,46 @@ static int __init dummy_numa_init(void) return 0; } +#ifdef CONFIG_ARCH_CUSTOM_NUMA_DISTANCE +static int arch_custom_numa_distance_flag = 1; +static int __init arch_custom_numa_distance_flag_setup(char *str) +{ + int val; + + if (kstrtoint(str, 0, &val)) + pr_warn("Unable to set arch_custom_numa_distance\n"); + + if (val != 0 || val != 1) + return 1; + + arch_custom_numa_distance_flag = val; + return 1; +} +early_param("arch_custom_numa_distance_flag=", arch_custom_numa_distance_flag_setup); + +bool arch_numa_distance_is_far(int distance, int numa_levels) +{ + unsigned int model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; + int far_numa_distance = node_reclaim_distance; + + if (arch_custom_numa_distance_flag == 0) + return distance > node_reclaim_distance; + + switch (model) { + case MIDR_HISI_TSV200: + if (nr_node_ids != 4 || numa_levels <= 3) + break; + + far_numa_distance = 40; + break; + default: + break; + } + + return distance > far_numa_distance; +} +#endif + /** * arm64_numa_init() - Initialize NUMA * diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index e7413d6dd75b..fb6f20956ee7 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -1529,6 +1529,12 @@ int sched_max_numa_distance; static int *sched_domains_numa_distance; static struct cpumask ***sched_domains_numa_masks; int __read_mostly node_reclaim_distance = RECLAIM_DISTANCE; + +#ifdef CONFIG_ARCH_CUSTOM_NUMA_DISTANCE +static inline bool arch_numa_distance_is_far(int distance, int numa_levels) { + return distance > node_reclaim_distance; +} +#endif #endif /* @@ -1640,7 +1646,8 @@ sd_init(struct sched_domain_topology_level *tl, sd->flags &= ~SD_PREFER_SIBLING; sd->flags |= SD_SERIALIZE; - if (sched_domains_numa_distance[tl->numa_level] > node_reclaim_distance) { + if (arch_numa_distance_is_far(tl->numa_level, + sched_domains_numa_levels)) { sd->flags &= ~(SD_BALANCE_EXEC | SD_BALANCE_FORK | SD_WAKE_AFFINE); -- 2.34.1
2 1
0 0
[PATCH] sched: Support custom numa distance for schedluler
by Hui Tang 18 Dec '23

18 Dec '23
hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I8PG0C CVE: NA -------------------------------- Support arch redefine far numa distance, which affects the initialization of sched domain, such as SD_WAKE_AFFINE. Signed-off-by: Hui Tang <tanghui20(a)huawei.com> --- arch/arm64/Kconfig | 5 +++++ arch/arm64/include/asm/numa.h | 1 + arch/arm64/mm/numa.c | 40 +++++++++++++++++++++++++++++++++++ kernel/sched/topology.c | 9 +++++++- 4 files changed, 54 insertions(+), 1 deletion(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index c5eca65c27fc..88d9862aa139 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -2102,6 +2102,11 @@ config STACKPROTECTOR_PER_TASK def_bool y depends on STACKPROTECTOR && CC_HAVE_STACKPROTECTOR_SYSREG +config ARCH_CUSTOM_NUMA_DISTANCE + bool "Support custom far numa distance" + depends on ARCH_HISI + default n + menuconfig ASCEND_FEATURES bool "Support Ascend Features" depends on ARM64 diff --git a/arch/arm64/include/asm/numa.h b/arch/arm64/include/asm/numa.h index 43bfff72a32f..3af06fa3e969 100644 --- a/arch/arm64/include/asm/numa.h +++ b/arch/arm64/include/asm/numa.h @@ -43,6 +43,7 @@ void __init early_map_cpu_to_node(unsigned int cpu, int nid); void numa_store_cpu_info(unsigned int cpu); void numa_add_cpu(unsigned int cpu); void numa_remove_cpu(unsigned int cpu); +bool arch_numa_distance_is_far(int distance, int numa_levels); #else /* CONFIG_NUMA */ diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c index 480fcfb1b917..871394038ae0 100644 --- a/arch/arm64/mm/numa.c +++ b/arch/arm64/mm/numa.c @@ -619,6 +619,46 @@ static int __init dummy_numa_init(void) return 0; } +#ifdef CONFIG_ARCH_CUSTOM_NUMA_DISTANCE +static int arch_custom_numa_distance_flag = 1; +static int __init arch_custom_numa_distance_flag_setup(char *str) +{ + int val; + + if (kstrtoint(str, 0, &val)) + pr_warn("Unable to set arch_custom_numa_distance\n"); + + if (val != 0 || val != 1) + return 1; + + arch_custom_numa_distance_flag = val; + return 1; +} +early_param("arch_custom_numa_distance_flag=", arch_custom_numa_distance_flag_setup); + +bool arch_numa_distance_is_far(int distance, int numa_levels) +{ + unsigned int model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; + int far_numa_distance = node_reclaim_distance; + + if (arch_custom_numa_distance_flag == 0) + return distance > node_reclaim_distance; + + switch (model) { + case MIDR_HISI_TSV200: + if (nr_node_ids != 4 || numa_levels <= 3) + break; + + far_numa_distance = 40; + break; + default: + break; + } + + return distance > far_numa_distance; +} +#endif + /** * arm64_numa_init() - Initialize NUMA * diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index e7413d6dd75b..fb6f20956ee7 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -1529,6 +1529,12 @@ int sched_max_numa_distance; static int *sched_domains_numa_distance; static struct cpumask ***sched_domains_numa_masks; int __read_mostly node_reclaim_distance = RECLAIM_DISTANCE; + +#ifdef CONFIG_ARCH_CUSTOM_NUMA_DISTANCE +static inline bool arch_numa_distance_is_far(int distance, int numa_levels) { + return distance > node_reclaim_distance; +} +#endif #endif /* @@ -1640,7 +1646,8 @@ sd_init(struct sched_domain_topology_level *tl, sd->flags &= ~SD_PREFER_SIBLING; sd->flags |= SD_SERIALIZE; - if (sched_domains_numa_distance[tl->numa_level] > node_reclaim_distance) { + if (arch_numa_distance_is_far(tl->numa_level, + sched_domains_numa_levels)) { sd->flags &= ~(SD_BALANCE_EXEC | SD_BALANCE_FORK | SD_WAKE_AFFINE); -- 2.34.1
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 1386
  • 1387
  • 1388
  • 1389
  • 1390
  • 1391
  • 1392
  • ...
  • 1855
  • Older →

HyperKitty Powered by HyperKitty