WARNING: Unknown commit id '35b1716d0c30', maybe rebased or not pulled? #16: I imported the bench_page_pool_simple from commit 35b1716d0c30 ("Add WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? #69: new file mode 100644 WARNING: please write a help paragraph that fully describes the config symbol #75: FILE: lib/bench/Kconfig:2: +config BENCH_PAGE_POOL + tristate "bench page pool" + depends on PAGE_POOL WARNING: Missing or malformed SPDX-License-Identifier tag in line 1 #93: FILE: lib/bench/bench_page_pool_simple.c:1: +/* CHECK: DEFINE_MUTEX definition without comment #122: FILE: lib/bench/bench_page_pool_simple.c:30: +DEFINE_MUTEX(wait_for_tasklet); CHECK: Please use a blank line after function/struct/union/enum declarations #142: FILE: lib/bench/bench_page_pool_simple.c:50: +}; +#define bit(b) (1 << (b)) WARNING: Block comments use a trailing */ on a separate line #151: FILE: lib/bench/bench_page_pool_simple.c:59: + * introduced by the for loop itself */ CHECK: Prefer kernel type 'u64' over 'uint64_t' #154: FILE: lib/bench/bench_page_pool_simple.c:62: + uint64_t loops_cnt = 0; CHECK: Prefer kernel type 'u64' over 'uint64_t' #169: FILE: lib/bench/bench_page_pool_simple.c:77: + uint64_t loops_cnt = 0; CHECK: Prefer kernel type 'u64' over 'uint64_t' #192: FILE: lib/bench/bench_page_pool_simple.c:100: + uint64_t loops_cnt = 0; CHECK: spinlock_t definition without comment #193: FILE: lib/bench/bench_page_pool_simple.c:101: + spinlock_t lock; WARNING: line length of 83 exceeds 80 columns #213: FILE: lib/bench/bench_page_pool_simple.c:121: + gfp_t gfp_mask = GFP_ATOMIC; /* GFP_ATOMIC needed when under run softirq */ WARNING: Prefer kcalloc over kzalloc with multiply #217: FILE: lib/bench/bench_page_pool_simple.c:125: + array = kzalloc(sizeof(struct page *) * elems, gfp_mask); WARNING: braces {} are not necessary for single statement blocks #219: FILE: lib/bench/bench_page_pool_simple.c:127: + for (i = 0; i < elems; i++) { + array[i] = page_pool_alloc_pages(pp, gfp_mask); + } WARNING: braces {} are not necessary for single statement blocks #222: FILE: lib/bench/bench_page_pool_simple.c:130: + for (i = 0; i < elems; i++) { + _page_pool_put_page(pp, array[i], false); + } CHECK: Prefer kernel type 'u64' over 'uint64_t' #236: FILE: lib/bench/bench_page_pool_simple.c:144: + uint64_t loops_cnt = 0; WARNING: line length of 81 exceeds 80 columns #268: FILE: lib/bench/bench_page_pool_simple.c:176: + /* Common fast-path alloc, that depend on in_serving_softirq() */ CHECK: Prefer kernel type 'u32' over 'uint32_t' #328: FILE: lib/bench/bench_page_pool_simple.c:236: + uint32_t nr_loops = loops; CHECK: Prefer kernel type 'u32' over 'uint32_t' #361: FILE: lib/bench/bench_page_pool_simple.c:269: + uint32_t nr_loops = loops; WARNING: Missing or malformed SPDX-License-Identifier tag in line 1 #427: FILE: lib/bench/time_bench.c:1: +/* CHECK: Prefer kernel type 'u64' over 'uint64_t' #465: FILE: lib/bench/time_bench.c:39: + uint64_t config; /* event */ CHECK: Prefer kernel type 'u64' over 'uint64_t' #466: FILE: lib/bench/time_bench.c:40: + uint64_t config1; /* umask */ WARNING: line length of 81 exceeds 80 columns #476: FILE: lib/bench/time_bench.c:50: + * Architectures Software Developer’s Manual Volume 3: System Programming Guide CHECK: Alignment should match open parenthesis #515: FILE: lib/bench/time_bench.c:89: + perf_event = perf_event_create_kernel_counter(&perf_conf, cpu, + NULL /* task */, CHECK: Prefer kernel type 'u64' over 'uint64_t' #539: FILE: lib/bench/time_bench.c:113: + uint64_t ns_per_call_tmp_rem = 0; CHECK: Prefer kernel type 'u32' over 'uint32_t' #540: FILE: lib/bench/time_bench.c:114: + uint32_t ns_per_call_remainder = 0; CHECK: Prefer kernel type 'u64' over 'uint64_t' #541: FILE: lib/bench/time_bench.c:115: + uint64_t pmc_ipc_tmp_rem = 0; CHECK: Prefer kernel type 'u32' over 'uint32_t' #542: FILE: lib/bench/time_bench.c:116: + uint32_t pmc_ipc_remainder = 0; CHECK: Prefer kernel type 'u32' over 'uint32_t' #543: FILE: lib/bench/time_bench.c:117: + uint32_t pmc_ipc_div = 0; CHECK: Prefer kernel type 'u32' over 'uint32_t' #544: FILE: lib/bench/time_bench.c:118: + uint32_t invoked_cnt_precision = 0; CHECK: Prefer kernel type 'u32' over 'uint32_t' #545: FILE: lib/bench/time_bench.c:119: + uint32_t invoked_cnt = 0; /* 32-bit due to div_u64_rem() */ CHECK: Prefer kernel type 'u32' over 'uint32_t' #641: FILE: lib/bench/time_bench.c:215: +bool time_bench_loop(uint32_t loops, int step, char *txt, void *data, CHECK: spaces preferred around that '|' (ctx:VxV) #651: FILE: lib/bench/time_bench.c:225: + rec.flags = (TIME_BENCH_LOOP|TIME_BENCH_TSC|TIME_BENCH_WALLCLOCK); ^ CHECK: spaces preferred around that '|' (ctx:VxV) #651: FILE: lib/bench/time_bench.c:225: + rec.flags = (TIME_BENCH_LOOP|TIME_BENCH_TSC|TIME_BENCH_WALLCLOCK); ^ WARNING: quoted string split across lines #667: FILE: lib/bench/time_bench.c:241: + pr_info("Type:%s Per elem: %llu cycles(tsc) %llu.%03llu ns (step:%d)" + " - (measurement period time:%llu.%09u sec time_interval:%llu)" WARNING: quoted string split across lines #668: FILE: lib/bench/time_bench.c:242: + " - (measurement period time:%llu.%09u sec time_interval:%llu)" + " - (invoke count:%llu tsc_interval:%llu)\n", WARNING: quoted string split across lines #675: FILE: lib/bench/time_bench.c:249: + pr_info("Type:%s PMU inst/clock" + "%llu/%llu = %llu.%03llu IPC (inst per cycle)\n", CHECK: Prefer kernel type 'u64' over 'uint64_t' #725: FILE: lib/bench/time_bench.c:299: + uint64_t average = 0; CHECK: Prefer kernel type 'u64' over 'uint64_t' #729: FILE: lib/bench/time_bench.c:303: + uint64_t tsc_cycles; WARNING: quoted string split across lines #742: FILE: lib/bench/time_bench.c:316: + pr_info("Type:%s CPU(%d) %llu cycles(tsc) %llu.%03llu ns" + " (step:%d)" WARNING: quoted string split across lines #743: FILE: lib/bench/time_bench.c:317: + " (step:%d)" + " - (measurement period time:%llu.%09u sec time_interval:%llu)" WARNING: quoted string split across lines #744: FILE: lib/bench/time_bench.c:318: + " - (measurement period time:%llu.%09u sec time_interval:%llu)" + " - (invoke count:%llu tsc_interval:%llu)\n", CHECK: Lines should not end with a '(' #763: FILE: lib/bench/time_bench.c:337: +void time_bench_run_concurrent( CHECK: Prefer kernel type 'u32' over 'uint32_t' #764: FILE: lib/bench/time_bench.c:338: + uint32_t loops, int step, void *data, CHECK: spaces preferred around that '|' (ctx:VxV) #792: FILE: lib/bench/time_bench.c:366: + c->rec.flags = (TIME_BENCH_LOOP|TIME_BENCH_TSC| ^ CHECK: space preferred before that '|' (ctx:VxE) #792: FILE: lib/bench/time_bench.c:366: + c->rec.flags = (TIME_BENCH_LOOP|TIME_BENCH_TSC| ^ WARNING: Missing a blank line after declarations #821: FILE: lib/bench/time_bench.c:395: + struct time_bench_cpu *c = &cpu_tasks[cpu]; + kthread_stop(c->task); WARNING: Missing or malformed SPDX-License-Identifier tag in line 1 #859: FILE: lib/bench/time_bench.h:1: +/* CHECK: Prefer kernel type 'u32' over 'uint32_t' #870: FILE: lib/bench/time_bench.h:12: + uint32_t version_abi; CHECK: Prefer kernel type 'u32' over 'uint32_t' #871: FILE: lib/bench/time_bench.h:13: + uint32_t loops; /* Requested loop invocations */ CHECK: Prefer kernel type 'u32' over 'uint32_t' #872: FILE: lib/bench/time_bench.h:14: + uint32_t step; /* option for e.g. bulk invocations */ WARNING: please, no space before tabs #874: FILE: lib/bench/time_bench.h:16: +^Iuint32_t flags; ^I/* Measurements types enabled */$ CHECK: Prefer kernel type 'u32' over 'uint32_t' #874: FILE: lib/bench/time_bench.h:16: + uint32_t flags; /* Measurements types enabled */ CHECK: spaces preferred around that '<<' (ctx:VxV) #875: FILE: lib/bench/time_bench.h:17: +#define TIME_BENCH_LOOP (1<<0) ^ CHECK: Prefer using the BIT macro #875: FILE: lib/bench/time_bench.h:17: +#define TIME_BENCH_LOOP (1<<0) CHECK: spaces preferred around that '<<' (ctx:VxV) #876: FILE: lib/bench/time_bench.h:18: +#define TIME_BENCH_TSC (1<<1) ^ CHECK: Prefer using the BIT macro #876: FILE: lib/bench/time_bench.h:18: +#define TIME_BENCH_TSC (1<<1) CHECK: spaces preferred around that '<<' (ctx:VxV) #877: FILE: lib/bench/time_bench.h:19: +#define TIME_BENCH_WALLCLOCK (1<<2) ^ CHECK: Prefer using the BIT macro #877: FILE: lib/bench/time_bench.h:19: +#define TIME_BENCH_WALLCLOCK (1<<2) CHECK: spaces preferred around that '<<' (ctx:VxV) #878: FILE: lib/bench/time_bench.h:20: +#define TIME_BENCH_PMU (1<<3) ^ CHECK: Prefer using the BIT macro #878: FILE: lib/bench/time_bench.h:20: +#define TIME_BENCH_PMU (1<<3) CHECK: Prefer kernel type 'u32' over 'uint32_t' #880: FILE: lib/bench/time_bench.h:22: + uint32_t cpu; /* Used when embedded in time_bench_cpu */ WARNING: please, no space before tabs #883: FILE: lib/bench/time_bench.h:25: +^Iuint64_t invoked_cnt; ^I/* Returned actual invocations */$ CHECK: Prefer kernel type 'u64' over 'uint64_t' #883: FILE: lib/bench/time_bench.h:25: + uint64_t invoked_cnt; /* Returned actual invocations */ CHECK: Prefer kernel type 'u64' over 'uint64_t' #884: FILE: lib/bench/time_bench.h:26: + uint64_t tsc_start; CHECK: Prefer kernel type 'u64' over 'uint64_t' #885: FILE: lib/bench/time_bench.h:27: + uint64_t tsc_stop; WARNING: Block comments use a trailing */ on a separate line #889: FILE: lib/bench/time_bench.h:31: + * instructions counter including pipelined instructions */ CHECK: Prefer kernel type 'u64' over 'uint64_t' #890: FILE: lib/bench/time_bench.h:32: + uint64_t pmc_inst_start; CHECK: Prefer kernel type 'u64' over 'uint64_t' #891: FILE: lib/bench/time_bench.h:33: + uint64_t pmc_inst_stop; CHECK: Prefer kernel type 'u64' over 'uint64_t' #893: FILE: lib/bench/time_bench.h:35: + uint64_t pmc_clk_start; CHECK: Prefer kernel type 'u64' over 'uint64_t' #894: FILE: lib/bench/time_bench.h:36: + uint64_t pmc_clk_stop; CHECK: Prefer kernel type 'u64' over 'uint64_t' #897: FILE: lib/bench/time_bench.h:39: + uint64_t tsc_interval; CHECK: Prefer kernel type 'u64' over 'uint64_t' #898: FILE: lib/bench/time_bench.h:40: + uint64_t time_start, time_stop, time_interval; /* in nanosec */ CHECK: Prefer kernel type 'u64' over 'uint64_t' #899: FILE: lib/bench/time_bench.h:41: + uint64_t pmc_inst, pmc_clk; CHECK: Prefer kernel type 'u64' over 'uint64_t' #902: FILE: lib/bench/time_bench.h:44: + uint64_t tsc_cycles; // +decimal? CHECK: Prefer kernel type 'u64' over 'uint64_t' #903: FILE: lib/bench/time_bench.h:45: + uint64_t ns_per_call_quotient, ns_per_call_decimal; CHECK: Prefer kernel type 'u64' over 'uint64_t' #904: FILE: lib/bench/time_bench.h:46: + uint64_t time_sec; CHECK: Prefer kernel type 'u32' over 'uint32_t' #905: FILE: lib/bench/time_bench.h:47: + uint32_t time_sec_remainder; CHECK: Prefer kernel type 'u64' over 'uint64_t' #906: FILE: lib/bench/time_bench.h:48: + uint64_t pmc_ipc_quotient, pmc_ipc_decimal; /* inst per cycle */ WARNING: Prefer 'unsigned int' to bare use of 'unsigned' #962: FILE: lib/bench/time_bench.h:104: + unsigned hi, lo; WARNING: Missing a blank line after declarations #963: FILE: lib/bench/time_bench.h:105: + unsigned hi, lo; + asm volatile("CPUID\n\t" WARNING: Prefer 'unsigned int' to bare use of 'unsigned' #975: FILE: lib/bench/time_bench.h:117: + unsigned hi, lo; WARNING: Missing a blank line after declarations #976: FILE: lib/bench/time_bench.h:118: + unsigned hi, lo; + asm volatile("RDTSCP\n\t" WARNING: Block comments use * on subsequent lines #1000: FILE: lib/bench/time_bench.h:142: +/* +inline uint64_t rdtsc(void) WARNING: Prefer 'unsigned int' to bare use of 'unsigned' #1042: FILE: lib/bench/time_bench.h:184: +static __always_inline unsigned long long p_rdpmc(unsigned in) WARNING: Prefer 'unsigned int' to bare use of 'unsigned' #1044: FILE: lib/bench/time_bench.h:186: + unsigned d, a; CHECK: Prefer kernel type 'u32' over 'uint32_t' #1079: FILE: lib/bench/time_bench.h:221: +bool time_bench_loop(uint32_t loops, int step, char *txt, void *data, CHECK: Lines should not end with a '(' #1083: FILE: lib/bench/time_bench.h:225: +void time_bench_run_concurrent( CHECK: Prefer kernel type 'u32' over 'uint32_t' #1084: FILE: lib/bench/time_bench.h:226: + uint32_t loops, int step, void *data, total: 0 errors, 30 warnings, 59 checks, 1033 lines checked NOTE: For some of the reported defects, checkpatch may be able to mechanically convert to the typical style using --fix or --fix-inplace. Commit 4dce495f7eae ("page_pool: import Jesper's page_pool benchmark") has style problems, please review. NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT BAD_REPORTED_BY_LINK CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. total: 0 errors, 30 warnings, 59 checks, 1033 lines checked