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
- 51 participants
- 18726 discussions
From: Konstantin Ovsepian <ovs(a)ovs.to>
stable inclusion
from stable-v6.6.55
commit 1ab2cfe19700fb3dde4c7dfec392acff34db3120
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAYRCW
CVE: CVE-2024-49933
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 9bce8005ec0dcb23a58300e8522fe4a31da606fa ]
Recently running UBSAN caught few out of bound shifts in the
ioc_forgive_debts() function:
UBSAN: shift-out-of-bounds in block/blk-iocost.c:2142:38
shift exponent 80 is too large for 64-bit type 'u64' (aka 'unsigned long
long')
...
UBSAN: shift-out-of-bounds in block/blk-iocost.c:2144:30
shift exponent 80 is too large for 64-bit type 'u64' (aka 'unsigned long
long')
...
Call Trace:
<IRQ>
dump_stack_lvl+0xca/0x130
__ubsan_handle_shift_out_of_bounds+0x22c/0x280
? __lock_acquire+0x6441/0x7c10
ioc_timer_fn+0x6cec/0x7750
? blk_iocost_init+0x720/0x720
? call_timer_fn+0x5d/0x470
call_timer_fn+0xfa/0x470
? blk_iocost_init+0x720/0x720
__run_timer_base+0x519/0x700
...
Actual impact of this issue was not identified but I propose to fix the
undefined behaviour.
The proposed fix to prevent those out of bound shifts consist of
precalculating exponent before using it the shift operations by taking
min value from the actual exponent and maximum possible number of bits.
Reported-by: Breno Leitao <leitao(a)debian.org>
Signed-off-by: Konstantin Ovsepian <ovs(a)ovs.to>
Acked-by: Tejun Heo <tj(a)kernel.org>
Link: https://lore.kernel.org/r/20240822154137.2627818-1-ovs@ovs.to
Signed-off-by: Jens Axboe <axboe(a)kernel.dk>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Zheng Qixing <zhengqixing(a)huawei.com>
---
block/blk-iocost.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/block/blk-iocost.c b/block/blk-iocost.c
index 3ac79f0c098f..3a5ba10ba2b1 100644
--- a/block/blk-iocost.c
+++ b/block/blk-iocost.c
@@ -2076,7 +2076,7 @@ static void ioc_forgive_debts(struct ioc *ioc, u64 usage_us_sum, int nr_debtors,
struct ioc_now *now)
{
struct ioc_gq *iocg;
- u64 dur, usage_pct, nr_cycles;
+ u64 dur, usage_pct, nr_cycles, nr_cycles_shift;
/* if no debtor, reset the cycle */
if (!nr_debtors) {
@@ -2138,10 +2138,12 @@ static void ioc_forgive_debts(struct ioc *ioc, u64 usage_us_sum, int nr_debtors,
old_debt = iocg->abs_vdebt;
old_delay = iocg->delay;
+ nr_cycles_shift = min_t(u64, nr_cycles, BITS_PER_LONG - 1);
if (iocg->abs_vdebt)
- iocg->abs_vdebt = iocg->abs_vdebt >> nr_cycles ?: 1;
+ iocg->abs_vdebt = iocg->abs_vdebt >> nr_cycles_shift ?: 1;
+
if (iocg->delay)
- iocg->delay = iocg->delay >> nr_cycles ?: 1;
+ iocg->delay = iocg->delay >> nr_cycles_shift ?: 1;
iocg_kick_waitq(iocg, true, now);
--
2.39.2
2
1

[openeuler:OLK-6.6] BUILD REGRESSION 27e5d43e49e85d816bd05ffe8672ceea631a07e4
by kernel test robot 29 Oct '24
by kernel test robot 29 Oct '24
29 Oct '24
tree/branch: https://gitee.com/openeuler/kernel.git OLK-6.6
branch HEAD: 27e5d43e49e85d816bd05ffe8672ceea631a07e4 !12462 drm/amd/display: Fix index out of bounds in DCN30 degamma hardware format translation
Error/Warning (recently discovered and may have been fixed):
https://lore.kernel.org/oe-kbuild-all/202410290303.9DGdQJBL-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202410290508.V6mqgsUO-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202410290516.SciOffDt-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202410290657.8iWV8CTG-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202410290700.Xq3inTZy-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202410290739.pk9x3tTN-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202410290851.Q4YycFaU-lkp@intel.com
arch/arm64/kvm/virtcca_cvm.c:954:5: warning: no previous prototype for function 'kvm_cvm_create_dev_ttt_levels' [-Wmissing-prototypes]
drivers/char/ipmi/ipmi_bt_sm.c:194:11: error: call to undeclared function 'acpi_evaluate_integer'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
drivers/crypto/ccp/hygon/tdm-dev.c:340:84: error: invalid use of undefined type 'struct module'
drivers/net/ethernet/mucse/rnp/rnp_main.c:7056:17: warning: unused variable 'hw' [-Wunused-variable]
drivers/net/ethernet/mucse/rnp/rnp_sriov.c:396:6: warning: variable 'err' set but not used [-Wunused-but-set-variable]
drivers/net/ethernet/mucse/rnp/rnp_sriov.c:411:2: warning: non-void function does not return a value [-Wreturn-type]
drivers/net/ethernet/mucse/rnp/rnp_sriov.c:413:2: error: expected identifier or '('
drivers/net/ethernet/mucse/rnp/rnp_sriov.c:414:1: error: extraneous closing brace ('}')
include/linux/compiler-gcc.h:132:33: warning: 'alias' attribute ignored [-Wattributes]
include/linux/syscalls.h:247:28: error: invalid storage class for function '__do_sys_membarrier'
include/linux/syscalls.h:249:25: error: static declaration of '__se_sys_membarrier' follows non-static declaration
include/linux/syscalls.h:249:25: warning: '__se_sys_membarrier' defined but not used [-Wunused-function]
include/linux/syscalls.h:251:28: error: implicit declaration of function '__do_sys_membarrier'; did you mean '__se_sys_membarrier'? [-Wimplicit-function-declaration]
kernel/sched/autogroup.c:129:6: warning: 'task_wants_autogroup' defined but not used [-Wunused-function]
kernel/sched/autogroup.c:147:6: warning: 'sched_autogroup_exit_task' defined but not used [-Wunused-function]
kernel/sched/autogroup.c:158:1: error: invalid storage class for function 'autogroup_move_group'
kernel/sched/autogroup.c:202:15: error: non-static declaration of 'sched_autogroup_create_attach' follows static declaration
kernel/sched/autogroup.c:209:15: error: non-static declaration of 'sched_autogroup_detach' follows static declaration
kernel/sched/autogroup.c:211:6: warning: 'sched_autogroup_fork' defined but not used [-Wunused-function]
kernel/sched/autogroup.c:216:6: warning: 'sched_autogroup_exit' defined but not used [-Wunused-function]
kernel/sched/autogroup.c:221:19: error: invalid storage class for function 'setup_autogroup'
kernel/sched/autogroup.c:227:24: error: initializer element is not constant
kernel/sched/autogroup.c:285:5: warning: 'autogroup_path' defined but not used [-Wunused-function]
kernel/sched/autogroup.c:33:13: warning: 'autogroup_init' defined but not used [-Wunused-function]
kernel/sched/autogroup.c:42:6: warning: 'autogroup_free' defined but not used [-Wunused-function]
kernel/sched/autogroup.c:47:20: error: invalid storage class for function 'autogroup_destroy'
kernel/sched/autogroup.c:60:20: error: invalid storage class for function 'autogroup_kref_put'
kernel/sched/autogroup.c:65:33: error: invalid storage class for function 'autogroup_kref_get'
kernel/sched/autogroup.c:71:33: error: invalid storage class for function 'autogroup_task_get'
kernel/sched/autogroup.c:7:28: error: section attribute cannot be specified for local variables
kernel/sched/autogroup.c:85:33: error: invalid storage class for function 'autogroup_create'
kernel/sched/build_utility.c:110: error: expected declaration or statement at end of input
kernel/sched/isolation.c:100:20: error: invalid storage class for function 'housekeeping_setup_type'
kernel/sched/isolation.c:109:19: error: invalid storage class for function 'housekeeping_setup'
kernel/sched/isolation.c:180:19: error: invalid storage class for function 'housekeeping_nohz_full_setup'
kernel/sched/isolation.c:189:23: error: initializer element is not constant
kernel/sched/isolation.c:191:19: error: invalid storage class for function 'housekeeping_isolcpus_setup'
kernel/sched/isolation.c:244:19: error: invalid storage class for function 'enhanced_isolcpus_setup'
kernel/sched/isolation.c:24:19: error: extern declaration of 'housekeeping_overridden' follows declaration with no linkage
kernel/sched/isolation.c:37:19: error: non-static declaration of 'housekeeping_enabled' follows static declaration
kernel/sched/isolation.c:54:19: error: non-static declaration of 'housekeeping_any_cpu' follows static declaration
kernel/sched/isolation.c:63:19: error: non-static declaration of 'housekeeping_cpumask' follows static declaration
kernel/sched/isolation.c:71:19: error: non-static declaration of 'housekeeping_affine' follows static declaration
kernel/sched/isolation.c:80:19: error: non-static declaration of 'housekeeping_test_cpu' follows static declaration
kernel/sched/isolation.c:82:13: warning: 'housekeeping_init' defined but not used [-Wunused-function]
kernel/sched/membarrier.c:165:13: error: invalid storage class for function 'ipi_mb'
kernel/sched/membarrier.c:170:13: error: invalid storage class for function 'ipi_sync_core'
kernel/sched/membarrier.c:187:13: error: invalid storage class for function 'ipi_rseq'
kernel/sched/membarrier.c:200:13: error: invalid storage class for function 'ipi_sync_rq_state'
kernel/sched/membarrier.c:217:6: warning: 'membarrier_exec_mmap' defined but not used [-Wunused-function]
kernel/sched/membarrier.c:233:6: warning: 'membarrier_update_current_mm' defined but not used [-Wunused-function]
kernel/sched/membarrier.c:245:12: error: invalid storage class for function 'membarrier_global_expedited'
kernel/sched/membarrier.c:310:12: error: invalid storage class for function 'membarrier_private_expedited'
kernel/sched/membarrier.c:426:12: error: invalid storage class for function 'sync_runqueues_membarrier_state'
kernel/sched/membarrier.c:483:12: error: invalid storage class for function 'membarrier_register_global_expedited'
kernel/sched/membarrier.c:502:12: error: invalid storage class for function 'membarrier_register_private_expedited'
kernel/sched/membarrier.c:544:12: error: invalid storage class for function 'membarrier_get_registrations'
kernel/sched/psi.c:1106:13: error: invalid storage class for function 'task_is_in_psi_v1'
kernel/sched/psi.c:1112:33: error: invalid storage class for function 'task_psi_group'
kernel/sched/psi.c:1130:13: error: invalid storage class for function 'psi_flags_change'
kernel/sched/psi.c:1168:6: warning: 'psi_task_switch' defined but not used [-Wunused-function]
kernel/sched/psi.c:1262:6: warning: 'psi_account_irqtime' defined but not used [-Wunused-function]
kernel/sched/psi.c:1338:19: error: non-static declaration of 'psi_memstall_enter' follows static declaration
kernel/sched/psi.c:1370:19: error: non-static declaration of 'psi_memstall_leave' follows static declaration
kernel/sched/psi.c:1373:5: warning: 'psi_cgroup_alloc' defined but not used [-Wunused-function]
kernel/sched/psi.c:1392:6: warning: 'psi_cgroup_free' defined but not used [-Wunused-function]
kernel/sched/psi.c:1416:6: warning: 'cgroup_move_task' defined but not used [-Wunused-function]
kernel/sched/psi.c:1471:6: warning: 'psi_cgroup_restart' defined but not used [-Wunused-function]
kernel/sched/psi.c:1506:5: warning: 'psi_show' defined but not used [-Wunused-function]
kernel/sched/psi.c:1551:21: warning: 'psi_trigger_create' defined but not used [-Wunused-function]
kernel/sched/psi.c:1653:6: warning: 'psi_trigger_destroy' defined but not used [-Wunused-function]
kernel/sched/psi.c:1738:10: warning: 'psi_trigger_poll' defined but not used [-Wunused-function]
kernel/sched/psi.c:178:13: warning: 'psi_avgs_work' used but never defined
kernel/sched/psi.c:180:13: warning: 'poll_timer_fn' used but never defined
kernel/sched/psi.c:384:13: error: invalid storage class for function 'test_fine_grained_stat'
kernel/sched/psi.c:419:13: error: invalid storage class for function 'psi_group_stat_change'
kernel/sched/psi.c:447:13: error: invalid storage class for function 'psi_stat_flags_change'
kernel/sched/psi.c:469:13: error: invalid storage class for function 'get_recent_stat_times'
kernel/sched/psi.c:516:20: error: invalid storage class for function 'update_throttle_type'
kernel/sched/psi.c:520:13: error: invalid storage class for function 'collect_percpu_times'
kernel/sched/psi.c:588:13: error: invalid storage class for function 'window_reset'
kernel/sched/psi.c:607:12: error: invalid storage class for function 'window_update'
kernel/sched/psi.c:633:12: error: invalid storage class for function 'update_triggers'
kernel/sched/psi.c:706:12: error: invalid storage class for function 'update_averages'
kernel/sched/psi.c:771:13: error: invalid storage class for function 'psi_avgs_work'
kernel/sched/psi.c:807:13: error: invalid storage class for function 'init_rtpoll_triggers'
kernel/sched/psi.c:820:13: error: invalid storage class for function 'psi_schedule_rtpoll_work'
kernel/sched/psi.c:847:13: error: invalid storage class for function 'psi_rtpoll_work'
kernel/sched/psi.c:931:12: error: invalid storage class for function 'psi_rtpoll_worker'
kernel/sched/psi.c:949:13: error: invalid storage class for function 'poll_timer_fn'
kernel/sched/psi.c:949:13: warning: 'poll_timer_fn' defined but not used [-Wunused-function]
kernel/sched/psi.c:957:13: error: invalid storage class for function 'record_times'
kernel/sched/psi.c:990:13: error: invalid storage class for function 'psi_group_change'
loongson3-acpi-cpufreq.c:(.text+0x2aa0): undefined reference to `acpi_processor_register_performance'
loongson3-acpi-cpufreq.c:(.text+0x714): undefined reference to `acpi_processor_unregister_performance'
mm/page_alloc.c:4110:9: error: call to undeclared function 'dynamic_pool_should_alloc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allmodconfig
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvf-description-in-find_arm_smmu_domain
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvm-description-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-smmu_domain_group_list-description-in-find_arm_smmu_domain
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-data-not-described-in-find_arm_smmu_domain
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-dev-not-described-in-find_arm_smmu_domain
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-kv-not-described-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- arch-arm64-kvm-virtcca_cvm.c:warning:no-previous-prototype-for-function-kvm_cvm_create_dev_ttt_levels
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_export
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_include
| |-- drivers-net-ethernet-huawei-hinic3-cqm-cqm_bitmap_table.c:error:a-randomized-struct-can-only-be-initialized-with-a-designated-initializer
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h-file-not-found
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h-file-not-found
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h-file-not-found
|-- arm64-randconfig-002-20241029
| `-- drivers-char-ipmi-ipmi_bt_sm.c:error:call-to-undeclared-function-acpi_evaluate_integer-ISO-C99-and-later-do-not-support-implicit-function-declarations
|-- arm64-randconfig-003-20241029
| |-- fs-proc-etmem_scan.c:warning:suggest-braces-around-empty-body-in-an-else-statement
| |-- mm-share_pool.c:error:implicit-declaration-of-function-huge_ptep_get
| `-- mm-share_pool.c:error:invalid-initializer
|-- arm64-randconfig-004-20241029
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvf-description-in-find_arm_smmu_domain
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvm-description-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-smmu_domain_group_list-description-in-find_arm_smmu_domain
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-data-not-described-in-find_arm_smmu_domain
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-dev-not-described-in-find_arm_smmu_domain
| |-- arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-kv-not-described-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- drivers-net-ethernet-mucse-rnp-rnp_main.c:warning:unused-variable-hw
| |-- drivers-net-ethernet-mucse-rnp-rnp_sriov.c:error:expected-identifier-or-(
| |-- drivers-net-ethernet-mucse-rnp-rnp_sriov.c:error:extraneous-closing-brace-(-)
| |-- drivers-net-ethernet-mucse-rnp-rnp_sriov.c:warning:non-void-function-does-not-return-a-value
| |-- drivers-net-ethernet-mucse-rnp-rnp_sriov.c:warning:variable-err-set-but-not-used
| `-- mm-page_alloc.c:error:call-to-undeclared-function-dynamic_pool_should_alloc-ISO-C99-and-later-do-not-support-implicit-function-declarations
|-- loongarch-allmodconfig
| |-- loongson3-acpi-cpufreq.c:(.text):undefined-reference-to-acpi_processor_register_performance
| `-- loongson3-acpi-cpufreq.c:(.text):undefined-reference-to-acpi_processor_unregister_performance
|-- loongarch-allnoconfig
| |-- arch-loongarch-kernel-efi.c:error:incompatible-types-when-assigning-to-type-pmd_t-from-type-int
| `-- drivers-irqchip-irq-loongson-eiointc.c:error:NODES_PER_FLATMODE_NODE-undeclared-(first-use-in-this-function)
|-- loongarch-randconfig-002-20241029
| |-- arch-loongarch-kernel-efi.c:error:incompatible-types-when-assigning-to-type-pmd_t-from-type-int
| |-- drivers-irqchip-irq-loongson-eiointc.c:error:NODES_PER_FLATMODE_NODE-undeclared-(first-use-in-this-function)
| |-- include-linux-compiler-gcc.h:warning:alias-attribute-ignored
| |-- include-linux-syscalls.h:error:implicit-declaration-of-function-__do_sys_membarrier
| |-- include-linux-syscalls.h:error:invalid-storage-class-for-function-__do_sys_membarrier
| |-- include-linux-syscalls.h:error:static-declaration-of-__se_sys_membarrier-follows-non-static-declaration
| |-- include-linux-syscalls.h:warning:__se_sys_membarrier-defined-but-not-used
| |-- kernel-sched-autogroup.c:error:initializer-element-is-not-constant
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_create
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_destroy
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_kref_get
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_kref_put
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_move_group
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_task_get
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-setup_autogroup
| |-- kernel-sched-autogroup.c:error:non-static-declaration-of-sched_autogroup_create_attach-follows-static-declaration
| |-- kernel-sched-autogroup.c:error:non-static-declaration-of-sched_autogroup_detach-follows-static-declaration
| |-- kernel-sched-autogroup.c:error:section-attribute-cannot-be-specified-for-local-variables
| |-- kernel-sched-autogroup.c:warning:autogroup_free-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:autogroup_init-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:autogroup_path-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:sched_autogroup_exit-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:sched_autogroup_exit_task-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:sched_autogroup_fork-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:task_wants_autogroup-defined-but-not-used
| |-- kernel-sched-build_utility.c:error:expected-declaration-or-statement-at-end-of-input
| |-- kernel-sched-isolation.c:error:extern-declaration-of-housekeeping_overridden-follows-declaration-with-no-linkage
| |-- kernel-sched-isolation.c:error:initializer-element-is-not-constant
| |-- kernel-sched-isolation.c:error:invalid-storage-class-for-function-enhanced_isolcpus_setup
| |-- kernel-sched-isolation.c:error:invalid-storage-class-for-function-housekeeping_isolcpus_setup
| |-- kernel-sched-isolation.c:error:invalid-storage-class-for-function-housekeeping_nohz_full_setup
| |-- kernel-sched-isolation.c:error:invalid-storage-class-for-function-housekeeping_setup
| |-- kernel-sched-isolation.c:error:invalid-storage-class-for-function-housekeeping_setup_type
| |-- kernel-sched-isolation.c:error:non-static-declaration-of-housekeeping_affine-follows-static-declaration
| |-- kernel-sched-isolation.c:error:non-static-declaration-of-housekeeping_any_cpu-follows-static-declaration
| |-- kernel-sched-isolation.c:error:non-static-declaration-of-housekeeping_cpumask-follows-static-declaration
| |-- kernel-sched-isolation.c:error:non-static-declaration-of-housekeeping_enabled-follows-static-declaration
| |-- kernel-sched-isolation.c:error:non-static-declaration-of-housekeeping_test_cpu-follows-static-declaration
| |-- kernel-sched-isolation.c:warning:housekeeping_init-defined-but-not-used
| |-- kernel-sched-membarrier.c:error:invalid-storage-class-for-function-ipi_mb
| |-- kernel-sched-membarrier.c:error:invalid-storage-class-for-function-ipi_rseq
| |-- kernel-sched-membarrier.c:error:invalid-storage-class-for-function-ipi_sync_core
| |-- kernel-sched-membarrier.c:error:invalid-storage-class-for-function-ipi_sync_rq_state
| |-- kernel-sched-membarrier.c:error:invalid-storage-class-for-function-membarrier_get_registrations
| |-- kernel-sched-membarrier.c:error:invalid-storage-class-for-function-membarrier_global_expedited
| |-- kernel-sched-membarrier.c:error:invalid-storage-class-for-function-membarrier_private_expedited
| |-- kernel-sched-membarrier.c:error:invalid-storage-class-for-function-membarrier_register_global_expedited
| |-- kernel-sched-membarrier.c:error:invalid-storage-class-for-function-membarrier_register_private_expedited
| |-- kernel-sched-membarrier.c:error:invalid-storage-class-for-function-sync_runqueues_membarrier_state
| |-- kernel-sched-membarrier.c:warning:membarrier_exec_mmap-defined-but-not-used
| |-- kernel-sched-membarrier.c:warning:membarrier_update_current_mm-defined-but-not-used
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-collect_percpu_times
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-get_recent_stat_times
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-init_rtpoll_triggers
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-poll_timer_fn
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_avgs_work
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_flags_change
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_group_change
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_group_stat_change
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_rtpoll_work
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_rtpoll_worker
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_schedule_rtpoll_work
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_stat_flags_change
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-record_times
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-task_is_in_psi_v1
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-task_psi_group
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-test_fine_grained_stat
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-update_averages
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-update_throttle_type
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-update_triggers
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-window_reset
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-window_update
| |-- kernel-sched-psi.c:error:non-static-declaration-of-psi_memstall_enter-follows-static-declaration
| |-- kernel-sched-psi.c:error:non-static-declaration-of-psi_memstall_leave-follows-static-declaration
| |-- kernel-sched-psi.c:warning:cgroup_move_task-defined-but-not-used
| |-- kernel-sched-psi.c:warning:poll_timer_fn-defined-but-not-used
| |-- kernel-sched-psi.c:warning:poll_timer_fn-used-but-never-defined
| |-- kernel-sched-psi.c:warning:psi_account_irqtime-defined-but-not-used
| |-- kernel-sched-psi.c:warning:psi_avgs_work-used-but-never-defined
| |-- kernel-sched-psi.c:warning:psi_cgroup_alloc-defined-but-not-used
| |-- kernel-sched-psi.c:warning:psi_cgroup_free-defined-but-not-used
| |-- kernel-sched-psi.c:warning:psi_cgroup_restart-defined-but-not-used
| |-- kernel-sched-psi.c:warning:psi_show-defined-but-not-used
| |-- kernel-sched-psi.c:warning:psi_task_switch-defined-but-not-used
| |-- kernel-sched-psi.c:warning:psi_trigger_create-defined-but-not-used
| |-- kernel-sched-psi.c:warning:psi_trigger_destroy-defined-but-not-used
| `-- kernel-sched-psi.c:warning:psi_trigger_poll-defined-but-not-used
|-- x86_64-allnoconfig
| |-- Warning:drivers-net-ethernet-nebula-matrix-Kconfig-references-a-file-that-doesn-t-exist:file:Documentation-networking-device_drivers-ethernet-nebula-matrix-m18110.rst
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_include-nbl_include.h:linux-pci.h-is-included-more-than-once.
|-- x86_64-allyesconfig
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvf-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvm-description-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-smmu_domain_group_list-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-data-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-dev-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-kv-not-described-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_export
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_include
| |-- drivers-gpu-drm-amd-amdgpu-..-display-dc-dml-calcs-dcn_calc_auto.c:warning:stack-frame-size-()-exceeds-limit-()-in-mode_support_and_system_configuration
| |-- drivers-net-ethernet-huawei-hinic3-cqm-cqm_bitmap_table.c:error:a-randomized-struct-can-only-be-initialized-with-a-designated-initializer
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h-file-not-found
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h-file-not-found
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h-file-not-found
|-- x86_64-buildonly-randconfig-001-20241029
| |-- drivers-crypto-ccp-hygon-hct.c:error:struct-device-has-no-member-named-numa_node
| `-- drivers-crypto-ccp-hygon-tdm-dev.c:error:invalid-use-of-undefined-type-struct-module
|-- x86_64-buildonly-randconfig-002-20241029
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvf-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvm-description-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-smmu_domain_group_list-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-data-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-dev-not-described-in-find_arm_smmu_domain
| `-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-kv-not-described-in-cvm_vfio_add_kvm_to_smmu_domain
|-- x86_64-buildonly-randconfig-005-20241029
| `-- ld.lld:error:undefined-symbol:iova_reserve_domain_addr
|-- x86_64-kexec
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvf-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvm-description-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-smmu_domain_group_list-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-data-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-dev-not-described-in-find_arm_smmu_domain
| `-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-kv-not-described-in-cvm_vfio_add_kvm_to_smmu_domain
|-- x86_64-randconfig-001-20241029
| `-- arch-x86-kernel-zhaoxin_kh40000.c:error:implicit-declaration-of-function-iommu_get_dma_domain
|-- x86_64-randconfig-002-20241029
| `-- arch-x86-kernel-zhaoxin_kh40000.c:error:call-to-undeclared-function-iommu_get_dma_domain-ISO-C99-and-later-do-not-support-implicit-function-declarations
|-- x86_64-randconfig-003-20241029
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_export:No-such-file-or-directory
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_include:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
|-- x86_64-randconfig-004-20241029
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvf-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvm-description-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-smmu_domain_group_list-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-data-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-dev-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-kv-not-described-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_export
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_include
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h-file-not-found
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h-file-not-found
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h-file-not-found
|-- x86_64-randconfig-005-20241029
| |-- arch-x86-kernel-zhaoxin_kh40000.c:error:implicit-declaration-of-function-iommu_get_dma_domain
| `-- kernel-dma-contiguous.c:error:is_zhaoxin_kh40000-undeclared-(first-use-in-this-function)
|-- x86_64-randconfig-006-20241029
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_export:No-such-file-or-directory
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_include:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
|-- x86_64-randconfig-011-20241029
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_export
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_include
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h-file-not-found
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h-file-not-found
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h-file-not-found
|-- x86_64-randconfig-012-20241029
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_export
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_include
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h-file-not-found
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h-file-not-found
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h-file-not-found
|-- x86_64-randconfig-013-20241029
| `-- ld.lld:error:undefined-symbol:iova_reserve_domain_addr
|-- x86_64-randconfig-014-20241029
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_export
| |-- clang:warning:no-such-include-directory:drivers-net-ethernet-nebula-matrix-nbl-nbl_include
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h-file-not-found
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h-file-not-found
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h-file-not-found
|-- x86_64-randconfig-015-20241029
| |-- arch-x86-kernel-zhaoxin_kh40000.c:error:implicit-declaration-of-function-iommu_get_dma_domain
| `-- kernel-dma-contiguous.c:error:is_zhaoxin_kh40000-undeclared-(first-use-in-this-function)
|-- x86_64-randconfig-071-20241029
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_export:No-such-file-or-directory
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_include:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
|-- x86_64-randconfig-072-20241029
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvf-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvm-description-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-smmu_domain_group_list-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-data-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-dev-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-kv-not-described-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- arch-x86-kvm-svm-sev.c:error:lvalue-required-as-unary-operand
| |-- arch-x86-kvm-svm-sev.c:error:struct-hygon_kvm_hooks_table-has-no-member-named-false
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_export:No-such-file-or-directory
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_include:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
| |-- fs-proc-etmem_scan.c:warning:suggest-braces-around-empty-body-in-an-else-statement
| `-- mm-memcontrol.c:warning:no-previous-prototype-for-memcg_swapmax_read
|-- x86_64-randconfig-073-20241029
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_export:No-such-file-or-directory
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_include:No-such-file-or-directory
| |-- drivers-crypto-ccp-hygon-hct.c:error:struct-device-has-no-member-named-numa_node
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
|-- x86_64-randconfig-075-20241029
| |-- arch-x86-kernel-zhaoxin_kh40000.c:error:implicit-declaration-of-function-iommu_get_dma_domain
| `-- kernel-dma-contiguous.c:error:is_zhaoxin_kh40000-undeclared-(first-use-in-this-function)
|-- x86_64-randconfig-076-20241029
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_export:No-such-file-or-directory
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_include:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
|-- x86_64-randconfig-161-20241029
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_export:No-such-file-or-directory
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_include:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
|-- x86_64-rhel-8.3
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvf-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvm-description-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-smmu_domain_group_list-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-data-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-dev-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-kv-not-described-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_export:No-such-file-or-directory
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_include:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
|-- x86_64-rhel-8.3-func
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvf-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvm-description-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-smmu_domain_group_list-description-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-data-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-dev-not-described-in-find_arm_smmu_domain
| |-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-kv-not-described-in-cvm_vfio_add_kvm_to_smmu_domain
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_export:No-such-file-or-directory
| |-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_include:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h:No-such-file-or-directory
| |-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
| `-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
`-- x86_64-rhel-8.3-kselftests
|-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvf-description-in-find_arm_smmu_domain
|-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvm-description-in-cvm_vfio_add_kvm_to_smmu_domain
|-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-smmu_domain_group_list-description-in-find_arm_smmu_domain
|-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-data-not-described-in-find_arm_smmu_domain
|-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-dev-not-described-in-find_arm_smmu_domain
|-- arch-x86-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-kv-not-described-in-cvm_vfio_add_kvm_to_smmu_domain
|-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_export:No-such-file-or-directory
|-- cc1:warning:drivers-net-ethernet-nebula-matrix-nbl-nbl_include:No-such-file-or-directory
|-- drivers-net-ethernet-nebula-matrix-nbl-nbl_core.h:fatal-error:nbl_product_base.h:No-such-file-or-directory
|-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_queue_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
`-- drivers-net-ethernet-nebula-matrix-nbl-nbl_hw-nbl_hw_leonis-nbl_resource_leonis.h:fatal-error:nbl_resource.h:No-such-file-or-directory
elapsed time: 735m
configs tested: 39
configs skipped: 124
tested configs:
arm64 allmodconfig clang-20
arm64 allnoconfig gcc-14.1.0
arm64 randconfig-001-20241029 clang-17
arm64 randconfig-002-20241029 clang-20
arm64 randconfig-003-20241029 gcc-14.1.0
arm64 randconfig-004-20241029 clang-20
loongarch allmodconfig gcc-14.1.0
loongarch allnoconfig gcc-14.1.0
loongarch randconfig-001-20241029 gcc-14.1.0
loongarch randconfig-002-20241029 gcc-14.1.0
x86_64 allnoconfig clang-19
x86_64 allyesconfig clang-19
x86_64 buildonly-randconfig-001-20241029 gcc-12
x86_64 buildonly-randconfig-002-20241029 gcc-12
x86_64 buildonly-randconfig-003-20241029 gcc-12
x86_64 buildonly-randconfig-004-20241029 gcc-12
x86_64 buildonly-randconfig-005-20241029 clang-19
x86_64 buildonly-randconfig-006-20241029 gcc-12
x86_64 defconfig gcc-11
x86_64 kexec clang-19
x86_64 randconfig-001-20241029 gcc-12
x86_64 randconfig-002-20241029 clang-19
x86_64 randconfig-003-20241029 gcc-12
x86_64 randconfig-004-20241029 clang-19
x86_64 randconfig-005-20241029 gcc-12
x86_64 randconfig-006-20241029 gcc-12
x86_64 randconfig-011-20241029 clang-19
x86_64 randconfig-012-20241029 clang-19
x86_64 randconfig-013-20241029 clang-19
x86_64 randconfig-014-20241029 clang-19
x86_64 randconfig-015-20241029 gcc-12
x86_64 randconfig-016-20241029 gcc-12
x86_64 randconfig-071-20241029 gcc-12
x86_64 randconfig-072-20241029 gcc-12
x86_64 randconfig-073-20241029 gcc-12
x86_64 randconfig-074-20241029 clang-19
x86_64 randconfig-075-20241029 gcc-12
x86_64 randconfig-076-20241029 gcc-12
x86_64 rhel-8.3 gcc-12
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-5.10 15620/30000] drivers/ptp/ptp_hisi.c:731:36: warning: 'hisi_ptp_acpi_match' defined but not used
by kernel test robot 29 Oct '24
by kernel test robot 29 Oct '24
29 Oct '24
Hi Yonglong,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 8dcdd5a432518f8f8deb6ab608551ecda71bda40
commit: c64545e1e5fa4e09603149e918f306562a22a60a [15620/30000] net: hns3: add support for Hisilicon ptp sync device
config: arm64-randconfig-003-20241029 (https://download.01.org/0day-ci/archive/20241029/202410290853.IWsztKim-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241029/202410290853.IWsztKim-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410290853.IWsztKim-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/ptp/ptp_hisi.c:731:36: warning: 'hisi_ptp_acpi_match' defined but not used [-Wunused-const-variable=]
731 | static const struct acpi_device_id hisi_ptp_acpi_match[] = {
| ^~~~~~~~~~~~~~~~~~~
vim +/hisi_ptp_acpi_match +731 drivers/ptp/ptp_hisi.c
730
> 731 static const struct acpi_device_id hisi_ptp_acpi_match[] = {
732 { "HISI0411", 0 },
733 { }
734 };
735 MODULE_DEVICE_TABLE(acpi, hisi_ptp_acpi_match);
736
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

29 Oct '24
From: Ma Wupeng <mawupeng1(a)huawei.com>
mainline inclusion
from mainline-v6.6-rc1
commit c70699e555537b611f4cb426c26f8ab4a264a8a0
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IB0CMQ
CVE: NA
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Our test finds a WARN_ON in add_to_avail_list. During add_to_avail_list,
avail_lists is already in swap_avail_heads, while leads to this WARN_ON.
Here is the simplified calltrace:
------------[ cut here ]------------
Call trace:
add_to_avail_list+0xb8/0xc0
swap_range_free+0x110/0x138
swapcache_free_entries+0x100/0x1c0
free_swap_slot+0xbc/0xe0
put_swap_folio+0x1f0/0x2ec
delete_from_swap_cache+0x6c/0xd0
folio_free_swap+0xa4/0xe4
__try_to_reclaim_swap+0x9c/0x190
free_swap_and_cache+0x84/0x88
unmap_page_range+0x31c/0x934
unmap_single_vma.isra.0+0x48/0x84
unmap_vmas+0x98/0x10c
exit_mmap+0xa4/0x210
mmput+0x88/0x158
do_exit+0x284/0x970
do_group_exit+0x34/0x90
post_copy_siginfo_from_user32+0x0/0x1cc
do_notify_resume+0x15c/0x470
el0_svc+0x74/0x84
el0t_64_sync_handler+0xb8/0xbc
el0t_64_sync+0x190/0x194
During swapoff, try_to_unuse fails to alloc memory due to memory limit and
this leads to the failure of swapoff and causes re-insertion of swap space
back into swap_list. During _enable_swap_info, this swap device is added
to avail list even this swap device if full. At the same time, one entry
in this full swap device in released and we try to add this device into
avail list and find it is already in the avail list. This causes this
WARN_ON.
To fix this. Don't add to avail list is swap is full.
[akpm(a)linux-foundation.org: coding-style cleanups]
Link: https://lkml.kernel.org/r/20230627120833.2230766-3-mawupeng1@huawei.com
Signed-off-by: Ma Wupeng <mawupeng1(a)huawei.com>
Cc: Hugh Dickins <hughd(a)google.com>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
Signed-off-by: Ma Wupeng <mawupeng1(a)huawei.com>
---
mm/swapfile.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/mm/swapfile.c b/mm/swapfile.c
index b505a827e589..cff30234879d 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -2579,7 +2579,10 @@ static void _enable_swap_info(struct swap_info_struct *p)
* swap_info_struct.
*/
plist_add(&p->list, &swap_active_head);
- add_to_avail_list(p);
+
+ /* add to available list iff swap device is not full */
+ if (p->highest_bit)
+ add_to_avail_list(p);
}
static void enable_swap_info(struct swap_info_struct *p, int prio,
--
2.25.1
2
1

[openeuler:OLK-6.6 14667/15358] arch/arm64/kvm/virtcca_cvm.c:954:5: warning: no previous prototype for function 'kvm_cvm_create_dev_ttt_levels'
by kernel test robot 29 Oct '24
by kernel test robot 29 Oct '24
29 Oct '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 27e5d43e49e85d816bd05ffe8672ceea631a07e4
commit: 6ae1290a135c545470e99e6b117d9be75836d0ac [14667/15358] virtcca feature: vfio driver dma map
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20241029/202410290851.Q4YycFaU-lkp@…)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 5886454669c3c9026f7f27eab13509dd0241f2d6)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241029/202410290851.Q4YycFaU-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410290851.Q4YycFaU-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from arch/arm64/kvm/virtcca_cvm.c:5:
In file included from include/linux/kvm_host.h:16:
In file included from include/linux/mm.h:2243:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> arch/arm64/kvm/virtcca_cvm.c:954:5: warning: no previous prototype for function 'kvm_cvm_create_dev_ttt_levels' [-Wmissing-prototypes]
954 | int kvm_cvm_create_dev_ttt_levels(struct kvm *kvm, struct virtcca_cvm *cvm,
| ^
arch/arm64/kvm/virtcca_cvm.c:954:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
954 | int kvm_cvm_create_dev_ttt_levels(struct kvm *kvm, struct virtcca_cvm *cvm,
| ^
| static
6 warnings generated.
vim +/kvm_cvm_create_dev_ttt_levels +954 arch/arm64/kvm/virtcca_cvm.c
952
953 /* CVM create ttt level information about device */
> 954 int kvm_cvm_create_dev_ttt_levels(struct kvm *kvm, struct virtcca_cvm *cvm,
955 unsigned long ipa,
956 int level,
957 int max_level,
958 struct kvm_mmu_memory_cache *mc)
959 {
960 int ret = 0;
961
962 if (WARN_ON(level == max_level))
963 return 0;
964
965 while (level++ < max_level) {
966 u64 numa_set = kvm_get_first_binded_numa_set(kvm);
967
968 ret = kvm_cvm_dev_ttt_create(cvm, ipa, level, numa_set);
969 if (ret)
970 return -ENXIO;
971 }
972
973 return 0;
974 }
975
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-5.10 15345/30000] mm/memcontrol.c:5402:40: error: implicit declaration of function 'ksm_process_profit'
by kernel test robot 29 Oct '24
by kernel test robot 29 Oct '24
29 Oct '24
Hi Nanyong,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 8dcdd5a432518f8f8deb6ab608551ecda71bda40
commit: 0f6fb3570be40b783d8c756d64297be1a8e3d2b3 [15345/30000] memcg: support ksm merge any mode per cgroup
config: x86_64-buildonly-randconfig-003-20241029 (https://download.01.org/0day-ci/archive/20241029/202410290835.BHKldai7-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241029/202410290835.BHKldai7-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410290835.BHKldai7-lkp@intel.com/
All errors (new ones prefixed by >>):
mm/memcontrol.c: In function 'memory_ksm_show':
>> mm/memcontrol.c:5402:40: error: implicit declaration of function 'ksm_process_profit' [-Werror=implicit-function-declaration]
5402 | ksm_process_profits += ksm_process_profit(mm);
| ^~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/ksm_process_profit +5402 mm/memcontrol.c
5379
5380 static int memory_ksm_show(struct seq_file *m, void *v)
5381 {
5382 unsigned long ksm_merging_pages = 0;
5383 unsigned long ksm_rmap_items = 0;
5384 long ksm_process_profits = 0;
5385 unsigned int tasks = 0;
5386 struct task_struct *task;
5387 struct mm_struct *mm;
5388 struct css_task_iter it;
5389 struct mem_cgroup *memcg = mem_cgroup_from_seq(m);
5390
5391 css_task_iter_start(&memcg->css, CSS_TASK_ITER_PROCS, &it);
5392 while ((task = css_task_iter_next(&it))) {
5393 mm = get_task_mm(task);
5394 if (!mm)
5395 continue;
5396
5397 if (test_bit(MMF_VM_MERGE_ANY, &mm->flags))
5398 tasks++;
5399
5400 ksm_rmap_items += mm->ksm_rmap_items;
5401 ksm_merging_pages += mm->ksm_merging_pages;
> 5402 ksm_process_profits += ksm_process_profit(mm);
5403 mmput(mm);
5404 }
5405 css_task_iter_end(&it);
5406
5407 seq_printf(m, "merge any state: %d\n", READ_ONCE(memcg->ksm_merge_any));
5408 seq_printf(m, "merge any tasks: %u\n", tasks);
5409 seq_printf(m, "ksm_rmap_items %lu\n", ksm_rmap_items);
5410 seq_printf(m, "ksm_merging_pages %lu\n", ksm_merging_pages);
5411 seq_printf(m, "ksm_process_profits %ld\n", ksm_process_profits);
5412 return 0;
5413 }
5414
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 2850/15358] kernel/sched/isolation.c:244:19: error: invalid storage class for function 'enhanced_isolcpus_setup'
by kernel test robot 29 Oct '24
by kernel test robot 29 Oct '24
29 Oct '24
Hi Xiongfeng,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 27e5d43e49e85d816bd05ffe8672ceea631a07e4
commit: 5f20541757730418065c3ae77dfdbcde3f523394 [2850/15358] blk-mq: avoid housekeeping CPUs scheduling a worker on a non-housekeeping CPU
config: loongarch-randconfig-002-20241029 (https://download.01.org/0day-ci/archive/20241029/202410290700.Xq3inTZy-lkp@…)
compiler: loongarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241029/202410290700.Xq3inTZy-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410290700.Xq3inTZy-lkp@intel.com/
All errors (new ones prefixed by >>):
54 | EXPORT_SYMBOL_GPL(housekeeping_any_cpu);
| ^~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:39:5: note: previous definition of 'housekeeping_any_cpu' with type 'int(enum hk_type)'
39 | int housekeeping_any_cpu(enum hk_type type)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:63:19: error: non-static declaration of 'housekeeping_cpumask' follows static declaration
63 | EXPORT_SYMBOL_GPL(housekeeping_cpumask);
| ^~~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/isolation.c:63:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
63 | EXPORT_SYMBOL_GPL(housekeeping_cpumask);
| ^~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:56:23: note: previous definition of 'housekeeping_cpumask' with type 'const struct cpumask *(enum hk_type)'
56 | const struct cpumask *housekeeping_cpumask(enum hk_type type)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:71:19: error: non-static declaration of 'housekeeping_affine' follows static declaration
71 | EXPORT_SYMBOL_GPL(housekeeping_affine);
| ^~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/isolation.c:71:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
71 | EXPORT_SYMBOL_GPL(housekeeping_affine);
| ^~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:65:6: note: previous definition of 'housekeeping_affine' with type 'void(struct task_struct *, enum hk_type)'
65 | void housekeeping_affine(struct task_struct *t, enum hk_type type)
| ^~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:80:19: error: non-static declaration of 'housekeeping_test_cpu' follows static declaration
80 | EXPORT_SYMBOL_GPL(housekeeping_test_cpu);
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/isolation.c:80:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
80 | EXPORT_SYMBOL_GPL(housekeeping_test_cpu);
| ^~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:73:6: note: previous definition of 'housekeeping_test_cpu' with type 'bool(int, enum hk_type)' {aka '_Bool(int, enum hk_type)'}
73 | bool housekeeping_test_cpu(int cpu, enum hk_type type)
| ^~~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:100:20: error: invalid storage class for function 'housekeeping_setup_type'
100 | static void __init housekeeping_setup_type(enum hk_type type,
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:109:19: error: invalid storage class for function 'housekeeping_setup'
109 | static int __init housekeeping_setup(char *str, unsigned long flags)
| ^~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:180:19: error: invalid storage class for function 'housekeeping_nohz_full_setup'
180 | static int __init housekeeping_nohz_full_setup(char *str)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/printk.h:6,
from include/linux/kernel.h:30:
kernel/sched/isolation.c:189:23: error: initializer element is not constant
189 | __setup("nohz_full=", housekeeping_nohz_full_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:189:1: note: in expansion of macro '__setup'
189 | __setup("nohz_full=", housekeeping_nohz_full_setup);
| ^~~~~~~
kernel/sched/isolation.c:189:23: note: (near initialization for '__setup_housekeeping_nohz_full_setup.setup_func')
189 | __setup("nohz_full=", housekeeping_nohz_full_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:189:1: note: in expansion of macro '__setup'
189 | __setup("nohz_full=", housekeeping_nohz_full_setup);
| ^~~~~~~
kernel/sched/isolation.c:191:19: error: invalid storage class for function 'housekeeping_isolcpus_setup'
191 | static int __init housekeeping_isolcpus_setup(char *str)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:241:22: error: initializer element is not constant
241 | __setup("isolcpus=", housekeeping_isolcpus_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:241:1: note: in expansion of macro '__setup'
241 | __setup("isolcpus=", housekeeping_isolcpus_setup);
| ^~~~~~~
kernel/sched/isolation.c:241:22: note: (near initialization for '__setup_housekeeping_isolcpus_setup.setup_func')
241 | __setup("isolcpus=", housekeeping_isolcpus_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:241:1: note: in expansion of macro '__setup'
241 | __setup("isolcpus=", housekeeping_isolcpus_setup);
| ^~~~~~~
>> kernel/sched/isolation.c:244:19: error: invalid storage class for function 'enhanced_isolcpus_setup'
244 | static int __init enhanced_isolcpus_setup(char *str)
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:249:30: error: initializer element is not constant
249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:249:1: note: in expansion of macro '__setup'
249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup);
| ^~~~~~~
kernel/sched/isolation.c:249:30: note: (near initialization for '__setup_enhanced_isolcpus_setup.setup_func')
249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:249:1: note: in expansion of macro '__setup'
249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup);
| ^~~~~~~
In file included from kernel/sched/build_utility.c:109:
kernel/sched/autogroup.c:7:28: error: section attribute cannot be specified for local variables
7 | unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:47:20: error: invalid storage class for function 'autogroup_destroy'
47 | static inline void autogroup_destroy(struct kref *kref)
| ^~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:60:20: error: invalid storage class for function 'autogroup_kref_put'
60 | static inline void autogroup_kref_put(struct autogroup *ag)
| ^~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:65:33: error: invalid storage class for function 'autogroup_kref_get'
65 | static inline struct autogroup *autogroup_kref_get(struct autogroup *ag)
| ^~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:71:33: error: invalid storage class for function 'autogroup_task_get'
71 | static inline struct autogroup *autogroup_task_get(struct task_struct *p)
| ^~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:85:33: error: invalid storage class for function 'autogroup_create'
85 | static inline struct autogroup *autogroup_create(void)
| ^~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:158:1: error: invalid storage class for function 'autogroup_move_group'
158 | autogroup_move_group(struct task_struct *p, struct autogroup *ag)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:202:15: error: non-static declaration of 'sched_autogroup_create_attach' follows static declaration
202 | EXPORT_SYMBOL(sched_autogroup_create_attach);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:86:41: note: in expansion of macro '_EXPORT_SYMBOL'
86 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
| ^~~~~~~~~~~~~~
kernel/sched/autogroup.c:202:1: note: in expansion of macro 'EXPORT_SYMBOL'
202 | EXPORT_SYMBOL(sched_autogroup_create_attach);
| ^~~~~~~~~~~~~
kernel/sched/autogroup.c:193:6: note: previous definition of 'sched_autogroup_create_attach' with type 'void(struct task_struct *)'
193 | void sched_autogroup_create_attach(struct task_struct *p)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:209:15: error: non-static declaration of 'sched_autogroup_detach' follows static declaration
209 | EXPORT_SYMBOL(sched_autogroup_detach);
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:86:41: note: in expansion of macro '_EXPORT_SYMBOL'
86 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
| ^~~~~~~~~~~~~~
kernel/sched/autogroup.c:209:1: note: in expansion of macro 'EXPORT_SYMBOL'
209 | EXPORT_SYMBOL(sched_autogroup_detach);
| ^~~~~~~~~~~~~
kernel/sched/autogroup.c:205:6: note: previous definition of 'sched_autogroup_detach' with type 'void(struct task_struct *)'
205 | void sched_autogroup_detach(struct task_struct *p)
| ^~~~~~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:221:19: error: invalid storage class for function 'setup_autogroup'
221 | static int __init setup_autogroup(char *str)
| ^~~~~~~~~~~~~~~
kernel/sched/autogroup.c:227:24: error: initializer element is not constant
227 | __setup("noautogroup", setup_autogroup);
| ^~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/autogroup.c:227:1: note: in expansion of macro '__setup'
227 | __setup("noautogroup", setup_autogroup);
| ^~~~~~~
kernel/sched/autogroup.c:227:24: note: (near initialization for '__setup_setup_autogroup.setup_func')
227 | __setup("noautogroup", setup_autogroup);
| ^~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/autogroup.c:227:1: note: in expansion of macro '__setup'
227 | __setup("noautogroup", setup_autogroup);
| ^~~~~~~
kernel/sched/build_utility.c:110: error: expected declaration or statement at end of input
110 | #endif
kernel/sched/psi.c: At top level:
kernel/sched/psi.c:178:13: warning: 'psi_avgs_work' used but never defined
178 | static void psi_avgs_work(struct work_struct *work);
| ^~~~~~~~~~~~~
kernel/sched/psi.c:180:13: warning: 'poll_timer_fn' used but never defined
vim +/enhanced_isolcpus_setup +244 kernel/sched/isolation.c
242
243 bool enhanced_isolcpus;
> 244 static int __init enhanced_isolcpus_setup(char *str)
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 7193/15358] mm/page_alloc.c:4110:9: error: call to undeclared function 'dynamic_pool_should_alloc'; ISO C99 and later do not support implicit function declarations
by kernel test robot 29 Oct '24
by kernel test robot 29 Oct '24
29 Oct '24
Hi Liu,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 27e5d43e49e85d816bd05ffe8672ceea631a07e4
commit: fd855715f24e3eeadaa56de5fde21c55a14aeea0 [7193/15358] mm/mem_reliable: Fallback to dpool if reliable memory is not enough
config: arm64-randconfig-004-20241029 (https://download.01.org/0day-ci/archive/20241029/202410290739.pk9x3tTN-lkp@…)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 5886454669c3c9026f7f27eab13509dd0241f2d6)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241029/202410290739.pk9x3tTN-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410290739.pk9x3tTN-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from mm/page_alloc.c:19:
In file included from include/linux/mm.h:2204:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
In file included from mm/page_alloc.c:43:
include/linux/mm_inline.h:47:41: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
47 | __mod_lruvec_state(lruvec, NR_LRU_BASE + lru, nr_pages);
| ~~~~~~~~~~~ ^ ~~~
include/linux/mm_inline.h:49:22: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
49 | NR_ZONE_LRU_BASE + lru, nr_pages);
| ~~~~~~~~~~~~~~~~ ^ ~~~
mm/page_alloc.c:2769:2: warning: arithmetic between different enumeration types ('enum vm_event_item' and 'enum zone_type') [-Wenum-enum-conversion]
2769 | __count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:135:34: note: expanded from macro '__count_zid_vm_events'
135 | __count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta)
| ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
mm/page_alloc.c:2886:3: warning: arithmetic between different enumeration types ('enum vm_event_item' and 'enum zone_type') [-Wenum-enum-conversion]
2886 | __count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:135:34: note: expanded from macro '__count_zid_vm_events'
135 | __count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta)
| ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
>> mm/page_alloc.c:4110:9: error: call to undeclared function 'dynamic_pool_should_alloc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
4110 | return dynamic_pool_should_alloc(gfp_mask & ~GFP_RELIABLE, order);
| ^
mm/page_alloc.c:4596:2: warning: arithmetic between different enumeration types ('enum vm_event_item' and 'enum zone_type') [-Wenum-enum-conversion]
4596 | __count_zid_vm_events(PGALLOC, zone_idx(zone), nr_account);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:135:34: note: expanded from macro '__count_zid_vm_events'
135 | __count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta)
| ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
10 warnings and 1 error generated.
vim +/dynamic_pool_should_alloc +4110 mm/page_alloc.c
4101
4102 static inline bool mem_reliable_fallback_dpool(gfp_t gfp_mask, unsigned int order)
4103 {
4104 if (!reliable_allow_fb_enabled())
4105 return false;
4106
4107 if (!(gfp_mask & GFP_RELIABLE))
4108 return false;
4109
> 4110 return dynamic_pool_should_alloc(gfp_mask & ~GFP_RELIABLE, order);
4111 }
4112 #else
4113 static inline struct zone *mem_reliable_fallback_zone(gfp_t gfp_mask,
4114 struct alloc_context *ac)
4115 {
4116 return NULL;
4117 }
4118 static inline void mem_reliable_fallback_slowpath(gfp_t gfp_mask,
4119 struct alloc_context *ac) {}
4120 static inline bool mem_reliable_fallback_dpool(gfp_t gfp_mask, unsigned int order)
4121 {
4122 return false;
4123 }
4124 #endif
4125
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 6858/15358] drivers/char/ipmi/ipmi_bt_sm.c:194:11: error: call to undeclared function 'acpi_evaluate_integer'; ISO C99 and later do not support implicit function declarations
by kernel test robot 29 Oct '24
by kernel test robot 29 Oct '24
29 Oct '24
Hi Devyn,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 27e5d43e49e85d816bd05ffe8672ceea631a07e4
commit: 6449ff7a5a2b148bc0a60efb3f0d723aaeceaae6 [6858/15358] ipmi: Errata workaround to prevent SMS message processing timeout
config: arm64-randconfig-002-20241029 (https://download.01.org/0day-ci/archive/20241029/202410290657.8iWV8CTG-lkp@…)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 5886454669c3c9026f7f27eab13509dd0241f2d6)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241029/202410290657.8iWV8CTG-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410290657.8iWV8CTG-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/char/ipmi/ipmi_bt_sm.c:194:11: error: call to undeclared function 'acpi_evaluate_integer'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
194 | status = acpi_evaluate_integer(handle, "SATN", NULL, &tmp);
| ^
drivers/char/ipmi/ipmi_bt_sm.c:194:11: note: did you mean 'acpi_evaluate_object'?
include/acpi/acpixf.h:550:8: note: 'acpi_evaluate_object' declared here
550 | acpi_evaluate_object(acpi_handle object,
| ^
include/acpi/platform/aclinux.h:93:21: note: expanded from macro 'ACPI_EXTERNAL_RETURN_STATUS'
93 | static ACPI_INLINE prototype {return(AE_NOT_CONFIGURED);}
| ^
1 error generated.
vim +/acpi_evaluate_integer +194 drivers/char/ipmi/ipmi_bt_sm.c
177
178 #ifdef CONFIG_HISILICON_ERRATUM_162102203
179 /*
180 * To confirm whether the SMS_ATN flag needs to be stored and get
181 * quirk through the method reported by the BIOS. Because in special
182 * cases SMS_ATN flag bits may be lost before being processed.
183 */
184 static bool get_sms_atn_quirk(struct si_sm_io *io)
185 {
186 acpi_handle handle;
187 acpi_status status;
188 unsigned long long tmp;
189
190 handle = ACPI_HANDLE(io->dev);
191 if (!handle)
192 return false;
193
> 194 status = acpi_evaluate_integer(handle, "SATN", NULL, &tmp);
195 if (ACPI_FAILURE(status))
196 return false;
197 else if (tmp != 1)
198 return false;
199
200 return true;
201 }
202 #endif
203
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 2387/15358] kernel/sched/psi.c:384:13: error: invalid storage class for function 'test_fine_grained_stat'
by kernel test robot 29 Oct '24
by kernel test robot 29 Oct '24
29 Oct '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 27e5d43e49e85d816bd05ffe8672ceea631a07e4
commit: 654944510822988390470cbc5b6f914c19dd9b88 [2387/15358] sched/psi: add cpu fine grained stall tracking in pressure.stat
config: loongarch-randconfig-002-20241029 (https://download.01.org/0day-ci/archive/20241029/202410290508.V6mqgsUO-lkp@…)
compiler: loongarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241029/202410290508.V6mqgsUO-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410290508.V6mqgsUO-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
In file included from include/linux/irq.h:23,
from kernel/sched/build_utility.c:29:
include/linux/nmi.h: In function 'trigger_all_cpu_backtrace':
arch/loongarch/include/asm/irq.h:42:40: error: void value not ignored as it ought to be
42 | #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
include/linux/nmi.h:160:16: note: in expansion of macro 'arch_trigger_cpumask_backtrace'
160 | return arch_trigger_cpumask_backtrace(cpu_online_mask, -1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/nmi.h: In function 'trigger_allbutcpu_cpu_backtrace':
arch/loongarch/include/asm/irq.h:42:40: error: void value not ignored as it ought to be
42 | #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
include/linux/nmi.h:165:16: note: in expansion of macro 'arch_trigger_cpumask_backtrace'
165 | return arch_trigger_cpumask_backtrace(cpu_online_mask, exclude_cpu);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/nmi.h: In function 'trigger_cpumask_backtrace':
arch/loongarch/include/asm/irq.h:42:40: error: void value not ignored as it ought to be
42 | #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
include/linux/nmi.h:170:16: note: in expansion of macro 'arch_trigger_cpumask_backtrace'
170 | return arch_trigger_cpumask_backtrace(mask, -1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/nmi.h: In function 'trigger_single_cpu_backtrace':
arch/loongarch/include/asm/irq.h:42:40: error: void value not ignored as it ought to be
42 | #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
include/linux/nmi.h:175:16: note: in expansion of macro 'arch_trigger_cpumask_backtrace'
175 | return arch_trigger_cpumask_backtrace(cpumask_of(cpu), -1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from kernel/sched/build_utility.c:97:
kernel/sched/psi.c: In function 'record_stat_times':
>> kernel/sched/psi.c:384:13: error: invalid storage class for function 'test_fine_grained_stat'
384 | static bool test_fine_grained_stat(unsigned int *stat_tasks,
| ^~~~~~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:419:13: error: invalid storage class for function 'psi_group_stat_change'
419 | static void psi_group_stat_change(struct psi_group *group, int cpu,
| ^~~~~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:447:13: error: invalid storage class for function 'psi_stat_flags_change'
447 | static void psi_stat_flags_change(struct task_struct *task, int *stat_set,
| ^~~~~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:469:13: error: invalid storage class for function 'get_recent_stat_times'
469 | static void get_recent_stat_times(struct psi_group *group, int cpu,
| ^~~~~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:516:20: error: invalid storage class for function 'update_throttle_type'
516 | static inline void update_throttle_type(struct task_struct *task, int cpu,
| ^~~~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:520:13: error: invalid storage class for function 'collect_percpu_times'
520 | static void collect_percpu_times(struct psi_group *group,
| ^~~~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:588:13: error: invalid storage class for function 'window_reset'
588 | static void window_reset(struct psi_window *win, u64 now, u64 value,
| ^~~~~~~~~~~~
>> kernel/sched/psi.c:607:12: error: invalid storage class for function 'window_update'
607 | static u64 window_update(struct psi_window *win, u64 now, u64 value)
| ^~~~~~~~~~~~~
>> kernel/sched/psi.c:633:12: error: invalid storage class for function 'update_triggers'
633 | static u64 update_triggers(struct psi_group *group, u64 now, bool *update_total,
| ^~~~~~~~~~~~~~~
>> kernel/sched/psi.c:706:12: error: invalid storage class for function 'update_averages'
706 | static u64 update_averages(struct psi_group *group, u64 now)
| ^~~~~~~~~~~~~~~
>> kernel/sched/psi.c:771:13: error: invalid storage class for function 'psi_avgs_work'
771 | static void psi_avgs_work(struct work_struct *work)
| ^~~~~~~~~~~~~
>> kernel/sched/psi.c:807:13: error: invalid storage class for function 'init_rtpoll_triggers'
807 | static void init_rtpoll_triggers(struct psi_group *group, u64 now)
| ^~~~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:820:13: error: invalid storage class for function 'psi_schedule_rtpoll_work'
820 | static void psi_schedule_rtpoll_work(struct psi_group *group, unsigned long delay,
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:847:13: error: invalid storage class for function 'psi_rtpoll_work'
847 | static void psi_rtpoll_work(struct psi_group *group)
| ^~~~~~~~~~~~~~~
>> kernel/sched/psi.c:931:12: error: invalid storage class for function 'psi_rtpoll_worker'
931 | static int psi_rtpoll_worker(void *data)
| ^~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:949:13: error: invalid storage class for function 'poll_timer_fn'
949 | static void poll_timer_fn(struct timer_list *t)
| ^~~~~~~~~~~~~
>> kernel/sched/psi.c:957:13: error: invalid storage class for function 'record_times'
957 | static void record_times(struct psi_group_cpu *groupc, u64 now)
| ^~~~~~~~~~~~
>> kernel/sched/psi.c:990:13: error: invalid storage class for function 'psi_group_change'
990 | static void psi_group_change(struct psi_group *group, int cpu,
| ^~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1106:13: error: invalid storage class for function 'task_is_in_psi_v1'
1106 | static bool task_is_in_psi_v1(void)
| ^~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1112:33: error: invalid storage class for function 'task_psi_group'
1112 | static inline struct psi_group *task_psi_group(struct task_struct *task)
| ^~~~~~~~~~~~~~
kernel/sched/psi.c: In function 'task_psi_group':
kernel/sched/psi.c:1120:52: error: 'cpuacct_cgrp_id' undeclared (first use in this function); did you mean 'cpuset_cgrp_id'?
1120 | cgroup = task_cgroup(task, cpuacct_cgrp_id);
| ^~~~~~~~~~~~~~~
| cpuset_cgrp_id
kernel/sched/psi.c:1120:52: note: each undeclared identifier is reported only once for each function it appears in
kernel/sched/psi.c: In function 'record_stat_times':
kernel/sched/psi.c:1130:13: error: invalid storage class for function 'psi_flags_change'
1130 | static void psi_flags_change(struct task_struct *task, int clear, int set)
| ^~~~~~~~~~~~~~~~
In file included from include/linux/linkage.h:7,
from include/linux/kernel.h:17,
from include/linux/cpumask.h:10,
from include/linux/smp.h:13,
from include/linux/sched/clock.h:5,
from kernel/sched/build_utility.c:12:
kernel/sched/psi.c:1338:19: error: non-static declaration of 'psi_memstall_enter' follows static declaration
1338 | EXPORT_SYMBOL_GPL(psi_memstall_enter);
| ^~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/psi.c:1338:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
1338 | EXPORT_SYMBOL_GPL(psi_memstall_enter);
| ^~~~~~~~~~~~~~~~~
kernel/sched/psi.c:1306:6: note: previous definition of 'psi_memstall_enter' with type 'void(long unsigned int *)'
1306 | void psi_memstall_enter(unsigned long *flags)
| ^~~~~~~~~~~~~~~~~~
kernel/sched/psi.c:1370:19: error: non-static declaration of 'psi_memstall_leave' follows static declaration
1370 | EXPORT_SYMBOL_GPL(psi_memstall_leave);
| ^~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/psi.c:1370:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
1370 | EXPORT_SYMBOL_GPL(psi_memstall_leave);
| ^~~~~~~~~~~~~~~~~
kernel/sched/psi.c:1346:6: note: previous definition of 'psi_memstall_leave' with type 'void(long unsigned int *)'
1346 | void psi_memstall_leave(unsigned long *flags)
| ^~~~~~~~~~~~~~~~~~
In file included from kernel/sched/build_utility.c:101:
kernel/sched/membarrier.c:165:13: error: invalid storage class for function 'ipi_mb'
165 | static void ipi_mb(void *info)
| ^~~~~~
kernel/sched/membarrier.c:170:13: error: invalid storage class for function 'ipi_sync_core'
170 | static void ipi_sync_core(void *info)
| ^~~~~~~~~~~~~
kernel/sched/membarrier.c:187:13: error: invalid storage class for function 'ipi_rseq'
187 | static void ipi_rseq(void *info)
| ^~~~~~~~
kernel/sched/membarrier.c:200:13: error: invalid storage class for function 'ipi_sync_rq_state'
200 | static void ipi_sync_rq_state(void *info)
| ^~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:245:12: error: invalid storage class for function 'membarrier_global_expedited'
245 | static int membarrier_global_expedited(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:310:12: error: invalid storage class for function 'membarrier_private_expedited'
310 | static int membarrier_private_expedited(int flags, int cpu_id)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:426:12: error: invalid storage class for function 'sync_runqueues_membarrier_state'
426 | static int sync_runqueues_membarrier_state(struct mm_struct *mm)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:483:12: error: invalid storage class for function 'membarrier_register_global_expedited'
483 | static int membarrier_register_global_expedited(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:502:12: error: invalid storage class for function 'membarrier_register_private_expedited'
502 | static int membarrier_register_private_expedited(int flags)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:544:12: error: invalid storage class for function 'membarrier_get_registrations'
544 | static int membarrier_get_registrations(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/compiler_types.h:153,
from <command-line>:
include/linux/compiler-gcc.h:132:33: warning: 'alias' attribute ignored [-Wattributes]
132 | #define __diag(s) _Pragma(__diag_str(GCC diagnostic s))
| ^~~~~~~
include/linux/compiler-gcc.h:135:33: note: in expansion of macro '__diag'
135 | #define __diag_GCC_8(s) __diag(s)
| ^~~~~~
include/linux/compiler-gcc.h:123:9: note: in expansion of macro '__diag_GCC_8'
123 | __diag_GCC_ ## version(__diag_GCC_ ## severity s)
| ^~~~~~~~~~~
include/linux/compiler_types.h:444:9: note: in expansion of macro '__diag_GCC'
444 | __diag_ ## compiler(version, ignore, option)
| ^~~~~~~
include/linux/syscalls.h:242:9: note: in expansion of macro '__diag_ignore'
242 | __diag_ignore(GCC, 8, "-Wattribute-alias", \
| ^~~~~~~~~~~~~
include/linux/syscalls.h:230:9: note: in expansion of macro '__SYSCALL_DEFINEx'
230 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
vim +/test_fine_grained_stat +384 kernel/sched/psi.c
a65983d90bfb5e Lu Jialin 2024-01-04 383
a65983d90bfb5e Lu Jialin 2024-01-04 @384 static bool test_fine_grained_stat(unsigned int *stat_tasks,
a65983d90bfb5e Lu Jialin 2024-01-04 385 unsigned int nr_running,
a65983d90bfb5e Lu Jialin 2024-01-04 386 enum psi_stat_states state)
a65983d90bfb5e Lu Jialin 2024-01-04 387 {
a65983d90bfb5e Lu Jialin 2024-01-04 388 switch (state) {
a65983d90bfb5e Lu Jialin 2024-01-04 389 case PSI_MEMCG_RECLAIM_SOME:
a65983d90bfb5e Lu Jialin 2024-01-04 390 return unlikely(stat_tasks[NR_MEMCG_RECLAIM]);
a65983d90bfb5e Lu Jialin 2024-01-04 391 case PSI_MEMCG_RECLAIM_FULL:
a65983d90bfb5e Lu Jialin 2024-01-04 392 return unlikely(stat_tasks[NR_MEMCG_RECLAIM] &&
a65983d90bfb5e Lu Jialin 2024-01-04 393 nr_running == stat_tasks[NR_MEMCG_RECLAIM_RUNNING]);
25d00f6853c3c6 Lu Jialin 2024-01-04 394 case PSI_GLOBAL_RECLAIM_SOME:
25d00f6853c3c6 Lu Jialin 2024-01-04 395 return unlikely(stat_tasks[NR_GLOBAL_RECLAIM]);
25d00f6853c3c6 Lu Jialin 2024-01-04 396 case PSI_GLOBAL_RECLAIM_FULL:
25d00f6853c3c6 Lu Jialin 2024-01-04 397 return unlikely(stat_tasks[NR_GLOBAL_RECLAIM] &&
25d00f6853c3c6 Lu Jialin 2024-01-04 398 nr_running == stat_tasks[NR_GLOBAL_RECLAIM_RUNNING]);
25d00f6853c3c6 Lu Jialin 2024-01-04 399 case PSI_COMPACT_SOME:
25d00f6853c3c6 Lu Jialin 2024-01-04 400 return unlikely(stat_tasks[NR_COMPACT]);
25d00f6853c3c6 Lu Jialin 2024-01-04 401 case PSI_COMPACT_FULL:
25d00f6853c3c6 Lu Jialin 2024-01-04 402 return unlikely(stat_tasks[NR_COMPACT] &&
25d00f6853c3c6 Lu Jialin 2024-01-04 403 nr_running == stat_tasks[NR_COMPACT_RUNNING]);
25d00f6853c3c6 Lu Jialin 2024-01-04 404 case PSI_ASYNC_MEMCG_RECLAIM_SOME:
25d00f6853c3c6 Lu Jialin 2024-01-04 405 return unlikely(stat_tasks[NR_ASYNC_MEMCG_RECLAIM]);
25d00f6853c3c6 Lu Jialin 2024-01-04 406 case PSI_ASYNC_MEMCG_RECLAIM_FULL:
25d00f6853c3c6 Lu Jialin 2024-01-04 407 return unlikely(stat_tasks[NR_ASYNC_MEMCG_RECLAIM] &&
25d00f6853c3c6 Lu Jialin 2024-01-04 408 nr_running == stat_tasks[NR_ASYNC_MEMCG_RECLAIM_RUNNING]);
25d00f6853c3c6 Lu Jialin 2024-01-04 409 case PSI_SWAP_SOME:
25d00f6853c3c6 Lu Jialin 2024-01-04 410 return unlikely(stat_tasks[NR_SWAP]);
25d00f6853c3c6 Lu Jialin 2024-01-04 411 case PSI_SWAP_FULL:
25d00f6853c3c6 Lu Jialin 2024-01-04 412 return unlikely(stat_tasks[NR_SWAP] &&
25d00f6853c3c6 Lu Jialin 2024-01-04 413 nr_running == stat_tasks[NR_SWAP_RUNNING]);
a65983d90bfb5e Lu Jialin 2024-01-04 414 default:
a65983d90bfb5e Lu Jialin 2024-01-04 415 return false;
a65983d90bfb5e Lu Jialin 2024-01-04 416 }
a65983d90bfb5e Lu Jialin 2024-01-04 417 }
a65983d90bfb5e Lu Jialin 2024-01-04 418
a65983d90bfb5e Lu Jialin 2024-01-04 @419 static void psi_group_stat_change(struct psi_group *group, int cpu,
a65983d90bfb5e Lu Jialin 2024-01-04 420 int clear, int set)
a65983d90bfb5e Lu Jialin 2024-01-04 421 {
a65983d90bfb5e Lu Jialin 2024-01-04 422 int t;
a65983d90bfb5e Lu Jialin 2024-01-04 423 u32 state_mask = 0;
a65983d90bfb5e Lu Jialin 2024-01-04 424 enum psi_stat_states s;
a65983d90bfb5e Lu Jialin 2024-01-04 425 struct psi_group_cpu *groupc = per_cpu_ptr(group->pcpu, cpu);
a65983d90bfb5e Lu Jialin 2024-01-04 426
a65983d90bfb5e Lu Jialin 2024-01-04 427 write_seqcount_begin(&groupc->seq);
a65983d90bfb5e Lu Jialin 2024-01-04 428
a65983d90bfb5e Lu Jialin 2024-01-04 429 for (t = 0; clear; clear &= ~(1 << t), t++)
a65983d90bfb5e Lu Jialin 2024-01-04 430 if (clear & (1 << t))
a65983d90bfb5e Lu Jialin 2024-01-04 431 groupc->fine_grained_tasks[t]--;
a65983d90bfb5e Lu Jialin 2024-01-04 432 for (t = 0; set; set &= ~(1 << t), t++)
a65983d90bfb5e Lu Jialin 2024-01-04 433 if (set & (1 << t))
a65983d90bfb5e Lu Jialin 2024-01-04 434 groupc->fine_grained_tasks[t]++;
65494451082298 Lu Jialin 2024-01-04 435 for (s = 0; s < PSI_CPU_CFS_BANDWIDTH_FULL; s++)
a65983d90bfb5e Lu Jialin 2024-01-04 436 if (test_fine_grained_stat(groupc->fine_grained_tasks,
a65983d90bfb5e Lu Jialin 2024-01-04 437 groupc->tasks[NR_RUNNING], s))
a65983d90bfb5e Lu Jialin 2024-01-04 438 state_mask |= (1 << s);
a65983d90bfb5e Lu Jialin 2024-01-04 439 if (unlikely(groupc->state_mask & PSI_ONCPU) &&
a65983d90bfb5e Lu Jialin 2024-01-04 440 cpu_curr(cpu)->memstall_type)
a65983d90bfb5e Lu Jialin 2024-01-04 441 state_mask |= (1 << (cpu_curr(cpu)->memstall_type * 2 - 1));
a65983d90bfb5e Lu Jialin 2024-01-04 442
a65983d90bfb5e Lu Jialin 2024-01-04 443 groupc->fine_grained_state_mask = state_mask;
a65983d90bfb5e Lu Jialin 2024-01-04 444 write_seqcount_end(&groupc->seq);
a65983d90bfb5e Lu Jialin 2024-01-04 445 }
a65983d90bfb5e Lu Jialin 2024-01-04 446
a65983d90bfb5e Lu Jialin 2024-01-04 @447 static void psi_stat_flags_change(struct task_struct *task, int *stat_set,
a65983d90bfb5e Lu Jialin 2024-01-04 448 int *stat_clear, int set, int clear)
a65983d90bfb5e Lu Jialin 2024-01-04 449 {
a65983d90bfb5e Lu Jialin 2024-01-04 450 if (!task->memstall_type)
a65983d90bfb5e Lu Jialin 2024-01-04 451 return;
a65983d90bfb5e Lu Jialin 2024-01-04 452
a65983d90bfb5e Lu Jialin 2024-01-04 453 if (clear) {
a65983d90bfb5e Lu Jialin 2024-01-04 454 if (clear & TSK_MEMSTALL)
a65983d90bfb5e Lu Jialin 2024-01-04 455 *stat_clear |= 1 << (2 * task->memstall_type - 2);
a65983d90bfb5e Lu Jialin 2024-01-04 456 if (clear & TSK_MEMSTALL_RUNNING)
a65983d90bfb5e Lu Jialin 2024-01-04 457 *stat_clear |= 1 << (2 * task->memstall_type - 1);
a65983d90bfb5e Lu Jialin 2024-01-04 458 }
a65983d90bfb5e Lu Jialin 2024-01-04 459 if (set) {
a65983d90bfb5e Lu Jialin 2024-01-04 460 if (set & TSK_MEMSTALL)
a65983d90bfb5e Lu Jialin 2024-01-04 461 *stat_set |= 1 << (2 * task->memstall_type - 2);
a65983d90bfb5e Lu Jialin 2024-01-04 462 if (set & TSK_MEMSTALL_RUNNING)
a65983d90bfb5e Lu Jialin 2024-01-04 463 *stat_set |= 1 << (2 * task->memstall_type - 1);
a65983d90bfb5e Lu Jialin 2024-01-04 464 }
a65983d90bfb5e Lu Jialin 2024-01-04 465 if (!task->in_memstall)
a65983d90bfb5e Lu Jialin 2024-01-04 466 task->memstall_type = 0;
a65983d90bfb5e Lu Jialin 2024-01-04 467 }
a65983d90bfb5e Lu Jialin 2024-01-04 468
0df60cce43301d Lu Jialin 2024-01-04 @469 static void get_recent_stat_times(struct psi_group *group, int cpu,
0df60cce43301d Lu Jialin 2024-01-04 470 enum psi_aggregators aggregator, u64 *stat_delta, u64 nonidle)
0df60cce43301d Lu Jialin 2024-01-04 471 {
0df60cce43301d Lu Jialin 2024-01-04 472 struct psi_group_cpu *groupc = per_cpu_ptr(group->pcpu, cpu);
0df60cce43301d Lu Jialin 2024-01-04 473 u32 times[NR_PSI_STAT_STATES] = {0};
0df60cce43301d Lu Jialin 2024-01-04 474 enum psi_stat_states s;
0df60cce43301d Lu Jialin 2024-01-04 475 u32 delta;
0df60cce43301d Lu Jialin 2024-01-04 476
0df60cce43301d Lu Jialin 2024-01-04 477 memcpy(times, groupc->fine_grained_times, sizeof(groupc->fine_grained_times));
0df60cce43301d Lu Jialin 2024-01-04 478 for (s = 0; s < NR_PSI_STAT_STATES; s++) {
0df60cce43301d Lu Jialin 2024-01-04 479 if (groupc->fine_grained_state_mask & (1 << s))
0df60cce43301d Lu Jialin 2024-01-04 480 times[s] += groupc->fine_grained_times_delta;
0df60cce43301d Lu Jialin 2024-01-04 481 delta = times[s] - groupc->fine_grained_times_prev[aggregator][s];
0df60cce43301d Lu Jialin 2024-01-04 482 groupc->fine_grained_times_prev[aggregator][s] = times[s];
0df60cce43301d Lu Jialin 2024-01-04 483 stat_delta[s] += (u64)delta * nonidle;
0df60cce43301d Lu Jialin 2024-01-04 484 }
0df60cce43301d Lu Jialin 2024-01-04 485 }
a65983d90bfb5e Lu Jialin 2024-01-04 486 #else
a65983d90bfb5e Lu Jialin 2024-01-04 487 static inline void psi_group_stat_change(struct psi_group *group, int cpu,
a65983d90bfb5e Lu Jialin 2024-01-04 488 int clear, int set) {}
a65983d90bfb5e Lu Jialin 2024-01-04 489 static inline void psi_stat_flags_change(struct task_struct *task,
a65983d90bfb5e Lu Jialin 2024-01-04 490 int *stat_set, int *stat_clear,
a65983d90bfb5e Lu Jialin 2024-01-04 491 int set, int clear) {}
a65983d90bfb5e Lu Jialin 2024-01-04 492 #endif
a65983d90bfb5e Lu Jialin 2024-01-04 493
65494451082298 Lu Jialin 2024-01-04 494 #if defined(CONFIG_CFS_BANDWIDTH) && defined(CONFIG_CGROUP_CPUACCT) && \
65494451082298 Lu Jialin 2024-01-04 495 defined(CONFIG_PSI_FINE_GRAINED)
65494451082298 Lu Jialin 2024-01-04 496 static void update_throttle_type(struct task_struct *task, int cpu, bool next)
65494451082298 Lu Jialin 2024-01-04 497 {
65494451082298 Lu Jialin 2024-01-04 498 if (!cgroup_subsys_on_dfl(cpuacct_cgrp_subsys)) {
65494451082298 Lu Jialin 2024-01-04 499 struct cgroup *cpuacct_cgrp;
65494451082298 Lu Jialin 2024-01-04 500 struct psi_group_cpu *groupc;
65494451082298 Lu Jialin 2024-01-04 501 struct task_group *tsk_grp;
65494451082298 Lu Jialin 2024-01-04 502
65494451082298 Lu Jialin 2024-01-04 503 rcu_read_lock();
65494451082298 Lu Jialin 2024-01-04 504 cpuacct_cgrp = task_cgroup(task, cpuacct_cgrp_id);
65494451082298 Lu Jialin 2024-01-04 505 if (cgroup_parent(cpuacct_cgrp)) {
65494451082298 Lu Jialin 2024-01-04 506 groupc = per_cpu_ptr(cgroup_psi(cpuacct_cgrp)->pcpu, cpu);
65494451082298 Lu Jialin 2024-01-04 507 tsk_grp = task_group(task);
65494451082298 Lu Jialin 2024-01-04 508 if (next)
65494451082298 Lu Jialin 2024-01-04 509 groupc->prev_throttle = groupc->cur_throttle;
65494451082298 Lu Jialin 2024-01-04 510 groupc->cur_throttle = tsk_grp->cfs_rq[cpu]->throttled;
65494451082298 Lu Jialin 2024-01-04 511 }
65494451082298 Lu Jialin 2024-01-04 512 rcu_read_unlock();
65494451082298 Lu Jialin 2024-01-04 513 }
65494451082298 Lu Jialin 2024-01-04 514 }
65494451082298 Lu Jialin 2024-01-04 515 #else
65494451082298 Lu Jialin 2024-01-04 @516 static inline void update_throttle_type(struct task_struct *task, int cpu,
65494451082298 Lu Jialin 2024-01-04 517 bool next) {}
65494451082298 Lu Jialin 2024-01-04 518 #endif
65494451082298 Lu Jialin 2024-01-04 519
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @520 static void collect_percpu_times(struct psi_group *group,
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 521 enum psi_aggregators aggregator,
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 522 u32 *pchanged_states)
eb414681d5a07d Johannes Weiner 2018-10-26 523 {
0df60cce43301d Lu Jialin 2024-01-04 524 #ifdef CONFIG_PSI_FINE_GRAINED
0df60cce43301d Lu Jialin 2024-01-04 525 u64 stat_delta[NR_PSI_STAT_STATES] = { 0 };
0df60cce43301d Lu Jialin 2024-01-04 526 #endif
eb414681d5a07d Johannes Weiner 2018-10-26 527 u64 deltas[NR_PSI_STATES - 1] = { 0, };
eb414681d5a07d Johannes Weiner 2018-10-26 528 unsigned long nonidle_total = 0;
333f3017c5a893 Suren Baghdasaryan 2019-05-14 529 u32 changed_states = 0;
eb414681d5a07d Johannes Weiner 2018-10-26 530 int cpu;
eb414681d5a07d Johannes Weiner 2018-10-26 531 int s;
eb414681d5a07d Johannes Weiner 2018-10-26 532
eb414681d5a07d Johannes Weiner 2018-10-26 533 /*
eb414681d5a07d Johannes Weiner 2018-10-26 534 * Collect the per-cpu time buckets and average them into a
eb414681d5a07d Johannes Weiner 2018-10-26 535 * single time sample that is normalized to wallclock time.
eb414681d5a07d Johannes Weiner 2018-10-26 536 *
eb414681d5a07d Johannes Weiner 2018-10-26 537 * For averaging, each CPU is weighted by its non-idle time in
eb414681d5a07d Johannes Weiner 2018-10-26 538 * the sampling period. This eliminates artifacts from uneven
eb414681d5a07d Johannes Weiner 2018-10-26 539 * loading, or even entirely idle CPUs.
eb414681d5a07d Johannes Weiner 2018-10-26 540 */
eb414681d5a07d Johannes Weiner 2018-10-26 541 for_each_possible_cpu(cpu) {
eb414681d5a07d Johannes Weiner 2018-10-26 542 u32 times[NR_PSI_STATES];
eb414681d5a07d Johannes Weiner 2018-10-26 543 u32 nonidle;
333f3017c5a893 Suren Baghdasaryan 2019-05-14 544 u32 cpu_changed_states;
eb414681d5a07d Johannes Weiner 2018-10-26 545
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 546 get_recent_times(group, cpu, aggregator, times,
333f3017c5a893 Suren Baghdasaryan 2019-05-14 547 &cpu_changed_states);
333f3017c5a893 Suren Baghdasaryan 2019-05-14 548 changed_states |= cpu_changed_states;
eb414681d5a07d Johannes Weiner 2018-10-26 549
eb414681d5a07d Johannes Weiner 2018-10-26 550 nonidle = nsecs_to_jiffies(times[PSI_NONIDLE]);
eb414681d5a07d Johannes Weiner 2018-10-26 551 nonidle_total += nonidle;
eb414681d5a07d Johannes Weiner 2018-10-26 552
eb414681d5a07d Johannes Weiner 2018-10-26 553 for (s = 0; s < PSI_NONIDLE; s++)
eb414681d5a07d Johannes Weiner 2018-10-26 554 deltas[s] += (u64)times[s] * nonidle;
0df60cce43301d Lu Jialin 2024-01-04 555 #ifdef CONFIG_PSI_FINE_GRAINED
0df60cce43301d Lu Jialin 2024-01-04 556 get_recent_stat_times(group, cpu, aggregator, stat_delta, nonidle);
0df60cce43301d Lu Jialin 2024-01-04 557 #endif
eb414681d5a07d Johannes Weiner 2018-10-26 558 }
eb414681d5a07d Johannes Weiner 2018-10-26 559
eb414681d5a07d Johannes Weiner 2018-10-26 560 /*
eb414681d5a07d Johannes Weiner 2018-10-26 561 * Integrate the sample into the running statistics that are
eb414681d5a07d Johannes Weiner 2018-10-26 562 * reported to userspace: the cumulative stall times and the
eb414681d5a07d Johannes Weiner 2018-10-26 563 * decaying averages.
eb414681d5a07d Johannes Weiner 2018-10-26 564 *
eb414681d5a07d Johannes Weiner 2018-10-26 565 * Pressure percentages are sampled at PSI_FREQ. We might be
eb414681d5a07d Johannes Weiner 2018-10-26 566 * called more often when the user polls more frequently than
eb414681d5a07d Johannes Weiner 2018-10-26 567 * that; we might be called less often when there is no task
eb414681d5a07d Johannes Weiner 2018-10-26 568 * activity, thus no data, and clock ticks are sporadic. The
eb414681d5a07d Johannes Weiner 2018-10-26 569 * below handles both.
eb414681d5a07d Johannes Weiner 2018-10-26 570 */
eb414681d5a07d Johannes Weiner 2018-10-26 571
eb414681d5a07d Johannes Weiner 2018-10-26 572 /* total= */
eb414681d5a07d Johannes Weiner 2018-10-26 573 for (s = 0; s < NR_PSI_STATES - 1; s++)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 574 group->total[aggregator][s] +=
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 575 div_u64(deltas[s], max(nonidle_total, 1UL));
eb414681d5a07d Johannes Weiner 2018-10-26 576
:::::: The code at line 384 was first introduced by commit
:::::: a65983d90bfb5e031444fea492b32f931c83ffcf sched/psi: Introduce fine grained stall time collect for cgroup reclaim
:::::: TO: Lu Jialin <lujialin4(a)huawei.com>
:::::: CC: yanhaitao <yanhaitao2(a)huawei.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0