I ran into what looks like a new lmbench bug while running the "performance" test as per the kernel test instructions. I'm also able to repeat the error(s) while running on the latest rawhide kernel. kernel-6.14.2-300.fc42.x86_64 kernel-6.14.3-300.fc42.x86_64 kernel-6.15.0-0.rc2.20250418gitfc96b232f8e7.25.fc43.x86_64 I also don't recall ever seeing this in Fedora 41 w/wo the 6.14 kernel(s) and not once with the 6.13 series while running your test. The performance test usually ends up taking 75-90 minutes on my system, but now it ends in 3 seconds. --- REDACTED@REDACTED:~/kernel-tests$ sudo ./runtests.sh -t performance Test suite called with performance lat_rpc.c:24:10: error: conflicting types for ‘client_rpc_xact_1’; have ‘char *(char *, CLIENT *)’ {aka ‘char *(char *, struct __rpc_client *)’} 24 | char *client_rpc_xact_1(char *argp, CLIENT *clnt); | ^~~~~~~~~~~~~~~~~ In file included from lat_rpc.c:19: bench.h:321:14: note: previous declaration of ‘client_rpc_xact_1’ with type ‘char *(void)’ 321 | extern char *client_rpc_xact_1(); | ^~~~~~~~~~~~~~~~~ lat_rpc.c: In function ‘main’: lat_rpc.c:136:33: warning: implicit declaration of function ‘lmbench_usage’ [-Wimplicit-function-declaration] 136 | lmbench_usage(ac, av, usage); | ^~~~~~~~~~~~~ lat_rpc.c: At top level: lat_rpc.c:176:1: error: conflicting types for ‘client_rpc_xact_1’; have ‘char *(char *, CLIENT *)’ {aka ‘char *(char *, struct __rpc_client *)’} 176 | client_rpc_xact_1(char *argp, CLIENT *clnt) | ^~~~~~~~~~~~~~~~~ bench.h:321:14: note: previous declaration of ‘client_rpc_xact_1’ with type ‘char *(void)’ 321 | extern char *client_rpc_xact_1(); | ^~~~~~~~~~~~~~~~~ lat_rpc.c: In function ‘rpc_xact_1’: lat_rpc.c:193:1: warning: old-style function definition [-Wold-style-definition] 193 | rpc_xact_1(msg, transp) | ^~~~~~~~~~ lat_rpc.c:196:1: error: number of arguments doesn’t match prototype 196 | { | ^ bench.h:320:14: error: prototype declaration 320 | extern char *rpc_xact_1(); | ^~~~~~~~~~ lat_rpc.c: In function ‘server_main’: lat_rpc.c:218:57: warning: passing argument 4 of ‘svc_register’ from incompatible pointer type [-Wincompatible-pointer-types] 218 | if (!svc_register(transp, XACT_PROG, XACT_VERS, xact_prog_1, IPPROTO_UDP)) { | ^~~~~~~~~~~ | | | void (*)(void) In file included from /usr/include/tirpc/rpc/svc.h:463, from /usr/include/tirpc/rpc/rpc.h:63, from bench.h:38: /usr/include/tirpc/rpc/svc_soc.h:70:21: note: expected ‘void (*)(struct svc_req *, SVCXPRT *)’ {aka ‘void (*)(struct svc_req *, struct __rpc_svcxprt *)’} but argument is of type ‘void (*)(void)’ 70 | void (*)(struct svc_req *, SVCXPRT *), int); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lat_rpc.c:202:13: note: ‘xact_prog_1’ declared here 202 | static void xact_prog_1(); | ^~~~~~~~~~~ lat_rpc.c:228:57: warning: passing argument 4 of ‘svc_register’ from incompatible pointer type [-Wincompatible-pointer-types] 228 | if (!svc_register(transp, XACT_PROG, XACT_VERS, xact_prog_1, IPPROTO_TCP)) { | ^~~~~~~~~~~ | | | void (*)(void) /usr/include/tirpc/rpc/svc_soc.h:70:21: note: expected ‘void (*)(struct svc_req *, SVCXPRT *)’ {aka ‘void (*)(struct svc_req *, struct __rpc_svcxprt *)’} but argument is of type ‘void (*)(void)’ 70 | void (*)(struct svc_req *, SVCXPRT *), int); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lat_rpc.c:202:13: note: ‘xact_prog_1’ declared here 202 | static void xact_prog_1(); | ^~~~~~~~~~~ lat_rpc.c: In function ‘xact_prog_1’: lat_rpc.c:240:1: warning: old-style function definition [-Wold-style-definition] 240 | xact_prog_1(rqstp, transp) | ^~~~~~~~~~~ lat_rpc.c:257:30: warning: assignment to ‘bool_t (*)(void)’ {aka ‘int (*)(void)’} from incompatible pointer type ‘bool_t (*)(XDR *, char *)’ {aka ‘int (*)(struct __rpc_xdr *, char *)’} [-Wincompatible-pointer-types] 257 | xdr_argument = xdr_char; | ^ In file included from /usr/include/tirpc/rpc/rpc.h:43: /usr/include/tirpc/rpc/xdr.h:316:17: note: ‘xdr_char’ declared here 316 | extern bool_t xdr_char(XDR *, char *); | ^~~~~~~~ lat_rpc.c:258:28: warning: assignment to ‘bool_t (*)(void)’ {aka ‘int (*)(void)’} from incompatible pointer type ‘bool_t (*)(XDR *, char *)’ {aka ‘int (*)(struct __rpc_xdr *, char *)’} [-Wincompatible-pointer-types] 258 | xdr_result = xdr_char; | ^ /usr/include/tirpc/rpc/xdr.h:316:17: note: ‘xdr_char’ declared here 316 | extern bool_t xdr_char(XDR *, char *); | ^~~~~~~~ lat_rpc.c:276:19: error: too many arguments to function ‘local’; expected 0, have 2 276 | result = (*local)(&argument, rqstp); | ~^~~~~~~ ~~~~~~~~~ gmake[2]: *** [Makefile:397: ../bin/x86_64-linux-gnu/lat_rpc] Error 1 make[1]: *** [Makefile:114: lmbench] Error 2 make: *** [Makefile:20: build] Error 2 lat_rpc.c:24:10: error: conflicting types for ‘client_rpc_xact_1’; have ‘char *(char *, CLIENT *)’ {aka ‘char *(char *, struct __rpc_client *)’} 24 | char *client_rpc_xact_1(char *argp, CLIENT *clnt); | ^~~~~~~~~~~~~~~~~ In file included from lat_rpc.c:19: bench.h:321:14: note: previous declaration of ‘client_rpc_xact_1’ with type ‘char *(void)’ 321 | extern char *client_rpc_xact_1(); | ^~~~~~~~~~~~~~~~~ lat_rpc.c: In function ‘main’: lat_rpc.c:136:33: warning: implicit declaration of function ‘lmbench_usage’ [-Wimplicit-function-declaration] 136 | lmbench_usage(ac, av, usage); | ^~~~~~~~~~~~~ lat_rpc.c: At top level: lat_rpc.c:176:1: error: conflicting types for ‘client_rpc_xact_1’; have ‘char *(char *, CLIENT *)’ {aka ‘char *(char *, struct __rpc_client *)’} 176 | client_rpc_xact_1(char *argp, CLIENT *clnt) | ^~~~~~~~~~~~~~~~~ bench.h:321:14: note: previous declaration of ‘client_rpc_xact_1’ with type ‘char *(void)’ 321 | extern char *client_rpc_xact_1(); | ^~~~~~~~~~~~~~~~~ lat_rpc.c: In function ‘rpc_xact_1’: lat_rpc.c:193:1: warning: old-style function definition [-Wold-style-definition] 193 | rpc_xact_1(msg, transp) | ^~~~~~~~~~ lat_rpc.c:196:1: error: number of arguments doesn’t match prototype 196 | { | ^ bench.h:320:14: error: prototype declaration 320 | extern char *rpc_xact_1(); | ^~~~~~~~~~ lat_rpc.c: In function ‘server_main’: lat_rpc.c:218:57: warning: passing argument 4 of ‘svc_register’ from incompatible pointer type [-Wincompatible-pointer-types] 218 | if (!svc_register(transp, XACT_PROG, XACT_VERS, xact_prog_1, IPPROTO_UDP)) { | ^~~~~~~~~~~ | | | void (*)(void) In file included from /usr/include/tirpc/rpc/svc.h:463, from /usr/include/tirpc/rpc/rpc.h:63, from bench.h:38: /usr/include/tirpc/rpc/svc_soc.h:70:21: note: expected ‘void (*)(struct svc_req *, SVCXPRT *)’ {aka ‘void (*)(struct svc_req *, struct __rpc_svcxprt *)’} but argument is of type ‘void (*)(void)’ 70 | void (*)(struct svc_req *, SVCXPRT *), int); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lat_rpc.c:202:13: note: ‘xact_prog_1’ declared here 202 | static void xact_prog_1(); | ^~~~~~~~~~~ lat_rpc.c:228:57: warning: passing argument 4 of ‘svc_register’ from incompatible pointer type [-Wincompatible-pointer-types] 228 | if (!svc_register(transp, XACT_PROG, XACT_VERS, xact_prog_1, IPPROTO_TCP)) { | ^~~~~~~~~~~ | | | void (*)(void) /usr/include/tirpc/rpc/svc_soc.h:70:21: note: expected ‘void (*)(struct svc_req *, SVCXPRT *)’ {aka ‘void (*)(struct svc_req *, struct __rpc_svcxprt *)’} but argument is of type ‘void (*)(void)’ 70 | void (*)(struct svc_req *, SVCXPRT *), int); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lat_rpc.c:202:13: note: ‘xact_prog_1’ declared here 202 | static void xact_prog_1(); | ^~~~~~~~~~~ lat_rpc.c: In function ‘xact_prog_1’: lat_rpc.c:240:1: warning: old-style function definition [-Wold-style-definition] 240 | xact_prog_1(rqstp, transp) | ^~~~~~~~~~~ lat_rpc.c:257:30: warning: assignment to ‘bool_t (*)(void)’ {aka ‘int (*)(void)’} from incompatible pointer type ‘bool_t (*)(XDR *, char *)’ {aka ‘int (*)(struct __rpc_xdr *, char *)’} [-Wincompatible-pointer-types] 257 | xdr_argument = xdr_char; | ^ In file included from /usr/include/tirpc/rpc/rpc.h:43: /usr/include/tirpc/rpc/xdr.h:316:17: note: ‘xdr_char’ declared here 316 | extern bool_t xdr_char(XDR *, char *); | ^~~~~~~~ lat_rpc.c:258:28: warning: assignment to ‘bool_t (*)(void)’ {aka ‘int (*)(void)’} from incompatible pointer type ‘bool_t (*)(XDR *, char *)’ {aka ‘int (*)(struct __rpc_xdr *, char *)’} [-Wincompatible-pointer-types] 258 | xdr_result = xdr_char; | ^ /usr/include/tirpc/rpc/xdr.h:316:17: note: ‘xdr_char’ declared here 316 | extern bool_t xdr_char(XDR *, char *); | ^~~~~~~~ lat_rpc.c:276:19: error: too many arguments to function ‘local’; expected 0, have 2 276 | result = (*local)(&argument, rqstp); | ~^~~~~~~ ~~~~~~~~~ gmake[2]: *** [Makefile:397: ../bin/x86_64-linux-gnu/lat_rpc] Error 1 make[1]: *** [Makefile:114: lmbench] Error 2 make: *** [Makefile:23: results] Error 2 ./performance/lmbench3 PASS Test suite complete PASS
Confirm that I've also been seeing these same errors when running the Performance test suite for a while now on F42, regardless of kernel version (with 6.14/6.15 anyway, don't think I've tested any 6.13 kernels recently).
Confirmed. Same problem with 6.15 kernel test day.