* [linux-next:master 6231/6992] kernel/events/core.c:7477 perf_virt_to_phys() warn: always true condition '(virt >= (0)) => (0-u64max >= 0)'
@ 2023-12-11 20:37 kernel test robot
2023-12-12 1:23 ` Baoquan He
0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2023-12-11 20:37 UTC (permalink / raw)
To: Baoquan He; +Cc: oe-kbuild-all, Linux Memory Management List, Andrew Morton
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: bbd220ce4e29ed55ab079007cff0b550895258eb
commit: 8a651e8f1fca74c7c2b033d9a0ad5214ac5d46e4 [6231/6992] riscv: fix VMALLOC_START definition
config: riscv-randconfig-r071-20231211 (https://download.01.org/0day-ci/archive/20231212/202312120428.kUWabWlC-lkp@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231212/202312120428.kUWabWlC-lkp@intel.com/reproduce)
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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312120428.kUWabWlC-lkp@intel.com/
New smatch warnings:
kernel/events/core.c:7477 perf_virt_to_phys() warn: always true condition '(virt >= (0)) => (0-u64max >= 0)'
drivers/clk/ingenic/tcu.c:455 ingenic_tcu_probe() warn: 'tcu->clk' from clk_prepare_enable() not released on lines: 455.
Old smatch warnings:
arch/riscv/include/asm/atomic.h:225 arch_atomic64_fetch_add_unless() warn: inconsistent indenting
arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
vim +7477 kernel/events/core.c
5622f295b53fb6 kernel/perf_counter.c Markus Metzger 2009-09-15 7466
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7467 static u64 perf_virt_to_phys(u64 virt)
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7468 {
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7469 u64 phys_addr = 0;
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7470
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7471 if (!virt)
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7472 return 0;
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7473
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7474 if (virt >= TASK_SIZE) {
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7475 /* If it's vmalloc()d memory, leave phys_addr as 0 */
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7476 if (virt_addr_valid((void *)(uintptr_t)virt) &&
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 @7477 !(virt >= VMALLOC_START && virt < VMALLOC_END))
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7478 phys_addr = (u64)virt_to_phys((void *)(uintptr_t)virt);
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7479 } else {
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7480 /*
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7481 * Walking the pages tables for user address.
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7482 * Interrupts are disabled, so it prevents any tear down
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7483 * of the page tables.
dadbb612f6e50b kernel/events/core.c Souptick Joarder 2020-06-07 7484 * Try IRQ-safe get_user_page_fast_only first.
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7485 * If failed, leave phys_addr as 0.
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7486 */
d3296fb372bf74 kernel/events/core.c Jiri Olsa 2020-04-07 7487 if (current->mm != NULL) {
4716023a8f6a0f kernel/events/core.c Greg Thelen 2021-11-10 7488 struct page *p;
4716023a8f6a0f kernel/events/core.c Greg Thelen 2021-11-10 7489
d3296fb372bf74 kernel/events/core.c Jiri Olsa 2020-04-07 7490 pagefault_disable();
4716023a8f6a0f kernel/events/core.c Greg Thelen 2021-11-10 7491 if (get_user_page_fast_only(virt, 0, &p)) {
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7492 phys_addr = page_to_phys(p) + virt % PAGE_SIZE;
4716023a8f6a0f kernel/events/core.c Greg Thelen 2021-11-10 7493 put_page(p);
4716023a8f6a0f kernel/events/core.c Greg Thelen 2021-11-10 7494 }
d3296fb372bf74 kernel/events/core.c Jiri Olsa 2020-04-07 7495 pagefault_enable();
d3296fb372bf74 kernel/events/core.c Jiri Olsa 2020-04-07 7496 }
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7497 }
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7498
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7499 return phys_addr;
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7500 }
fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7501
:::::: The code at line 7477 was first introduced by commit
:::::: fc7ce9c74c3ad232b084d80148654f926d01ece7 perf/core, x86: Add PERF_SAMPLE_PHYS_ADDR
:::::: TO: Kan Liang <kan.liang@intel.com>
:::::: CC: Ingo Molnar <mingo@kernel.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [linux-next:master 6231/6992] kernel/events/core.c:7477 perf_virt_to_phys() warn: always true condition '(virt >= (0)) => (0-u64max >= 0)'
2023-12-11 20:37 [linux-next:master 6231/6992] kernel/events/core.c:7477 perf_virt_to_phys() warn: always true condition '(virt >= (0)) => (0-u64max >= 0)' kernel test robot
@ 2023-12-12 1:23 ` Baoquan He
0 siblings, 0 replies; 2+ messages in thread
From: Baoquan He @ 2023-12-12 1:23 UTC (permalink / raw)
To: kernel test robot
Cc: oe-kbuild-all, Linux Memory Management List, Andrew Morton
On 12/12/23 at 04:37am, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head: bbd220ce4e29ed55ab079007cff0b550895258eb
> commit: 8a651e8f1fca74c7c2b033d9a0ad5214ac5d46e4 [6231/6992] riscv: fix VMALLOC_START definition
> config: riscv-randconfig-r071-20231211 (https://download.01.org/0day-ci/archive/20231212/202312120428.kUWabWlC-lkp@intel.com/config)
> compiler: riscv64-linux-gcc (GCC) 13.2.0
> reproduce: (https://download.01.org/0day-ci/archive/20231212/202312120428.kUWabWlC-lkp@intel.com/reproduce)
Thanks for reporting this. While I can't open the reproduce link,
can you double check it?
>
> 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@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202312120428.kUWabWlC-lkp@intel.com/
>
> New smatch warnings:
> kernel/events/core.c:7477 perf_virt_to_phys() warn: always true condition '(virt >= (0)) => (0-u64max >= 0)'
> drivers/clk/ingenic/tcu.c:455 ingenic_tcu_probe() warn: 'tcu->clk' from clk_prepare_enable() not released on lines: 455.
>
> Old smatch warnings:
> arch/riscv/include/asm/atomic.h:225 arch_atomic64_fetch_add_unless() warn: inconsistent indenting
> arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting
From the config, it has:
------------------------
# CONFIG_MMU is not set
------------------------
On RISC-V, we have definitions as below. So this sounds like a redundant
warning. I will see if I can mute it anyway.
arch/riscv/include/asm/pgtable.h:
#ifdef CONFIG_MMU
......
#else /* CONFIG_MMU */
#define PAGE_SHARED __pgprot(0)
#define PAGE_KERNEL __pgprot(0)
#define swapper_pg_dir NULL
#define TASK_SIZE 0xffffffffUL
#define VMALLOC_START 0
#define VMALLOC_END TASK_SIZE
#endif /* !CONFIG_MMU */
>
> vim +7477 kernel/events/core.c
>
> 5622f295b53fb6 kernel/perf_counter.c Markus Metzger 2009-09-15 7466
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7467 static u64 perf_virt_to_phys(u64 virt)
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7468 {
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7469 u64 phys_addr = 0;
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7470
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7471 if (!virt)
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7472 return 0;
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7473
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7474 if (virt >= TASK_SIZE) {
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7475 /* If it's vmalloc()d memory, leave phys_addr as 0 */
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7476 if (virt_addr_valid((void *)(uintptr_t)virt) &&
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 @7477 !(virt >= VMALLOC_START && virt < VMALLOC_END))
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7478 phys_addr = (u64)virt_to_phys((void *)(uintptr_t)virt);
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7479 } else {
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7480 /*
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7481 * Walking the pages tables for user address.
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7482 * Interrupts are disabled, so it prevents any tear down
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7483 * of the page tables.
> dadbb612f6e50b kernel/events/core.c Souptick Joarder 2020-06-07 7484 * Try IRQ-safe get_user_page_fast_only first.
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7485 * If failed, leave phys_addr as 0.
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7486 */
> d3296fb372bf74 kernel/events/core.c Jiri Olsa 2020-04-07 7487 if (current->mm != NULL) {
> 4716023a8f6a0f kernel/events/core.c Greg Thelen 2021-11-10 7488 struct page *p;
> 4716023a8f6a0f kernel/events/core.c Greg Thelen 2021-11-10 7489
> d3296fb372bf74 kernel/events/core.c Jiri Olsa 2020-04-07 7490 pagefault_disable();
> 4716023a8f6a0f kernel/events/core.c Greg Thelen 2021-11-10 7491 if (get_user_page_fast_only(virt, 0, &p)) {
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7492 phys_addr = page_to_phys(p) + virt % PAGE_SIZE;
> 4716023a8f6a0f kernel/events/core.c Greg Thelen 2021-11-10 7493 put_page(p);
> 4716023a8f6a0f kernel/events/core.c Greg Thelen 2021-11-10 7494 }
> d3296fb372bf74 kernel/events/core.c Jiri Olsa 2020-04-07 7495 pagefault_enable();
> d3296fb372bf74 kernel/events/core.c Jiri Olsa 2020-04-07 7496 }
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7497 }
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7498
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7499 return phys_addr;
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7500 }
> fc7ce9c74c3ad2 kernel/events/core.c Kan Liang 2017-08-28 7501
>
> :::::: The code at line 7477 was first introduced by commit
> :::::: fc7ce9c74c3ad232b084d80148654f926d01ece7 perf/core, x86: Add PERF_SAMPLE_PHYS_ADDR
>
> :::::: TO: Kan Liang <kan.liang@intel.com>
> :::::: CC: Ingo Molnar <mingo@kernel.org>
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-12-12 1:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-11 20:37 [linux-next:master 6231/6992] kernel/events/core.c:7477 perf_virt_to_phys() warn: always true condition '(virt >= (0)) => (0-u64max >= 0)' kernel test robot
2023-12-12 1:23 ` Baoquan He
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox