Kernel
Threads by month
- ----- 2025 -----
- 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
- 55 participants
- 16911 discussions

17 Feb '25
From: Lorenzo Stoakes <lorenzo.stoakes(a)oracle.com>
stable inclusion
from stable-v6.6.63
commit bdc136e2b05fabcd780fe5f165d154eb779dfcb0
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IB7051
CVE: CVE-2024-53096
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 5de195060b2e251a835f622759550e6202167641 ]
The mmap_region() function is somewhat terrifying, with spaghetti-like
control flow and numerous means by which issues can arise and incomplete
state, memory leaks and other unpleasantness can occur.
A large amount of the complexity arises from trying to handle errors late
in the process of mapping a VMA, which forms the basis of recently
observed issues with resource leaks and observable inconsistent state.
Taking advantage of previous patches in this series we move a number of
checks earlier in the code, simplifying things by moving the core of the
logic into a static internal function __mmap_region().
Doing this allows us to perform a number of checks up front before we do
any real work, and allows us to unwind the writable unmap check
unconditionally as required and to perform a CONFIG_DEBUG_VM_MAPLE_TREE
validation unconditionally also.
We move a number of things here:
1. We preallocate memory for the iterator before we call the file-backed
memory hook, allowing us to exit early and avoid having to perform
complicated and error-prone close/free logic. We carefully free
iterator state on both success and error paths.
2. The enclosing mmap_region() function handles the mapping_map_writable()
logic early. Previously the logic had the mapping_map_writable() at the
point of mapping a newly allocated file-backed VMA, and a matching
mapping_unmap_writable() on success and error paths.
We now do this unconditionally if this is a file-backed, shared writable
mapping. If a driver changes the flags to eliminate VM_MAYWRITE, however
doing so does not invalidate the seal check we just performed, and we in
any case always decrement the counter in the wrapper.
We perform a debug assert to ensure a driver does not attempt to do the
opposite.
3. We also move arch_validate_flags() up into the mmap_region()
function. This is only relevant on arm64 and sparc64, and the check is
only meaningful for SPARC with ADI enabled. We explicitly add a warning
for this arch if a driver invalidates this check, though the code ought
eventually to be fixed to eliminate the need for this.
With all of these measures in place, we no longer need to explicitly close
the VMA on error paths, as we place all checks which might fail prior to a
call to any driver mmap hook.
This eliminates an entire class of errors, makes the code easier to reason
about and more robust.
Link: https://lkml.kernel.org/r/6e0becb36d2f5472053ac5d544c0edfe9b899e25.17302246…
Fixes: deb0f6562884 ("mm/mmap: undo ->mmap() when arch_validate_flags() fails")
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes(a)oracle.com>
Reported-by: Jann Horn <jannh(a)google.com>
Reviewed-by: Liam R. Howlett <Liam.Howlett(a)oracle.com>
Reviewed-by: Vlastimil Babka <vbabka(a)suse.cz>
Tested-by: Mark Brown <broonie(a)kernel.org>
Cc: Andreas Larsson <andreas(a)gaisler.com>
Cc: Catalin Marinas <catalin.marinas(a)arm.com>
Cc: David S. Miller <davem(a)davemloft.net>
Cc: Helge Deller <deller(a)gmx.de>
Cc: James E.J. Bottomley <James.Bottomley(a)HansenPartnership.com>
Cc: Linus Torvalds <torvalds(a)linux-foundation.org>
Cc: Peter Xu <peterx(a)redhat.com>
Cc: Will Deacon <will(a)kernel.org>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes(a)oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Conflicts:
mm/mmap.c
[Ma Wupeng: conflict with ascend's modify on mmap]
Signed-off-by: Ma Wupeng <mawupeng1(a)huawei.com>
---
mm/mmap.c | 128 +++++++++++++++++++++++++++++++-----------------------
1 file changed, 73 insertions(+), 55 deletions(-)
diff --git a/mm/mmap.c b/mm/mmap.c
index 266025c0f6183..4a36526d8caf8 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1254,7 +1254,7 @@ static inline bool file_mmap_ok(struct file *file, struct inode *inode,
return true;
}
-static unsigned long __mmap_region(struct mm_struct *mm,
+static unsigned long __mmap_region_ext(struct mm_struct *mm,
struct file *file, unsigned long addr,
unsigned long len, vm_flags_t vm_flags,
unsigned long pgoff, struct list_head *uf);
@@ -1431,7 +1431,7 @@ unsigned long __do_mmap_mm(struct mm_struct *mm, struct file *file, unsigned lon
vm_flags |= VM_NORESERVE;
}
- addr = __mmap_region(mm, file, addr, len, vm_flags, pgoff, uf);
+ addr = __mmap_region_ext(mm, file, addr, len, vm_flags, pgoff, uf);
if (!IS_ERR_VALUE(addr) &&
((vm_flags & VM_LOCKED) ||
(flags & (MAP_POPULATE | MAP_NONBLOCK)) == MAP_POPULATE))
@@ -2739,14 +2739,14 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len,
return do_vmi_munmap(&vmi, mm, start, len, uf, false);
}
-static unsigned long __mmap_region(struct mm_struct *mm,
- struct file *file, unsigned long addr,
- unsigned long len, vm_flags_t vm_flags,
- unsigned long pgoff, struct list_head *uf)
+static unsigned long __mmap_region(struct mm_struct *mm, struct file *file,
+ unsigned long addr, unsigned long len,
+ vm_flags_t vm_flags, unsigned long pgoff,
+ struct list_head *uf)
{
struct vm_area_struct *vma = NULL;
struct vm_area_struct *next, *prev, *merge;
- pgoff_t pglen = len >> PAGE_SHIFT;
+ pgoff_t pglen = PHYS_PFN(len);
unsigned long charged = 0;
unsigned long end = addr + len;
unsigned long merge_start = addr, merge_end = end;
@@ -2843,25 +2843,26 @@ static unsigned long __mmap_region(struct mm_struct *mm,
vma->vm_page_prot = vm_get_page_prot(vm_flags);
vma->vm_pgoff = pgoff;
- if (file) {
- if (vm_flags & VM_SHARED) {
- error = mapping_map_writable(file->f_mapping);
- if (error)
- goto free_vma;
- }
+ if (vma_iter_prealloc(&vmi, vma)) {
+ error = -ENOMEM;
+ goto free_vma;
+ }
+ if (file) {
vma->vm_file = get_file(file);
error = call_mmap(file, vma);
if (error)
- goto unmap_and_free_vma;
+ goto unmap_and_free_file_vma;
+ /* Drivers cannot alter the address of the VMA. */
+ WARN_ON_ONCE(addr != vma->vm_start);
/*
- * Expansion is handled above, merging is handled below.
- * Drivers should not alter the address of the VMA.
+ * Drivers should not permit writability when previously it was
+ * disallowed.
*/
- error = -EINVAL;
- if (WARN_ON((addr != vma->vm_start)))
- goto close_and_free_vma;
+ VM_WARN_ON_ONCE(vm_flags != vma->vm_flags &&
+ !(vm_flags & VM_MAYWRITE) &&
+ (vma->vm_flags & VM_MAYWRITE));
vma_iter_config(&vmi, addr, end);
/*
@@ -2873,6 +2874,7 @@ static unsigned long __mmap_region(struct mm_struct *mm,
vma->vm_end, vma->vm_flags, NULL,
vma->vm_file, vma->vm_pgoff, NULL,
NULL_VM_UFFD_CTX, NULL);
+
if (merge) {
/*
* ->mmap() can change vma->vm_file and fput
@@ -2886,7 +2888,7 @@ static unsigned long __mmap_region(struct mm_struct *mm,
vma = merge;
/* Update vm_flags to pick up the change. */
vm_flags = vma->vm_flags;
- goto unmap_writable;
+ goto file_expanded;
}
}
@@ -2894,24 +2896,15 @@ static unsigned long __mmap_region(struct mm_struct *mm,
} else if (vm_flags & VM_SHARED) {
error = shmem_zero_setup(vma);
if (error)
- goto free_vma;
+ goto free_iter_vma;
} else {
vma_set_anonymous(vma);
}
- if (map_deny_write_exec(vma->vm_flags, vma->vm_flags)) {
- error = -EACCES;
- goto close_and_free_vma;
- }
-
- /* Allow architectures to sanity-check the vm_flags */
- error = -EINVAL;
- if (!arch_validate_flags(vma->vm_flags))
- goto close_and_free_vma;
-
- error = -ENOMEM;
- if (vma_iter_prealloc(&vmi, vma))
- goto close_and_free_vma;
+#ifdef CONFIG_SPARC64
+ /* TODO: Fix SPARC ADI! */
+ WARN_ON_ONCE(!arch_validate_flags(vm_flags));
+#endif
/* Lock the VMA since it is modified after insertion into VMA tree */
vma_start_write(vma);
@@ -2925,10 +2918,7 @@ static unsigned long __mmap_region(struct mm_struct *mm,
*/
khugepaged_enter_vma(vma, vma->vm_flags);
- /* Once vma denies write, undo our temporary denial count */
-unmap_writable:
- if (file && vm_flags & VM_SHARED)
- mapping_unmap_writable(file->f_mapping);
+file_expanded:
file = vma->vm_file;
ksm_add_vma(vma);
expanded:
@@ -2958,38 +2948,66 @@ static unsigned long __mmap_region(struct mm_struct *mm,
vma_set_page_prot(vma);
- validate_mm(mm);
return addr;
-close_and_free_vma:
- vma_close(vma);
-
- if (file || vma->vm_file) {
-unmap_and_free_vma:
- fput(vma->vm_file);
- vma->vm_file = NULL;
+unmap_and_free_file_vma:
+ fput(vma->vm_file);
+ vma->vm_file = NULL;
- vma_iter_set(&vmi, vma->vm_end);
- /* Undo any partial mapping done by a device driver. */
- unmap_region(mm, &vmi.mas, vma, prev, next, vma->vm_start,
- vma->vm_end, vma->vm_end, true);
- }
- if (file && (vm_flags & VM_SHARED))
- mapping_unmap_writable(file->f_mapping);
+ vma_iter_set(&vmi, vma->vm_end);
+ /* Undo any partial mapping done by a device driver. */
+ unmap_region(mm, &vmi.mas, vma, prev, next, vma->vm_start,
+ vma->vm_end, vma->vm_end, true);
+free_iter_vma:
+ vma_iter_free(&vmi);
free_vma:
vm_area_free(vma);
unacct_error:
if (charged)
vm_unacct_memory(charged);
- validate_mm(mm);
return error;
}
+static unsigned long __mmap_region_ext(struct mm_struct *mm, struct file *file,
+ unsigned long addr, unsigned long len,
+ vm_flags_t vm_flags, unsigned long pgoff,
+ struct list_head *uf)
+{
+ unsigned long ret;
+ bool writable_file_mapping = false;
+
+ /* Check to see if MDWE is applicable. */
+ if (map_deny_write_exec(vm_flags, vm_flags))
+ return -EACCES;
+
+ /* Allow architectures to sanity-check the vm_flags. */
+ if (!arch_validate_flags(vm_flags))
+ return -EINVAL;
+
+ /* Map writable and ensure this isn't a sealed memfd. */
+ if (file && (vm_flags & VM_SHARED)) {
+ int error = mapping_map_writable(file->f_mapping);
+
+ if (error)
+ return error;
+ writable_file_mapping = true;
+ }
+
+ ret = __mmap_region(mm, file, addr, len, vm_flags, pgoff, uf);
+
+ /* Clear our write mapping regardless of error. */
+ if (writable_file_mapping)
+ mapping_unmap_writable(file->f_mapping);
+
+ validate_mm(current->mm);
+ return ret;
+}
+
unsigned long mmap_region(struct file *file, unsigned long addr,
unsigned long len, vm_flags_t vm_flags, unsigned long pgoff,
struct list_head *uf)
{
- return __mmap_region(current->mm, file, addr, len, vm_flags, pgoff, uf);
+ return __mmap_region_ext(current->mm, file, addr, len, vm_flags, pgoff, uf);
}
static int __vm_munmap(unsigned long start, size_t len, bool unlock)
--
2.43.0
2
1

[PATCH OLK-6.6] iio: adc: at91: call input_free_device() on allocated iio_dev
by Wupeng Ma 17 Feb '25
by Wupeng Ma 17 Feb '25
17 Feb '25
From: Joe Hattori <joe(a)pf.is.s.u-tokyo.ac.jp>
stable inclusion
from stable-v6.6.72
commit 09e067e3c83e0695d338e8a26916e3c2bc44be02
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBIQWA
CVE: CVE-2024-57904
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit de6a73bad1743e9e81ea5a24c178c67429ff510b upstream.
Current implementation of at91_ts_register() calls input_free_deivce()
on st->ts_input, however, the err label can be reached before the
allocated iio_dev is stored to st->ts_input. Thus call
input_free_device() on input instead of st->ts_input.
Fixes: 84882b060301 ("iio: adc: at91_adc: Add support for touchscreens without TSMR")
Signed-off-by: Joe Hattori <joe(a)pf.is.s.u-tokyo.ac.jp>
Link: https://patch.msgid.link/20241207043045.1255409-1-joe@pf.is.s.u-tokyo.ac.jp
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron(a)huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Ma Wupeng <mawupeng1(a)huawei.com>
---
drivers/iio/adc/at91_adc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
index de6650f9c4b1c..55f0c1afe505e 100644
--- a/drivers/iio/adc/at91_adc.c
+++ b/drivers/iio/adc/at91_adc.c
@@ -984,7 +984,7 @@ static int at91_ts_register(struct iio_dev *idev,
return ret;
err:
- input_free_device(st->ts_input);
+ input_free_device(input);
return ret;
}
--
2.43.0
2
1

[openeuler:OLK-5.10] BUILD REGRESSION e804018e3930644594e31fd711068f5d48ae05af
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
tree/branch: https://gitee.com/openeuler/kernel.git OLK-5.10
branch HEAD: e804018e3930644594e31fd711068f5d48ae05af !15081 usb: typec: fix potential out of bounds in ucsi_ccg_update_set_new_cam_cmd()
Error/Warning (recently discovered and may have been fixed):
https://lore.kernel.org/oe-kbuild-all/202502161355.thfOP2mL-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202502161959.kat8z9E7-lkp@intel.com
fs/afs/vl_alias.o: warning: objtool: afs_compare_volume_slists()+0x21c: unreachable instruction
mm/page_alloc.c:3036:6: warning: no previous prototype for '__drain_all_pages' [-Wmissing-prototypes]
mm/page_alloc.c:3036:6: warning: no previous prototype for function '__drain_all_pages' [-Wmissing-prototypes]
mm/page_alloc.c:6634:6: warning: no previous prototype for '__zone_set_pageset_high_and_batch' [-Wmissing-prototypes]
mm/page_alloc.c:6634:6: warning: no previous prototype for function '__zone_set_pageset_high_and_batch' [-Wmissing-prototypes]
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allnoconfig
| |-- include-linux-backing-dev.h:warning:struct-cgroup_subsys-declared-inside-parameter-list-will-not-be-visible-outside-of-this-definition-or-declaration
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-BPF_NET_GLOBAL_PROG-when-selected-by-SCHED_TASK_RELATIONSHIP
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-DRM_PANEL_BRIDGE-when-selected-by-DRM_TOSHIBA_TC358762
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PCI_IOV-when-selected-by-CRYPTO_DEV_HISI_MIGRATION
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-SERIAL_EARLYCON-when-selected-by-SERIAL_IMX_EARLYCON
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-SND_SOC_DMIC-when-selected-by-SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-SND_SOC_DMIC-when-selected-by-SND_SOC_STM32_DFSDM
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-TASK_PLACEMENT_BY_CPU_RANGE-when-selected-by-BPF_SCHED
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__drain_all_pages
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__zone_set_pageset_high_and_batch
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- arm64-defconfig
| |-- include-linux-lsm_hook_defs.h:warning:file_ioctl_compat_default-defined-but-not-used
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_file
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__drain_all_pages
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__zone_set_pageset_high_and_batch
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- arm64-randconfig-001-20250216
| |-- include-trace-trace_events.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_file
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- arm64-randconfig-003-20250216
| |-- include-linux-lsm_hook_defs.h:warning:file_ioctl_compat_default-defined-but-not-used
| |-- include-trace-trace_events.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- arm64-randconfig-004-20250216
| |-- include-trace-trace_events.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- x86_64-allnoconfig
| |-- Warning:arch-x86-kernel-cpu-resctrl-monitor.c-references-a-file-that-doesn-t-exist:Documentation-x86-resctrl.rst
| |-- drivers-scsi-linkdata-ps3stor-linux-ps3_base.c:linux-version.h-not-needed.
| |-- drivers-scsi-linkdata-ps3stor-linux-ps3_base.c:ps3_driver_log.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-linux-ps3_base.c:ps3_scsi_cmd_err.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-linux-ps3_cli.c:linux-version.h-not-needed.
| |-- drivers-scsi-linkdata-ps3stor-linux-ps3_driver_log.c:linux-version.h-not-needed.
| |-- drivers-scsi-linkdata-ps3stor-linux-ps3_dump.c:linux-uaccess.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:ps3_htp_def.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:ps3_instance_manager.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:scsi-scsi_tcq.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.h:linux-version.h-not-needed.
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.h:linux-version.h-not-needed.
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_update.c:linux-mutex.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_update.c:ps3_device_update.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_instance_manager.h:ps3_cmd_channel.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_instance_manager.h:ps3_inner_data.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_instance_manager.h:ps3_irq.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:ps3_scsih.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:linux-mutex.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:linux-kernel.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_mgr_channel.c:ps3_cmd_complete.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_mgr_cmd.c:linux-mutex.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:linux-version.h-not-needed.
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:ps3_driver_log.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.h:linux-version.h-not-needed.
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:ps3_ioc_state.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:ps3_recovery.h-is-included-more-than-once.
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.h:linux-version.h-not-needed.
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:linux-version.h-not-needed.
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsih.c:ps3_module_para.h-is-included-more-than-once.
| |-- include-linux-blk_types.h:linux-kabi.h-is-included-more-than-once.
| |-- include-linux-cred.h:linux-kabi.h-is-included-more-than-once.
| |-- include-linux-device-class.h:linux-kabi.h-is-included-more-than-once.
| |-- include-linux-device.h:linux-kabi.h-is-included-more-than-once.
| |-- include-linux-ioport.h:linux-kabi.h-is-included-more-than-once.
| |-- include-linux-mm.h:linux-kabi.h-is-included-more-than-once.
| |-- include-linux-swap.h:linux-kabi.h-is-included-more-than-once.
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-BPF_NET_GLOBAL_PROG-when-selected-by-SCHED_TASK_RELATIONSHIP
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-DRM_PANEL_BRIDGE-when-selected-by-DRM_TOSHIBA_TC358762
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-SERIAL_EARLYCON-when-selected-by-SERIAL_IMX_EARLYCON
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-SND_SOC_DMIC-when-selected-by-SND_SOC_AMD_RENOIR_MACH
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-SND_SOC_DMIC-when-selected-by-SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-SND_SOC_DMIC-when-selected-by-SND_SOC_STM32_DFSDM
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-TASK_PLACEMENT_BY_CPU_RANGE-when-selected-by-BPF_SCHED
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- x86_64-allyesconfig
| |-- arch-x86-kernel-cpu-resctrl-rdtgroup.c:warning:variable-h-set-but-not-used
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_data-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Excess-function-parameter-_datalen-description-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-data-not-described-in-pgp_parse_packets
| |-- crypto-asymmetric_keys-pgp_library.c:warning:Function-parameter-or-member-datalen-not-described-in-pgp_parse_packets
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete_exit-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-function-ps3_dump_context_show-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_close-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_open-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_write-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_filename_build-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_local_time-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_resp_status_convert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_trigger_irq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_cmd_stat_content_clear-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_io_recv_ok_stat_inc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-function-ps3_dump_dir_length-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_pd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_vd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-function-ps3_sas_expander_phys_refresh-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_hba-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_raid-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_switch-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-function-ps3_hard_reset_to_ready-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-function-ps3_clean_mgr_cmd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_module_para.c:error:no-previous-prototype-for-function-ps3_cli_ver_query-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_cmd_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_reset-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_notify-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clean-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_all_pd_rc_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_cmd_waitq_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_exclusive_cmdword_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_pd_waitq_ratio_update-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_tg_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_vd_cmdword_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_conflict_queue_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_check-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_range_check_and_insert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-function-rbtDelNodeDo-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_hard_recovery_state_finish-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_alloc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_delete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_free-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_irq_queue_destroy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_state_transfer-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-function-ps3_sas_update_phy_info-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_set_task_manager_busy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_wait_for_outstanding_complete-Werror-Wmissing-prototypes
| |-- mm-damon-core-test.h:warning:comparison-of-distinct-pointer-types-(-typeof-(__left)-(aka-unsigned-int-)-and-typeof-(__right)-(aka-int-))
| |-- mm-hugetlb.c:warning:variable-gfp-set-but-not-used
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_file
| `-- mm-mem_reliable.c:warning:arithmetic-between-different-enumeration-types-(-enum-node_stat_item-and-enum-lru_list-)
|-- x86_64-buildonly-randconfig-001-20250216
| |-- fs-afs-vl_alias.o:warning:objtool:afs_compare_volume_slists:unreachable-instruction
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__drain_all_pages
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__zone_set_pageset_high_and_batch
|-- x86_64-buildonly-randconfig-002-20250216
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__drain_all_pages
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__zone_set_pageset_high_and_batch
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- x86_64-buildonly-randconfig-003-20250216
| |-- include-trace-trace_events.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- x86_64-buildonly-randconfig-004-20250216
| |-- drivers-platform-x86-toshiba_acpi.c:warning:fan_proc_ops-defined-but-not-used
| |-- drivers-platform-x86-toshiba_acpi.c:warning:keys_proc_ops-defined-but-not-used
| |-- drivers-platform-x86-toshiba_acpi.c:warning:lcd_proc_ops-defined-but-not-used
| |-- drivers-platform-x86-toshiba_acpi.c:warning:video_proc_ops-defined-but-not-used
| |-- include-trace-trace_events.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_file
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- x86_64-buildonly-randconfig-005-20250216
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- x86_64-buildonly-randconfig-006-20250216
| |-- include-trace-trace_events.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- x86_64-defconfig
| |-- include-linux-lsm_hook_defs.h:warning:file_ioctl_compat_default-defined-but-not-used
| |-- include-trace-trace_events.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- x86_64-randconfig-101-20250216
| |-- include-trace-trace_events.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__drain_all_pages
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__zone_set_pageset_high_and_batch
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- x86_64-randconfig-102-20250216
| |-- arch-x86-kernel-cpu-resctrl-rdtgroup.c:warning:variable-h-set-but-not-used
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__drain_all_pages
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__zone_set_pageset_high_and_batch
|-- x86_64-randconfig-103-20250216
| |-- include-trace-trace_events.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__drain_all_pages
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__zone_set_pageset_high_and_batch
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- x86_64-randconfig-104-20250216
| |-- include-trace-trace_events.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_file
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__drain_all_pages
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__zone_set_pageset_high_and_batch
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
`-- x86_64-randconfig-161-20250216
|-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
|-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
|-- mm-hugetlb.c:warning:variable-gfp-set-but-not-used
|-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_file
|-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__drain_all_pages
`-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__zone_set_pageset_high_and_batch
elapsed time: 726m
configs tested: 16
configs skipped: 129
tested configs:
arm64 allmodconfig clang-18
arm64 allnoconfig gcc-14.2.0
arm64 defconfig gcc-14.2.0
arm64 randconfig-001-20250216 gcc-14.2.0
arm64 randconfig-002-20250216 clang-21
arm64 randconfig-003-20250216 gcc-14.2.0
arm64 randconfig-004-20250216 gcc-14.2.0
x86_64 allnoconfig clang-19
x86_64 allyesconfig clang-19
x86_64 buildonly-randconfig-001-20250216 clang-19
x86_64 buildonly-randconfig-002-20250216 gcc-12
x86_64 buildonly-randconfig-003-20250216 gcc-12
x86_64 buildonly-randconfig-004-20250216 gcc-12
x86_64 buildonly-randconfig-005-20250216 gcc-12
x86_64 buildonly-randconfig-006-20250216 gcc-12
x86_64 defconfig gcc-11
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-5.10 2740/2740] fs/afs/vl_alias.o: warning: objtool: afs_compare_volume_slists()+0x21c: unreachable instruction
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: e804018e3930644594e31fd711068f5d48ae05af
commit: a8cd7bb0c2528d3afe29db0be10841671df41b5d [2740/2740] afs: Fix afs_server_list to be cleaned up with RCU
config: x86_64-buildonly-randconfig-001-20250216 (https://download.01.org/0day-ci/archive/20250216/202502161959.kat8z9E7-lkp@…)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502161959.kat8z9E7-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/202502161959.kat8z9E7-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> fs/afs/vl_alias.o: warning: objtool: afs_compare_volume_slists()+0x21c: unreachable instruction
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-5.10 2740/2740] mm/page_alloc.c:3036:6: warning: no previous prototype for '__drain_all_pages'
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
Hi Vlastimil,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: e804018e3930644594e31fd711068f5d48ae05af
commit: e037ee4a8deaff7c579618c0aba1f066d6d14b11 [2740/2740] mm, page_alloc: disable pcplists during memory offline
config: x86_64-buildonly-randconfig-002-20250216 (https://download.01.org/0day-ci/archive/20250216/202502161355.thfOP2mL-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/20250216/202502161355.thfOP2mL-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/202502161355.thfOP2mL-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> mm/page_alloc.c:3036:6: warning: no previous prototype for '__drain_all_pages' [-Wmissing-prototypes]
3036 | void __drain_all_pages(struct zone *zone, bool force_all_cpus)
| ^~~~~~~~~~~~~~~~~
mm/page_alloc.c:3586:15: warning: no previous prototype for 'should_fail_alloc_page' [-Wmissing-prototypes]
3586 | noinline bool should_fail_alloc_page(gfp_t gfp_mask, unsigned int order)
| ^~~~~~~~~~~~~~~~~~~~~~
mm/page_alloc.c:6497:20: warning: no previous prototype for 'memmap_init' [-Wmissing-prototypes]
6497 | void __init __weak memmap_init(void)
| ^~~~~~~~~~~
mm/page_alloc.c:6535:23: warning: no previous prototype for 'arch_memmap_init' [-Wmissing-prototypes]
6535 | void __meminit __weak arch_memmap_init(unsigned long size, int nid,
| ^~~~~~~~~~~~~~~~
>> mm/page_alloc.c:6634:6: warning: no previous prototype for '__zone_set_pageset_high_and_batch' [-Wmissing-prototypes]
6634 | void __zone_set_pageset_high_and_batch(struct zone *zone, unsigned long high,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/page_alloc.c: In function 'mem_init_print_info':
mm/page_alloc.c:7911:27: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7915:9: note: in expansion of macro 'adj_init_size'
7915 | adj_init_size(__init_begin, __init_end, init_data_size,
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: note: use '&__init_begin[0] <= &_sinittext[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7915:9: note: in expansion of macro 'adj_init_size'
7915 | adj_init_size(__init_begin, __init_end, init_data_size,
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7915:9: note: in expansion of macro 'adj_init_size'
7915 | adj_init_size(__init_begin, __init_end, init_data_size,
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: note: use '&_sinittext[0] < &__init_end[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7915:9: note: in expansion of macro 'adj_init_size'
7915 | adj_init_size(__init_begin, __init_end, init_data_size,
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7917:9: note: in expansion of macro 'adj_init_size'
7917 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: note: use '&_stext[0] <= &_sinittext[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7917:9: note: in expansion of macro 'adj_init_size'
7917 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7917:9: note: in expansion of macro 'adj_init_size'
7917 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: note: use '&_sinittext[0] < &_etext[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7917:9: note: in expansion of macro 'adj_init_size'
7917 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7918:9: note: in expansion of macro 'adj_init_size'
7918 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: note: use '&_sdata[0] <= &__init_begin[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7918:9: note: in expansion of macro 'adj_init_size'
7918 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7918:9: note: in expansion of macro 'adj_init_size'
7918 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: note: use '&__init_begin[0] < &_edata[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7918:9: note: in expansion of macro 'adj_init_size'
7918 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7919:9: note: in expansion of macro 'adj_init_size'
7919 | adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: note: use '&_stext[0] <= &__start_rodata[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7919:9: note: in expansion of macro 'adj_init_size'
7919 | adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7919:9: note: in expansion of macro 'adj_init_size'
7919 | adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: note: use '&__start_rodata[0] < &_etext[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7919:9: note: in expansion of macro 'adj_init_size'
7919 | adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: warning: comparison between two arrays [-Warray-compare]
vim +/__drain_all_pages +3036 mm/page_alloc.c
3025
3026 /*
3027 * The implementation of drain_all_pages(), exposing an extra parameter to
3028 * drain on all cpus.
3029 *
3030 * drain_all_pages() is optimized to only execute on cpus where pcplists are
3031 * not empty. The check for non-emptiness can however race with a free to
3032 * pcplist that has not yet increased the pcp->count from 0 to 1. Callers
3033 * that need the guarantee that every CPU has drained can disable the
3034 * optimizing racy check.
3035 */
> 3036 void __drain_all_pages(struct zone *zone, bool force_all_cpus)
3037 {
3038 int cpu;
3039
3040 /*
3041 * Allocate in the BSS so we wont require allocation in
3042 * direct reclaim path for CONFIG_CPUMASK_OFFSTACK=y
3043 */
3044 static cpumask_t cpus_with_pcps;
3045
3046 /*
3047 * Make sure nobody triggers this path before mm_percpu_wq is fully
3048 * initialized.
3049 */
3050 if (WARN_ON_ONCE(!mm_percpu_wq))
3051 return;
3052
3053 /*
3054 * Do not drain if one is already in progress unless it's specific to
3055 * a zone. Such callers are primarily CMA and memory hotplug and need
3056 * the drain to be complete when the call returns.
3057 */
3058 if (unlikely(!mutex_trylock(&pcpu_drain_mutex))) {
3059 if (!zone)
3060 return;
3061 mutex_lock(&pcpu_drain_mutex);
3062 }
3063
3064 /*
3065 * We don't care about racing with CPU hotplug event
3066 * as offline notification will cause the notified
3067 * cpu to drain that CPU pcps and on_each_cpu_mask
3068 * disables preemption as part of its processing
3069 */
3070 for_each_online_cpu(cpu) {
3071 struct per_cpu_pageset *pcp;
3072 struct zone *z;
3073 bool has_pcps = false;
3074
3075 if (force_all_cpus) {
3076 /*
3077 * The pcp.count check is racy, some callers need a
3078 * guarantee that no cpu is missed.
3079 */
3080 has_pcps = true;
3081 } else if (zone) {
3082 pcp = per_cpu_ptr(zone->pageset, cpu);
3083 if (pcp->pcp.count)
3084 has_pcps = true;
3085 } else {
3086 for_each_populated_zone(z) {
3087 pcp = per_cpu_ptr(z->pageset, cpu);
3088 if (pcp->pcp.count) {
3089 has_pcps = true;
3090 break;
3091 }
3092 }
3093 }
3094
3095 if (has_pcps)
3096 cpumask_set_cpu(cpu, &cpus_with_pcps);
3097 else
3098 cpumask_clear_cpu(cpu, &cpus_with_pcps);
3099 }
3100
3101 for_each_cpu(cpu, &cpus_with_pcps) {
3102 struct pcpu_drain *drain = per_cpu_ptr(&pcpu_drain, cpu);
3103
3104 drain->zone = zone;
3105 INIT_WORK(&drain->work, drain_local_pages_wq);
3106 queue_work_on(cpu, mm_percpu_wq, &drain->work);
3107 }
3108 for_each_cpu(cpu, &cpus_with_pcps)
3109 flush_work(&per_cpu_ptr(&pcpu_drain, cpu)->work);
3110
3111 mutex_unlock(&pcpu_drain_mutex);
3112 }
3113
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 1928/1928] kernel/sched/isolation.c:244:19: error: invalid storage class for function 'enhanced_isolcpus_setup'
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
Hi Xiongfeng,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 01e57e5fa297f937102f9b58ee7905f638b8450f
commit: 5f20541757730418065c3ae77dfdbcde3f523394 [1928/1928] blk-mq: avoid housekeeping CPUs scheduling a worker on a non-housekeeping CPU
config: loongarch-randconfig-r064-20250216 (https://download.01.org/0day-ci/archive/20250216/202502160734.p26JLJ7W-lkp@…)
compiler: loongarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502160734.p26JLJ7W-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/202502160734.p26JLJ7W-lkp@intel.com/
All errors (new ones prefixed by >>):
| ^~~~~~~~~~~~~~
kernel/sched/isolation.c:54:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
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)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
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:15:35: error: initializer element is not constant
15 | .data = &sysctl_sched_autogroup_enabled,
| ^
kernel/sched/autogroup.c:15:35: note: (near initialization for 'sched_autogroup_sysctls[0].data')
kernel/sched/autogroup.c:25:20: error: invalid storage class for function 'sched_autogroup_sysctl_init'
25 | static void __init sched_autogroup_sysctl_init(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
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);
| ^~~~~~~
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] BUILD REGRESSION 01e57e5fa297f937102f9b58ee7905f638b8450f
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
tree/branch: https://gitee.com/openeuler/kernel.git OLK-6.6
branch HEAD: 01e57e5fa297f937102f9b58ee7905f638b8450f !15083 mm/vmalloc: combine all TLB flush operations of KASAN shadow virtual address into one operation
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-alldefconfig
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-allmodconfig
| |-- mm-dynamic_pool.c:warning:variable-ret-is-uninitialized-when-used-here
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-memcontrol.c:warning:no-previous-prototype-for-function-hisi_oom_recover
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_reclaim_sysctl_handler
| |-- mm-share_pool.c:warning:Function-parameter-or-member-node_id-not-described-in-sp_area_alloc
| |-- mm-share_pool.c:warning:Function-parameter-or-member-spg_id-not-described-in-mg_sp_unshare
| |-- mm-share_pool.c:warning:duplicate-section-name-Return
| |-- mm-share_pool.c:warning:expecting-prototype-for-mp_sp_group_id_by_pid().-Prototype-was-for-mg_sp_group_id_by_pid()-instead
| |-- mm-share_pool.c:warning:variable-is_hugepage-set-but-not-used
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-allnoconfig
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-ARM64_ERRATUM_845719-when-selected-by-ARCH_MXC
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_KEY_PARSER-when-selected-by-PGP_PRELOAD
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_PRELOAD-when-selected-by-PGP_PRELOAD_PUBLIC_KEYS
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-RESCTRL_FS-when-selected-by-ARM64_MPAM
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-defconfig
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-001-20250215
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-002-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-003-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-004-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-r121-20250216
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-allmodconfig
| |-- include-trace-stages-init.h:warning:str__bonding__trace_system_name-defined-but-not-used
| |-- include-trace-stages-init.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_sysctl_handler
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-allnoconfig
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_KEY_PARSER-when-selected-by-PGP_PRELOAD
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_PRELOAD-when-selected-by-PGP_PRELOAD_PUBLIC_KEYS
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-allyesconfig
| |-- include-trace-stages-init.h:warning:str__bonding__trace_system_name-defined-but-not-used
| |-- include-trace-stages-init.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_sysctl_handler
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-randconfig-001-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-randconfig-002-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-randconfig-r062-20250216
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_sysctl_handler
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-randconfig-r064-20250216
| |-- 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-sched_autogroup_sysctl_init
| |-- 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:proc_sched_autogroup_set_nice-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:proc_sched_autogroup_show_task-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-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-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-psi.c:error:initializer-element-is-not-constant
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-get_stat_names
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_cpu_open
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_cpu_show
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_cpu_write
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_fop_poll
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_fop_release
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_io_open
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_io_show
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_io_write
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_memory_open
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_memory_show
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_memory_write
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_proc_init
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_stat_open
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_write
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-system_psi_stat_show
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_sysctl_handler
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-allnoconfig
| |-- include-linux-sched-signal.h:linux-kabi.h-is-included-more-than-once.
| |-- include-net-tcp.h:linux-kabi.h-is-included-more-than-once.
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_KEY_PARSER-when-selected-by-PGP_PRELOAD
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_PRELOAD-when-selected-by-PGP_PRELOAD_PUBLIC_KEYS
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-allyesconfig
| |-- mm-dynamic_pool.c:warning:variable-ret-is-uninitialized-when-used-here
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_reclaim_sysctl_handler
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-001-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-memcontrol.c:warning:mem_cgroup_check_swap_for_v1-defined-but-not-used
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-002-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-003-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-004-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-005-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-006-20250215
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
`-- x86_64-defconfig
|-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
|-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
|-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
|-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
|-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
|-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
|-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
`-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
elapsed time: 921m
configs tested: 21
configs skipped: 115
tested configs:
arm64 alldefconfig gcc-14.2.0
arm64 allmodconfig clang-18
arm64 allnoconfig gcc-14.2.0
arm64 defconfig gcc-14.2.0
arm64 randconfig-001-20250215 clang-21
arm64 randconfig-002-20250215 gcc-14.2.0
arm64 randconfig-003-20250215 clang-17
arm64 randconfig-004-20250215 gcc-14.2.0
loongarch allmodconfig gcc-14.2.0
loongarch allnoconfig gcc-14.2.0
loongarch randconfig-001-20250215 gcc-14.2.0
loongarch randconfig-002-20250215 gcc-14.2.0
x86_64 allnoconfig clang-19
x86_64 allyesconfig clang-19
x86_64 buildonly-randconfig-001-20250215 gcc-12
x86_64 buildonly-randconfig-002-20250215 clang-19
x86_64 buildonly-randconfig-003-20250215 gcc-12
x86_64 buildonly-randconfig-004-20250215 clang-19
x86_64 buildonly-randconfig-005-20250215 clang-19
x86_64 buildonly-randconfig-006-20250215 clang-19
x86_64 defconfig gcc-11
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 1928/1928] kernel/sched/psi.c:1763:12: error: invalid storage class for function 'psi_io_show'
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
Hi Lu,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 01e57e5fa297f937102f9b58ee7905f638b8450f
commit: 654944510822988390470cbc5b6f914c19dd9b88 [1928/1928] sched/psi: add cpu fine grained stall tracking in pressure.stat
config: loongarch-randconfig-r064-20250216 (https://download.01.org/0day-ci/archive/20250216/202502160550.E90uGy3T-lkp@…)
compiler: loongarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502160550.E90uGy3T-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/202502160550.E90uGy3T-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
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)
| ^~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1763:12: error: invalid storage class for function 'psi_io_show'
1763 | static int psi_io_show(struct seq_file *m, void *v)
| ^~~~~~~~~~~
>> kernel/sched/psi.c:1768:12: error: invalid storage class for function 'psi_memory_show'
1768 | static int psi_memory_show(struct seq_file *m, void *v)
| ^~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1773:12: error: invalid storage class for function 'psi_cpu_show'
1773 | static int psi_cpu_show(struct seq_file *m, void *v)
| ^~~~~~~~~~~~
>> kernel/sched/psi.c:1778:12: error: invalid storage class for function 'psi_io_open'
1778 | static int psi_io_open(struct inode *inode, struct file *file)
| ^~~~~~~~~~~
>> kernel/sched/psi.c:1783:12: error: invalid storage class for function 'psi_memory_open'
1783 | static int psi_memory_open(struct inode *inode, struct file *file)
| ^~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1788:12: error: invalid storage class for function 'psi_cpu_open'
1788 | static int psi_cpu_open(struct inode *inode, struct file *file)
| ^~~~~~~~~~~~
>> kernel/sched/psi.c:1793:16: error: invalid storage class for function 'psi_write'
1793 | static ssize_t psi_write(struct file *file, const char __user *user_buf,
| ^~~~~~~~~
>> kernel/sched/psi.c:1836:16: error: invalid storage class for function 'psi_io_write'
1836 | static ssize_t psi_io_write(struct file *file, const char __user *user_buf,
| ^~~~~~~~~~~~
>> kernel/sched/psi.c:1842:16: error: invalid storage class for function 'psi_memory_write'
1842 | static ssize_t psi_memory_write(struct file *file, const char __user *user_buf,
| ^~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1848:16: error: invalid storage class for function 'psi_cpu_write'
1848 | static ssize_t psi_cpu_write(struct file *file, const char __user *user_buf,
| ^~~~~~~~~~~~~
>> kernel/sched/psi.c:1854:17: error: invalid storage class for function 'psi_fop_poll'
1854 | static __poll_t psi_fop_poll(struct file *file, poll_table *wait)
| ^~~~~~~~~~~~
>> kernel/sched/psi.c:1861:12: error: invalid storage class for function 'psi_fop_release'
1861 | static int psi_fop_release(struct inode *inode, struct file *file)
| ^~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1870:27: error: initializer element is not constant
1870 | .proc_open = psi_io_open,
| ^~~~~~~~~~~
kernel/sched/psi.c:1870:27: note: (near initialization for 'psi_io_proc_ops.proc_open')
kernel/sched/psi.c:1873:27: error: initializer element is not constant
1873 | .proc_write = psi_io_write,
| ^~~~~~~~~~~~
kernel/sched/psi.c:1873:27: note: (near initialization for 'psi_io_proc_ops.proc_write')
kernel/sched/psi.c:1874:27: error: initializer element is not constant
1874 | .proc_poll = psi_fop_poll,
| ^~~~~~~~~~~~
kernel/sched/psi.c:1874:27: note: (near initialization for 'psi_io_proc_ops.proc_poll')
kernel/sched/psi.c:1875:27: error: initializer element is not constant
1875 | .proc_release = psi_fop_release,
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:1875:27: note: (near initialization for 'psi_io_proc_ops.proc_release')
kernel/sched/psi.c:1879:27: error: initializer element is not constant
1879 | .proc_open = psi_memory_open,
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:1879:27: note: (near initialization for 'psi_memory_proc_ops.proc_open')
kernel/sched/psi.c:1882:27: error: initializer element is not constant
1882 | .proc_write = psi_memory_write,
| ^~~~~~~~~~~~~~~~
kernel/sched/psi.c:1882:27: note: (near initialization for 'psi_memory_proc_ops.proc_write')
kernel/sched/psi.c:1883:27: error: initializer element is not constant
1883 | .proc_poll = psi_fop_poll,
| ^~~~~~~~~~~~
kernel/sched/psi.c:1883:27: note: (near initialization for 'psi_memory_proc_ops.proc_poll')
kernel/sched/psi.c:1884:27: error: initializer element is not constant
1884 | .proc_release = psi_fop_release,
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:1884:27: note: (near initialization for 'psi_memory_proc_ops.proc_release')
kernel/sched/psi.c:1888:27: error: initializer element is not constant
1888 | .proc_open = psi_cpu_open,
| ^~~~~~~~~~~~
kernel/sched/psi.c:1888:27: note: (near initialization for 'psi_cpu_proc_ops.proc_open')
kernel/sched/psi.c:1891:27: error: initializer element is not constant
1891 | .proc_write = psi_cpu_write,
| ^~~~~~~~~~~~~
kernel/sched/psi.c:1891:27: note: (near initialization for 'psi_cpu_proc_ops.proc_write')
kernel/sched/psi.c:1892:27: error: initializer element is not constant
1892 | .proc_poll = psi_fop_poll,
| ^~~~~~~~~~~~
kernel/sched/psi.c:1892:27: note: (near initialization for 'psi_cpu_proc_ops.proc_poll')
kernel/sched/psi.c:1893:27: error: initializer element is not constant
1893 | .proc_release = psi_fop_release,
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:1893:27: note: (near initialization for 'psi_cpu_proc_ops.proc_release')
>> kernel/sched/psi.c:1907:13: error: invalid storage class for function 'get_stat_names'
1907 | static void get_stat_names(struct seq_file *m, int i, bool is_full)
| ^~~~~~~~~~~~~~
>> kernel/sched/psi.c:1953:12: error: invalid storage class for function 'system_psi_stat_show'
1953 | static int system_psi_stat_show(struct seq_file *m, void *v)
| ^~~~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1958:12: error: invalid storage class for function 'psi_stat_open'
1958 | static int psi_stat_open(struct inode *inode, struct file *file)
| ^~~~~~~~~~~~~
kernel/sched/psi.c:1964:27: error: initializer element is not constant
1964 | .proc_open = psi_stat_open,
| ^~~~~~~~~~~~~
kernel/sched/psi.c:1964:27: note: (near initialization for 'psi_stat_proc_ops.proc_open')
kernel/sched/psi.c:1967:27: error: initializer element is not constant
1967 | .proc_release = psi_fop_release,
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:1967:27: note: (near initialization for 'psi_stat_proc_ops.proc_release')
>> kernel/sched/psi.c:1998:19: error: invalid storage class for function 'psi_proc_init'
1998 | static int __init psi_proc_init(void)
| ^~~~~~~~~~~~~
In file included from include/linux/printk.h:6,
from include/linux/kernel.h:30:
kernel/sched/psi.c:2014:13: error: initializer element is not constant
2014 | module_init(psi_proc_init);
| ^~~~~~~~~~~~~
include/linux/init.h:270:55: note: in definition of macro '____define_initcall'
270 | __attribute__((__section__(__sec))) = fn;
| ^~
include/linux/init.h:280:9: note: in expansion of macro '__unique_initcall'
280 | __unique_initcall(fn, id, __sec, __initcall_id(fn))
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:282:35: note: in expansion of macro '___define_initcall'
282 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id)
| ^~~~~~~~~~~~~~~~~~
include/linux/init.h:311:41: note: in expansion of macro '__define_initcall'
311 | #define device_initcall(fn) __define_initcall(fn, 6)
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:316:24: note: in expansion of macro 'device_initcall'
316 | #define __initcall(fn) device_initcall(fn)
| ^~~~~~~~~~~~~~~
include/linux/module.h:88:25: note: in expansion of macro '__initcall'
88 | #define module_init(x) __initcall(x);
| ^~~~~~~~~~
kernel/sched/psi.c:2014:1: note: in expansion of macro 'module_init'
2014 | module_init(psi_proc_init);
| ^~~~~~~~~~~
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'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
In file included from include/linux/syscalls_api.h:1,
from kernel/sched/sched.h:61,
from kernel/sched/build_utility.c:53:
>> include/linux/syscalls.h:247:28: error: invalid storage class for function '__do_sys_membarrier'
247 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~~~
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'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
>> include/linux/syscalls.h:249:25: error: static declaration of '__se_sys_membarrier' follows non-static declaration
249 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^~~~~~~~
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'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:248:25: note: previous declaration of '__se_sys_membarrier' with type 'long int(long int, long int, long int)'
248 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
| ^~~~~~~~
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'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c: In function '__se_sys_membarrier':
include/linux/syscalls.h:251:28: error: implicit declaration of function '__do_sys_membarrier'; did you mean '__se_sys_membarrier'? [-Wimplicit-function-declaration]
251 | long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
| ^~~~~~~~
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'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c: In function 'record_stat_times':
include/linux/syscalls.h:257:28: error: invalid storage class for function '__do_sys_membarrier'
257 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~~~
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'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
kernel/sched/isolation.c:24:19: error: extern declaration of 'housekeeping_overridden' follows declaration with no linkage
24 | EXPORT_SYMBOL_GPL(housekeeping_overridden);
| ^~~~~~~~~~~~~~~~~~~~~~~
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:24:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
24 | EXPORT_SYMBOL_GPL(housekeeping_overridden);
| ^~~~~~~~~~~~~~~~~
In file included from include/linux/once.h:6,
from include/linux/prandom.h:12,
from include/linux/random.h:153,
from include/linux/nodemask.h:97,
from include/linux/sched.h:23,
from include/linux/sched/signal.h:7,
from include/linux/sched/cputime.h:5,
from kernel/sched/build_utility.c:13:
kernel/sched/isolation.c:23:25: note: previous definition of 'housekeeping_overridden' with type 'struct static_key_false'
23 | DEFINE_STATIC_KEY_FALSE(housekeeping_overridden);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/jump_label.h:390:33: note: in definition of macro 'DEFINE_STATIC_KEY_FALSE'
390 | struct static_key_false name = STATIC_KEY_FALSE_INIT
| ^~~~
kernel/sched/isolation.c:37:19: error: non-static declaration of 'housekeeping_enabled' follows static declaration
37 | EXPORT_SYMBOL_GPL(housekeeping_enabled);
| ^~~~~~~~~~~~~~~~~~~~
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:37:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
37 | EXPORT_SYMBOL_GPL(housekeeping_enabled);
| ^~~~~~~~~~~~~~~~~
In file included from kernel/sched/build_utility.c:105:
kernel/sched/isolation.c:33:6: note: previous definition of 'housekeeping_enabled' with type 'bool(enum hk_type)' {aka '_Bool(enum hk_type)'}
33 | bool housekeeping_enabled(enum hk_type type)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:54:19: error: non-static declaration of 'housekeeping_any_cpu' follows static declaration
54 | EXPORT_SYMBOL_GPL(housekeeping_any_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")
| ^~~~~~~~~~~~~~
vim +/psi_io_show +1763 kernel/sched/psi.c
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1761
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1762 #ifdef CONFIG_PROC_FS
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1763 static int psi_io_show(struct seq_file *m, void *v)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1764 {
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1765 return psi_show(m, &psi_system, PSI_IO);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1766 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1767
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1768 static int psi_memory_show(struct seq_file *m, void *v)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1769 {
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1770 return psi_show(m, &psi_system, PSI_MEM);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1771 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1772
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1773 static int psi_cpu_show(struct seq_file *m, void *v)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1774 {
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1775 return psi_show(m, &psi_system, PSI_CPU);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1776 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1777
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1778 static int psi_io_open(struct inode *inode, struct file *file)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1779 {
d82caa273565b4 Domenico Cerasuolo 2023-03-30 1780 return single_open(file, psi_io_show, NULL);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1781 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1782
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1783 static int psi_memory_open(struct inode *inode, struct file *file)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1784 {
d82caa273565b4 Domenico Cerasuolo 2023-03-30 1785 return single_open(file, psi_memory_show, NULL);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1786 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1787
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1788 static int psi_cpu_open(struct inode *inode, struct file *file)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1789 {
d82caa273565b4 Domenico Cerasuolo 2023-03-30 1790 return single_open(file, psi_cpu_show, NULL);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1791 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1792
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1793 static ssize_t psi_write(struct file *file, const char __user *user_buf,
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1794 size_t nbytes, enum psi_res res)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1795 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1796 char buf[32];
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1797 size_t buf_size;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1798 struct seq_file *seq;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1799 struct psi_trigger *new;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1800
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1801 if (static_branch_likely(&psi_disabled))
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1802 return -EOPNOTSUPP;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1803
6fcca0fa48118e Suren Baghdasaryan 2020-02-03 1804 if (!nbytes)
6fcca0fa48118e Suren Baghdasaryan 2020-02-03 1805 return -EINVAL;
6fcca0fa48118e Suren Baghdasaryan 2020-02-03 1806
4adcdcea717cb2 Miles Chen 2019-09-12 1807 buf_size = min(nbytes, sizeof(buf));
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1808 if (copy_from_user(buf, user_buf, buf_size))
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1809 return -EFAULT;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1810
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1811 buf[buf_size - 1] = '\0';
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1812
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1813 seq = file->private_data;
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1814
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1815 /* Take seq->lock to protect seq->private from concurrent writes */
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1816 mutex_lock(&seq->lock);
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1817
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1818 /* Allow only one trigger per file descriptor */
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1819 if (seq->private) {
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1820 mutex_unlock(&seq->lock);
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1821 return -EBUSY;
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1822 }
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1823
aff037078ecaec Suren Baghdasaryan 2023-06-29 1824 new = psi_trigger_create(&psi_system, buf, res, file, NULL);
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1825 if (IS_ERR(new)) {
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1826 mutex_unlock(&seq->lock);
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1827 return PTR_ERR(new);
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1828 }
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1829
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1830 smp_store_release(&seq->private, new);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1831 mutex_unlock(&seq->lock);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1832
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1833 return nbytes;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1834 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1835
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1836 static ssize_t psi_io_write(struct file *file, const char __user *user_buf,
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1837 size_t nbytes, loff_t *ppos)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1838 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1839 return psi_write(file, user_buf, nbytes, PSI_IO);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1840 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1841
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1842 static ssize_t psi_memory_write(struct file *file, const char __user *user_buf,
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1843 size_t nbytes, loff_t *ppos)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1844 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1845 return psi_write(file, user_buf, nbytes, PSI_MEM);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1846 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1847
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1848 static ssize_t psi_cpu_write(struct file *file, const char __user *user_buf,
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1849 size_t nbytes, loff_t *ppos)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1850 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1851 return psi_write(file, user_buf, nbytes, PSI_CPU);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1852 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1853
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1854 static __poll_t psi_fop_poll(struct file *file, poll_table *wait)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1855 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1856 struct seq_file *seq = file->private_data;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1857
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1858 return psi_trigger_poll(&seq->private, file, wait);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1859 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1860
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1861 static int psi_fop_release(struct inode *inode, struct file *file)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1862 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1863 struct seq_file *seq = file->private_data;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1864
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1865 psi_trigger_destroy(seq->private);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1866 return single_release(inode, file);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1867 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1868
97a32539b9568b Alexey Dobriyan 2020-02-03 1869 static const struct proc_ops psi_io_proc_ops = {
97a32539b9568b Alexey Dobriyan 2020-02-03 @1870 .proc_open = psi_io_open,
97a32539b9568b Alexey Dobriyan 2020-02-03 1871 .proc_read = seq_read,
97a32539b9568b Alexey Dobriyan 2020-02-03 1872 .proc_lseek = seq_lseek,
97a32539b9568b Alexey Dobriyan 2020-02-03 1873 .proc_write = psi_io_write,
97a32539b9568b Alexey Dobriyan 2020-02-03 1874 .proc_poll = psi_fop_poll,
97a32539b9568b Alexey Dobriyan 2020-02-03 1875 .proc_release = psi_fop_release,
eb414681d5a07d Johannes Weiner 2018-10-26 1876 };
eb414681d5a07d Johannes Weiner 2018-10-26 1877
97a32539b9568b Alexey Dobriyan 2020-02-03 1878 static const struct proc_ops psi_memory_proc_ops = {
97a32539b9568b Alexey Dobriyan 2020-02-03 1879 .proc_open = psi_memory_open,
97a32539b9568b Alexey Dobriyan 2020-02-03 1880 .proc_read = seq_read,
97a32539b9568b Alexey Dobriyan 2020-02-03 1881 .proc_lseek = seq_lseek,
97a32539b9568b Alexey Dobriyan 2020-02-03 1882 .proc_write = psi_memory_write,
97a32539b9568b Alexey Dobriyan 2020-02-03 1883 .proc_poll = psi_fop_poll,
97a32539b9568b Alexey Dobriyan 2020-02-03 1884 .proc_release = psi_fop_release,
eb414681d5a07d Johannes Weiner 2018-10-26 1885 };
eb414681d5a07d Johannes Weiner 2018-10-26 1886
97a32539b9568b Alexey Dobriyan 2020-02-03 1887 static const struct proc_ops psi_cpu_proc_ops = {
97a32539b9568b Alexey Dobriyan 2020-02-03 1888 .proc_open = psi_cpu_open,
97a32539b9568b Alexey Dobriyan 2020-02-03 1889 .proc_read = seq_read,
97a32539b9568b Alexey Dobriyan 2020-02-03 1890 .proc_lseek = seq_lseek,
97a32539b9568b Alexey Dobriyan 2020-02-03 1891 .proc_write = psi_cpu_write,
97a32539b9568b Alexey Dobriyan 2020-02-03 1892 .proc_poll = psi_fop_poll,
97a32539b9568b Alexey Dobriyan 2020-02-03 1893 .proc_release = psi_fop_release,
eb414681d5a07d Johannes Weiner 2018-10-26 1894 };
eb414681d5a07d Johannes Weiner 2018-10-26 1895
4a69b56540f405 Lu Jialin 2024-01-04 1896 #ifdef CONFIG_PSI_FINE_GRAINED
4a69b56540f405 Lu Jialin 2024-01-04 1897 static const char *const psi_stat_names[] = {
4a69b56540f405 Lu Jialin 2024-01-04 1898 "cgroup_memory_reclaim",
25d00f6853c3c6 Lu Jialin 2024-01-04 1899 "global_memory_reclaim",
25d00f6853c3c6 Lu Jialin 2024-01-04 1900 "compact",
25d00f6853c3c6 Lu Jialin 2024-01-04 1901 "cgroup_async_memory_reclaim",
25d00f6853c3c6 Lu Jialin 2024-01-04 1902 "swap",
65494451082298 Lu Jialin 2024-01-04 1903 "cpu_cfs_bandwidth",
65494451082298 Lu Jialin 2024-01-04 1904 "cpu_qos",
4a69b56540f405 Lu Jialin 2024-01-04 1905 };
4a69b56540f405 Lu Jialin 2024-01-04 1906
65494451082298 Lu Jialin 2024-01-04 @1907 static void get_stat_names(struct seq_file *m, int i, bool is_full)
65494451082298 Lu Jialin 2024-01-04 1908 {
65494451082298 Lu Jialin 2024-01-04 1909 if (i <= PSI_SWAP_FULL && !is_full)
65494451082298 Lu Jialin 2024-01-04 1910 return seq_printf(m, "%s\n", psi_stat_names[i / 2]);
65494451082298 Lu Jialin 2024-01-04 1911 else if (i == PSI_CPU_CFS_BANDWIDTH_FULL)
65494451082298 Lu Jialin 2024-01-04 1912 return seq_printf(m, "%s\n", "cpu_cfs_bandwidth");
65494451082298 Lu Jialin 2024-01-04 1913 #ifdef CONFIG_QOS_SCHED
65494451082298 Lu Jialin 2024-01-04 1914 else if (i == PSI_CPU_QOS_FULL)
65494451082298 Lu Jialin 2024-01-04 1915 return seq_printf(m, "%s\n", "cpu_qos");
65494451082298 Lu Jialin 2024-01-04 1916 #endif
65494451082298 Lu Jialin 2024-01-04 1917 }
65494451082298 Lu Jialin 2024-01-04 1918
4a69b56540f405 Lu Jialin 2024-01-04 1919 int psi_stat_show(struct seq_file *m, struct psi_group *group)
4a69b56540f405 Lu Jialin 2024-01-04 1920 {
4a69b56540f405 Lu Jialin 2024-01-04 1921 int i;
4a69b56540f405 Lu Jialin 2024-01-04 1922 u64 now;
4a69b56540f405 Lu Jialin 2024-01-04 1923
4a69b56540f405 Lu Jialin 2024-01-04 1924 if (static_branch_likely(&psi_disabled))
4a69b56540f405 Lu Jialin 2024-01-04 1925 return -EOPNOTSUPP;
4a69b56540f405 Lu Jialin 2024-01-04 1926
4a69b56540f405 Lu Jialin 2024-01-04 1927 mutex_lock(&group->avgs_lock);
4a69b56540f405 Lu Jialin 2024-01-04 1928 now = sched_clock();
4a69b56540f405 Lu Jialin 2024-01-04 1929 collect_percpu_times(group, PSI_AVGS, NULL);
4a69b56540f405 Lu Jialin 2024-01-04 1930 if (now >= group->avg_next_update)
4a69b56540f405 Lu Jialin 2024-01-04 1931 group->avg_next_update = update_averages(group, now);
4a69b56540f405 Lu Jialin 2024-01-04 1932 mutex_unlock(&group->avgs_lock);
4a69b56540f405 Lu Jialin 2024-01-04 1933
4a69b56540f405 Lu Jialin 2024-01-04 1934 for (i = 0; i < NR_PSI_STAT_STATES; i++) {
4a69b56540f405 Lu Jialin 2024-01-04 1935 unsigned long avg[3] = {0, };
4a69b56540f405 Lu Jialin 2024-01-04 1936 int w;
4a69b56540f405 Lu Jialin 2024-01-04 1937 u64 total;
65494451082298 Lu Jialin 2024-01-04 1938 bool is_full = i % 2 || i > PSI_SWAP_FULL;
4a69b56540f405 Lu Jialin 2024-01-04 1939
4a69b56540f405 Lu Jialin 2024-01-04 1940 for (w = 0; w < 3; w++)
4a69b56540f405 Lu Jialin 2024-01-04 1941 avg[w] = group->fine_grained_avg[i][w];
4a69b56540f405 Lu Jialin 2024-01-04 1942 total = div_u64(group->fine_grained_total[PSI_AVGS][i], NSEC_PER_USEC);
65494451082298 Lu Jialin 2024-01-04 1943 get_stat_names(m, i, is_full);
4a69b56540f405 Lu Jialin 2024-01-04 1944 seq_printf(m, "%s avg10=%lu.%02lu avg60=%lu.%02lu avg300=%lu.%02lu total=%llu\n",
4a69b56540f405 Lu Jialin 2024-01-04 1945 is_full ? "full" : "some",
4a69b56540f405 Lu Jialin 2024-01-04 1946 LOAD_INT(avg[0]), LOAD_FRAC(avg[0]),
4a69b56540f405 Lu Jialin 2024-01-04 1947 LOAD_INT(avg[1]), LOAD_FRAC(avg[1]),
4a69b56540f405 Lu Jialin 2024-01-04 1948 LOAD_INT(avg[2]), LOAD_FRAC(avg[2]),
4a69b56540f405 Lu Jialin 2024-01-04 1949 total);
4a69b56540f405 Lu Jialin 2024-01-04 1950 }
4a69b56540f405 Lu Jialin 2024-01-04 1951 return 0;
4a69b56540f405 Lu Jialin 2024-01-04 1952 }
4a69b56540f405 Lu Jialin 2024-01-04 @1953 static int system_psi_stat_show(struct seq_file *m, void *v)
4a69b56540f405 Lu Jialin 2024-01-04 1954 {
4a69b56540f405 Lu Jialin 2024-01-04 1955 return psi_stat_show(m, &psi_system);
4a69b56540f405 Lu Jialin 2024-01-04 1956 }
4a69b56540f405 Lu Jialin 2024-01-04 1957
4a69b56540f405 Lu Jialin 2024-01-04 @1958 static int psi_stat_open(struct inode *inode, struct file *file)
4a69b56540f405 Lu Jialin 2024-01-04 1959 {
4a69b56540f405 Lu Jialin 2024-01-04 1960 return single_open(file, system_psi_stat_show, NULL);
4a69b56540f405 Lu Jialin 2024-01-04 1961 }
4a69b56540f405 Lu Jialin 2024-01-04 1962
:::::: The code at line 1763 was first introduced by commit
:::::: 5102bb1c9f82857a3164af9d7ab7ad628cb783ed psi: Fix "defined but not used" warnings when CONFIG_PROC_FS=n
:::::: TO: Suren Baghdasaryan <surenb(a)google.com>
:::::: CC: Peter Zijlstra <peterz(a)infradead.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1422/1422] kernel/time/.tmp_hrtimer.o: warning: objtool: hrtimer_start_range_ns()+0x535: unreachable instruction
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
Hi Phil,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 6a6cc2b6b95dc80ae01221670e21a8059229a023
commit: 40ecfb28732cefd0c5658f7c10543bbc4cd41cb8 [1422/1422] hrtimer: Prevent queuing of hrtimer without a function callback
config: x86_64-buildonly-randconfig-001-20250210 (https://download.01.org/0day-ci/archive/20250216/202502160431.1F2NAJJ5-lkp@…)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502160431.1F2NAJJ5-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/202502160431.1F2NAJJ5-lkp@intel.com/
All warnings (new ones prefixed by >>):
kernel/time/hrtimer.c:130:21: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
130 | [CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
| ^~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:128:27: note: previous initialization is here
128 | [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES,
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:131:22: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
131 | [CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
| ^~~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:128:27: note: previous initialization is here
128 | [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES,
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:132:21: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
132 | [CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
| ^~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:128:27: note: previous initialization is here
128 | [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES,
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:133:17: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
133 | [CLOCK_TAI] = HRTIMER_BASE_TAI,
| ^~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:128:27: note: previous initialization is here
128 | [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES,
| ^~~~~~~~~~~~~~~~~~~~~~~
4 warnings generated.
>> kernel/time/.tmp_hrtimer.o: warning: objtool: hrtimer_start_range_ns()+0x535: unreachable instruction
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1422/1422] kernel/time/.tmp_posix-cpu-timers.o: warning: objtool: set_process_cpu_timer()+0x119: unreachable instruction
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
Hi Thomas,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 6a6cc2b6b95dc80ae01221670e21a8059229a023
commit: 36ff49c95a04513935898fdcd4bc37646b2dc459 [1422/1422] posix-cpu-timers: Sanitize bogus WARNONS
config: x86_64-buildonly-randconfig-001-20250210 (https://download.01.org/0day-ci/archive/20250216/202502160200.QYr3efrJ-lkp@…)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502160200.QYr3efrJ-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/202502160200.QYr3efrJ-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/time/.tmp_posix-cpu-timers.o: warning: objtool: set_process_cpu_timer()+0x119: unreachable instruction
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0