✗ CI.KUnit: failure for drm/xe: Generate oob before compiling anything

Lucas De Marchi lucas.demarchi at intel.com
Wed Apr 24 23:49:11 UTC 2024


+Masahiro

On Thu, Apr 11, 2024 at 09:34:41PM GMT, Patchwork wrote:
>== Series Details ==
>
>Series: drm/xe: Generate oob before compiling anything
>URL   : https://patchwork.freedesktop.org/series/132331/
>State : failure
>
>== Summary ==
>
>+ trap cleanup EXIT
>+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
>ERROR:root:../arch/x86/um/user-offsets.c:17:6: warning: no previous prototype for ‘foo’ [-Wmissing-prototypes]
>   17 | void foo(void)
>      |      ^~~
>In file included from ../arch/um/kernel/asm-offsets.c:1:
>../arch/x86/um/shared/sysdep/kernel-offsets.h:9:6: warning: no previous prototype for ‘foo’ [-Wmissing-prototypes]
>    9 | void foo(void)
>      |      ^~~
>../arch/x86/um/fault.c:18:5: warning: no previous prototype for ‘arch_fixup’ [-Wmissing-prototypes]
>   18 | int arch_fixup(unsigned long address, struct uml_pt_regs *regs)
>      |     ^~~~~~~~~~
>../arch/x86/um/bugs_64.c:9:6: warning: no previous prototype for ‘arch_check_bugs’ [-Wmissing-prototypes]
>    9 | void arch_check_bugs(void)
>      |      ^~~~~~~~~~~~~~~
>../arch/x86/um/bugs_64.c:13:6: warning: no previous prototype for ‘arch_examine_signal’ [-Wmissing-prototypes]
>   13 | void arch_examine_signal(int sig, struct uml_pt_regs *regs)
>      |      ^~~~~~~~~~~~~~~~~~~
>../arch/x86/um/os-Linux/registers.c:146:15: warning: no previous prototype for ‘get_thread_reg’ [-Wmissing-prototypes]
>  146 | unsigned long get_thread_reg(int reg, jmp_buf *buf)
>      |               ^~~~~~~~~~~~~~
>../arch/um/os-Linux/skas/process.c:107:6: warning: no previous prototype for ‘wait_stub_done’ [-Wmissing-prototypes]
>  107 | void wait_stub_done(int pid)
>      |      ^~~~~~~~~~~~~~
>../arch/x86/um/vdso/um_vdso.c:16:5: warning: no previous prototype for ‘__vdso_clock_gettime’ [-Wmissing-prototypes]
>   16 | int __vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts)
>      |     ^~~~~~~~~~~~~~~~~~~~
>../arch/x86/um/vdso/um_vdso.c:30:5: warning: no previous prototype for ‘__vdso_gettimeofday’ [-Wmissing-prototypes]
>   30 | int __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz)
>      |     ^~~~~~~~~~~~~~~~~~~
>../arch/x86/um/vdso/um_vdso.c:44:21: warning: no previous prototype for ‘__vdso_time’ [-Wmissing-prototypes]
>   44 | __kernel_old_time_t __vdso_time(__kernel_old_time_t *t)
>      |                     ^~~~~~~~~~~
>../arch/x86/um/vdso/um_vdso.c:57:1: warning: no previous prototype for ‘__vdso_getcpu’ [-Wmissing-prototypes]
>   57 | __vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused)
>      | ^~~~~~~~~~~~~
>../arch/um/os-Linux/skas/process.c:683:6: warning: no previous prototype for ‘__switch_mm’ [-Wmissing-prototypes]
>  683 | void __switch_mm(struct mm_id *mm_idp)
>      |      ^~~~~~~~~~~
>../arch/x86/um/os-Linux/mcontext.c:7:6: warning: no previous prototype for ‘get_regs_from_mc’ [-Wmissing-prototypes]
>    7 | void get_regs_from_mc(struct uml_pt_regs *regs, mcontext_t *mc)
>      |      ^~~~~~~~~~~~~~~~
>../arch/um/kernel/skas/mmu.c:17:5: warning: no previous prototype for ‘init_new_context’ [-Wmissing-prototypes]
>   17 | int init_new_context(struct task_struct *task, struct mm_struct *mm)
>      |     ^~~~~~~~~~~~~~~~
>../arch/um/kernel/skas/mmu.c:60:6: warning: no previous prototype for ‘destroy_context’ [-Wmissing-prototypes]
>   60 | void destroy_context(struct mm_struct *mm)
>      |      ^~~~~~~~~~~~~~~
>../arch/um/os-Linux/main.c:187:7: warning: no previous prototype for ‘__wrap_malloc’ [-Wmissing-prototypes]
>  187 | void *__wrap_malloc(int size)
>      |       ^~~~~~~~~~~~~
>../arch/um/os-Linux/main.c:208:7: warning: no previous prototype for ‘__wrap_calloc’ [-Wmissing-prototypes]
>  208 | void *__wrap_calloc(int n, int size)
>      |       ^~~~~~~~~~~~~
>../arch/um/os-Linux/main.c:222:6: warning: no previous prototype for ‘__wrap_free’ [-Wmissing-prototypes]
>  222 | void __wrap_free(void *ptr)
>      |      ^~~~~~~~~~~
>../arch/um/kernel/skas/process.c:36:12: warning: no previous prototype for ‘start_uml’ [-Wmissing-prototypes]
>   36 | int __init start_uml(void)
>      |            ^~~~~~~~~
>../arch/um/os-Linux/mem.c:28:6: warning: no previous prototype for ‘kasan_map_memory’ [-Wmissing-prototypes]
>   28 | void kasan_map_memory(void *start, size_t len)
>      |      ^~~~~~~~~~~~~~~~
>../arch/um/os-Linux/mem.c:212:13: warning: no previous prototype for ‘check_tmpexec’ [-Wmissing-prototypes]
>  212 | void __init check_tmpexec(void)
>      |             ^~~~~~~~~~~~~
>../arch/x86/um/ptrace_64.c:111:5: warning: no previous prototype for ‘poke_user’ [-Wmissing-prototypes]
>  111 | int poke_user(struct task_struct *child, long addr, long data)
>      |     ^~~~~~~~~
>../arch/x86/um/ptrace_64.c:171:5: warning: no previous prototype for ‘peek_user’ [-Wmissing-prototypes]
>  171 | int peek_user(struct task_struct *child, long addr, long data)
>      |     ^~~~~~~~~
>../arch/um/kernel/mem.c:202:8: warning: no previous prototype for ‘pgd_alloc’ [-Wmissing-prototypes]
>  202 | pgd_t *pgd_alloc(struct mm_struct *mm)
>      |        ^~~~~~~~~
>../arch/um/kernel/mem.c:215:7: warning: no previous prototype for ‘uml_kmalloc’ [-Wmissing-prototypes]
>  215 | void *uml_kmalloc(int size, int flags)
>      |       ^~~~~~~~~~~
>../arch/um/os-Linux/signal.c:75:6: warning: no previous prototype for ‘sig_handler’ [-Wmissing-prototypes]
>   75 | void sig_handler(int sig, struct siginfo *si, mcontext_t *mc)
>      |      ^~~~~~~~~~~
>../arch/um/os-Linux/signal.c:111:6: warning: no previous prototype for ‘timer_alarm_handler’ [-Wmissing-prototypes]
>  111 | void timer_alarm_handler(int sig, struct siginfo *unused_si, mcontext_t *mc)
>      |      ^~~~~~~~~~~~~~~~~~~
>../arch/um/os-Linux/start_up.c:301:12: warning: no previous prototype for ‘parse_iomem’ [-Wmissing-prototypes]
>  301 | int __init parse_iomem(char *str, int *add)
>      |            ^~~~~~~~~~~
>../arch/x86/um/signal.c:560:6: warning: no previous prototype for ‘sys_rt_sigreturn’ [-Wmissing-prototypes]
>  560 | long sys_rt_sigreturn(void)
>      |      ^~~~~~~~~~~~~~~~
>../arch/um/kernel/process.c:51:5: warning: no previous prototype for ‘pid_to_processor_id’ [-Wmissing-prototypes]
>   51 | int pid_to_processor_id(int pid)
>      |     ^~~~~~~~~~~~~~~~~~~
>../arch/um/kernel/process.c:87:7: warning: no previous prototype for ‘__switch_to’ [-Wmissing-prototypes]
>   87 | void *__switch_to(struct task_struct *from, struct task_struct *to)
>      |       ^~~~~~~~~~~
>../arch/um/kernel/process.c:140:6: warning: no previous prototype for ‘fork_handler’ [-Wmissing-prototypes]
>  140 | void fork_handler(void)
>      |      ^~~~~~~~~~~~
>../arch/um/kernel/process.c:217:6: warning: no previous prototype for ‘arch_cpu_idle’ [-Wmissing-prototypes]
>  217 | void arch_cpu_idle(void)
>      |      ^~~~~~~~~~~~~
>../arch/um/kernel/process.c:253:5: warning: no previous prototype for ‘copy_to_user_proc’ [-Wmissing-prototypes]
>  253 | int copy_to_user_proc(void __user *to, void *from, int size)
>      |     ^~~~~~~~~~~~~~~~~
>../arch/um/kernel/process.c:263:5: warning: no previous prototype for ‘clear_user_proc’ [-Wmissing-prototypes]
>  263 | int clear_user_proc(void __user *buf, int size)
>      |     ^~~~~~~~~~~~~~~
>../arch/um/kernel/process.c:271:6: warning: no previous prototype for ‘set_using_sysemu’ [-Wmissing-prototypes]
>  271 | void set_using_sysemu(int value)
>      |      ^~~~~~~~~~~~~~~~
>../arch/um/kernel/process.c:278:5: warning: no previous prototype for ‘get_using_sysemu’ [-Wmissing-prototypes]
>  278 | int get_using_sysemu(void)
>      |     ^~~~~~~~~~~~~~~~
>../arch/um/kernel/process.c:316:12: warning: no previous prototype for ‘make_proc_sysemu’ [-Wmissing-prototypes]
>  316 | int __init make_proc_sysemu(void)
>      |            ^~~~~~~~~~~~~~~~
>../arch/um/kernel/process.c:348:15: warning: no previous prototype for ‘arch_align_stack’ [-Wmissing-prototypes]
>  348 | unsigned long arch_align_stack(unsigned long sp)
>      |               ^~~~~~~~~~~~~~~~
>../arch/um/kernel/reboot.c:45:6: warning: no previous prototype for ‘machine_restart’ [-Wmissing-prototypes]
>   45 | void machine_restart(char * __unused)
>      |      ^~~~~~~~~~~~~~~
>../arch/um/kernel/reboot.c:51:6: warning: no previous prototype for ‘machine_power_off’ [-Wmissing-prototypes]
>   51 | void machine_power_off(void)
>      |      ^~~~~~~~~~~~~~~~~
>../arch/um/kernel/reboot.c:57:6: warning: no previous prototype for ‘machine_halt’ [-Wmissing-prototypes]
>   57 | void machine_halt(void)
>      |      ^~~~~~~~~~~~
>../arch/um/kernel/tlb.c:579:6: warning: no previous prototype for ‘flush_tlb_mm_range’ [-Wmissing-prototypes]
>  579 | void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start,
>      |      ^~~~~~~~~~~~~~~~~~
>../arch/um/kernel/tlb.c:594:6: warning: no previous prototype for ‘force_flush_all’ [-Wmissing-prototypes]
>  594 | void force_flush_all(void)
>      |      ^~~~~~~~~~~~~~~
>../arch/um/kernel/um_arch.c:408:19: warning: no previous prototype for ‘read_initrd’ [-Wmissing-prototypes]
>  408 | int __init __weak read_initrd(void)
>      |                   ^~~~~~~~~~~
>../arch/um/kernel/um_arch.c:461:7: warning: no previous prototype for ‘text_poke’ [-Wmissing-prototypes]
>  461 | void *text_poke(void *addr, const void *opcode, size_t len)
>      |       ^~~~~~~~~
>../arch/um/kernel/um_arch.c:473:6: warning: no previous prototype for ‘text_poke_sync’ [-Wmissing-prototypes]
>  473 | void text_poke_sync(void)
>      |      ^~~~~~~~~~~~~~
>../arch/um/kernel/kmsg_dump.c:60:12: warning: no previous prototype for ‘kmsg_dumper_stdout_init’ [-Wmissing-prototypes]
>   60 | int __init kmsg_dumper_stdout_init(void)
>      |            ^~~~~~~~~~~~~~~~~~~~~~~
>../arch/x86/um/syscalls_64.c:48:6: warning: no previous prototype for ‘arch_switch_to’ [-Wmissing-prototypes]
>   48 | void arch_switch_to(struct task_struct *to)
>      |      ^~~~~~~~~~~~~~
>../drivers/gpu/drm/xe/xe_gsc.c:10:10: fatal error: generated/xe_wa_oob.h: No such file or directory
>   10 | #include <generated/xe_wa_oob.h>
>      |          ^~~~~~~~~~~~~~~~~~~~~~~


So, I'm trying to make this generic so the generated .h/.c are done
before anything else is attempted. I'm puzzled that this works for me
for x86-64 with xe as a module or built-in, but for some reason is
failing when using ARCH=um.

Any idea what's going on?

thanks
Lucas De Marchi

>compilation terminated.
>make[7]: *** [../scripts/Makefile.build:244: drivers/gpu/drm/xe/xe_gsc.o] Error 1
>make[7]: *** Waiting for unfinished jobs....
>make[6]: *** [../scripts/Makefile.build:485: drivers/gpu/drm/xe] Error 2
>make[6]: *** Waiting for unfinished jobs....
>../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
>  156 | u64 ioread64_lo_hi(const void __iomem *addr)
>      |     ^~~~~~~~~~~~~~
>../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
>  163 | u64 ioread64_hi_lo(const void __iomem *addr)
>      |     ^~~~~~~~~~~~~~
>../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
>  170 | u64 ioread64be_lo_hi(const void __iomem *addr)
>      |     ^~~~~~~~~~~~~~~~
>../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
>  178 | u64 ioread64be_hi_lo(const void __iomem *addr)
>      |     ^~~~~~~~~~~~~~~~
>../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
>  264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
>      |      ^~~~~~~~~~~~~~~
>../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
>  272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
>      |      ^~~~~~~~~~~~~~~
>../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
>  280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
>      |      ^~~~~~~~~~~~~~~~~
>../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
>  288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
>      |      ^~~~~~~~~~~~~~~~~
>make[5]: *** [../scripts/Makefile.build:485: drivers/gpu/drm] Error 2
>make[4]: *** [../scripts/Makefile.build:485: drivers/gpu] Error 2
>make[3]: *** [../scripts/Makefile.build:485: drivers] Error 2
>make[3]: *** Waiting for unfinished jobs....
>make[2]: *** [/kernel/Makefile:1919: .] Error 2
>make[1]: *** [/kernel/Makefile:240: __sub-make] Error 2
>make: *** [Makefile:240: __sub-make] Error 2
>
>[21:34:13] Configuring KUnit Kernel ...
>Generating .config ...
>Populating config with:
>$ make ARCH=um O=.kunit olddefconfig
>[21:34:17] Building KUnit Kernel ...
>Populating config with:
>$ make ARCH=um O=.kunit olddefconfig
>Building with:
>$ make ARCH=um O=.kunit --jobs=48
>+ cleanup
>++ stat -c %u:%g /kernel
>+ chown -R 1003:1003 /kernel
>
>


More information about the Intel-xe mailing list