# git rev-parse -q --verify 093b995e3b55a0ae0670226ddfcb05bfbf0099ae^{commit} 093b995e3b55a0ae0670226ddfcb05bfbf0099ae already have revision, skipping fetch # git checkout -q -f -B kisskb 093b995e3b55a0ae0670226ddfcb05bfbf0099ae # git clean -qxdf # git log -1 commit 093b995e3b55a0ae0670226ddfcb05bfbf0099ae Author: Huang Ying Date: Mon Mar 20 14:26:42 2017 +0800 mm, swap: Remove WARN_ON_ONCE() in free_swap_slot() Before commit 452b94b8c8c7 ("mm/swap: don't BUG_ON() due to uninitialized swap slot cache"), the following bug is reported, ------------[ cut here ]------------ kernel BUG at mm/swap_slots.c:270! invalid opcode: 0000 [#1] SMP CPU: 5 PID: 1745 Comm: (sd-pam) Not tainted 4.11.0-rc1-00243-g24c534bb161b #1 Hardware name: System manufacturer System Product Name/Z170-K, BIOS 1803 05/06/2016 RIP: 0010:free_swap_slot+0xba/0xd0 Call Trace: swap_free+0x36/0x40 do_swap_page+0x360/0x6d0 __handle_mm_fault+0x880/0x1080 handle_mm_fault+0xd0/0x240 __do_page_fault+0x232/0x4d0 do_page_fault+0x20/0x70 page_fault+0x22/0x30 ---[ end trace aefc9ede53e0ab21 ]--- This is raised by the BUG_ON(!swap_slot_cache_initialized) in free_swap_slot(). This is incorrect, because even if the swap slots cache fails to be initialized, the swap should operate properly without the swap slots cache. And the use_swap_slot_cache check later in the function will protect the uninitialized swap slots cache case. In commit 452b94b8c8c7, the BUG_ON() is replaced by WARN_ON_ONCE(). In the patch, the WARN_ON_ONCE() is removed too. Reported-by: Linus Torvalds Acked-by: Tim Chen Cc: Michal Hocko Signed-off-by: "Huang, Ying" Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux-gcc --version # < git log --format=%s --max-count=1 093b995e3b55a0ae0670226ddfcb05bfbf0099ae # < make -j 48 ARCH=sh O=/home/kisskb/slave/build/linus_sh-randconfig_sh4 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux- randconfig KCONFIG_SEED=0xC4785B55 # Added to kconfig CONFIG_STANDALONE=y # yes \n | make -j 48 ARCH=sh O=/home/kisskb/slave/build/linus_sh-randconfig_sh4 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux- oldconfig yes: standard output: Broken pipe yes: write error # make -j 48 ARCH=sh O=/home/kisskb/slave/build/linus_sh-randconfig_sh4 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux- make[1]: Entering directory '/home/kisskb/slave/build/linus_sh-randconfig_sh4' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release UPD include/config/kernel.release GEN ./Makefile WRAP arch/sh/include/generated/asm/bitsperlong.h WRAP arch/sh/include/generated/asm/clkdev.h WRAP arch/sh/include/generated/asm/current.h WRAP arch/sh/include/generated/asm/delay.h WRAP arch/sh/include/generated/asm/div64.h WRAP arch/sh/include/generated/asm/emergency-restart.h WRAP arch/sh/include/generated/asm/errno.h WRAP arch/sh/include/generated/asm/exec.h WRAP arch/sh/include/generated/asm/fcntl.h WRAP arch/sh/include/generated/asm/ioctl.h WRAP arch/sh/include/generated/asm/ipcbuf.h WRAP arch/sh/include/generated/asm/irq_regs.h WRAP arch/sh/include/generated/asm/irq_work.h WRAP arch/sh/include/generated/asm/kvm_para.h WRAP arch/sh/include/generated/asm/local.h WRAP arch/sh/include/generated/asm/local64.h WRAP arch/sh/include/generated/asm/mcs_spinlock.h WRAP arch/sh/include/generated/asm/mm-arch-hooks.h WRAP arch/sh/include/generated/asm/mman.h WRAP arch/sh/include/generated/asm/msgbuf.h WRAP arch/sh/include/generated/asm/param.h WRAP arch/sh/include/generated/asm/parport.h WRAP arch/sh/include/generated/asm/percpu.h WRAP arch/sh/include/generated/asm/poll.h WRAP arch/sh/include/generated/asm/preempt.h WRAP arch/sh/include/generated/asm/resource.h WRAP arch/sh/include/generated/asm/rwsem.h WRAP arch/sh/include/generated/asm/sembuf.h WRAP arch/sh/include/generated/asm/serial.h WRAP arch/sh/include/generated/asm/shmbuf.h WRAP arch/sh/include/generated/asm/siginfo.h WRAP arch/sh/include/generated/asm/sizes.h WRAP arch/sh/include/generated/asm/socket.h WRAP arch/sh/include/generated/asm/statfs.h WRAP arch/sh/include/generated/asm/termbits.h WRAP arch/sh/include/generated/asm/termios.h WRAP arch/sh/include/generated/asm/ucontext.h WRAP arch/sh/include/generated/asm/trace_clock.h WRAP arch/sh/include/generated/asm/xor.h CHK include/generated/uapi/linux/version.h UPD include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h UPD include/generated/utsrelease.h HOSTCC scripts/basic/bin2c Using /home/kisskb/slave/src as source for kernel HOSTCC scripts/kallsyms HOSTCC scripts/conmakehash HOSTCC scripts/dtc/dtc.o HOSTCC scripts/dtc/flattree.o CC scripts/mod/empty.o HOSTCC scripts/dtc/fstree.o HOSTCC scripts/mod/mk_elfconfig HOSTCC scripts/dtc/livetree.o HOSTCC scripts/dtc/data.o HOSTCC scripts/dtc/treesource.o CC scripts/mod/devicetable-offsets.s SHIPPED scripts/dtc/dtc-lexer.lex.c HOSTCC scripts/dtc/checks.o HOSTCC scripts/dtc/util.o HOSTCC scripts/dtc/srcpos.o SHIPPED scripts/dtc/dtc-parser.tab.c SHIPPED scripts/dtc/dtc-parser.tab.h HOSTCC scripts/dtc/dtc-lexer.lex.o HOSTCC scripts/dtc/dtc-parser.tab.o MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/sumversion.o HOSTCC scripts/mod/modpost.o GEN scripts/mod/devicetable-offsets.h HOSTCC scripts/mod/file2alias.o HOSTLD scripts/dtc/dtc HOSTLD scripts/mod/modpost Generating include/generated/machtypes.h CHK include/generated/timeconst.h CC kernel/bounds.s UPD include/generated/timeconst.h CHK include/generated/bounds.h UPD include/generated/bounds.h CC arch/sh/kernel/asm-offsets.s GEN scripts/gdb/linux/constants.py CHK include/generated/asm-offsets.h UPD include/generated/asm-offsets.h CALL /home/kisskb/slave/src/scripts/checksyscalls.sh :1316:2: warning: #warning syscall pkey_mprotect not implemented [-Wcpp] :1319:2: warning: #warning syscall pkey_alloc not implemented [-Wcpp] :1322:2: warning: #warning syscall pkey_free not implemented [-Wcpp] :1325:2: warning: #warning syscall statx not implemented [-Wcpp] cc1: warning: unrecognized command line option "-Wno-maybe-uninitialized" [enabled by default] CC init/main.o CHK include/generated/compile.h CC init/do_mounts.o CC init/do_mounts_rd.o CC init/do_mounts_initrd.o CC init/do_mounts_md.o CC init/initramfs.o CC init/init_task.o UPD include/generated/compile.h CC init/version.o HOSTCC usr/gen_init_cpio AS arch/sh/kernel/debugtraps.o CC arch/sh/kernel/dma-nommu.o CC arch/sh/kernel/dumpstack.o CC arch/sh/kernel/idle.o CC arch/sh/kernel/irq.o CC arch/sh/kernel/irq_32.o CC arch/sh/kernel/io.o CC arch/sh/kernel/kdebugfs.o CC arch/sh/kernel/machvec.o CC arch/sh/kernel/nmi_debug.o CC arch/sh/kernel/process_32.o CC arch/sh/kernel/ptrace_32.o CC arch/sh/kernel/ptrace.o CC arch/sh/kernel/reboot.o CC arch/sh/kernel/return_address.o CC arch/sh/kernel/topology.o CC arch/sh/kernel/signal_32.o CC arch/sh/kernel/sys_sh.o CC arch/sh/kernel/process.o CC arch/sh/kernel/traps.o CC arch/sh/kernel/setup.o CC arch/sh/kernel/traps_32.o AS arch/sh/kernel/syscalls_32.o CC arch/sh/kernel/unwinder.o CC arch/sh/kernel/time.o CC arch/sh/kernel/iomap.o LDS arch/sh/kernel/vmlinux.lds CC arch/sh/kernel/sys_sh32.o AS arch/sh/kernel/head_32.o CC arch/sh/kernel/ftrace.o CC arch/sh/kernel/hw_breakpoint.o CC arch/sh/kernel/sh_bios.o CC arch/sh/kernel/kgdb.o CC arch/sh/kernel/perf_callchain.o CC arch/sh/kernel/perf_event.o CC arch/sh/kernel/crash_dump.o CC arch/sh/kernel/stacktrace.o CC arch/sh/kernel/cpu/clock-cpg.o CC arch/sh/kernel/cpu/init.o CC arch/sh/kernel/cpu/clock.o CC arch/sh/kernel/cpu/irq/imask.o CC arch/sh/mm/alignment.o CC arch/sh/kernel/cpu/fpu.o LD arch/sh/boards/built-in.o CC arch/sh/kernel/cpu/pfc.o CC arch/sh/kernel/cpu/sh4/probe.o CC arch/sh/mm/cache.o CC arch/sh/kernel/cpu/proc.o AS arch/sh/kernel/cpu/sh4/../sh3/ex.o AS arch/sh/kernel/cpu/sh4/../sh3/entry.o CC arch/sh/kernel/cpu/sh4/sq.o CC arch/sh/kernel/cpu/sh4/setup-sh4-202.o /home/kisskb/slave/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S: Assembler messages: /home/kisskb/slave/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:89: Warning: overflow in branch to __restore_all; converted into longer instruction sequence /home/kisskb/slave/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:208: Warning: overflow in branch to syscall_call; converted into longer instruction sequence /home/kisskb/slave/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:356: Warning: overflow in branch to syscall_trace_entry; converted into longer instruction sequence /home/kisskb/slave/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:358: Warning: overflow in branch to syscall_trace_entry; converted into longer instruction sequence /home/kisskb/slave/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:389: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence /home/kisskb/slave/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:392: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence CC arch/sh/mm/init.o CC arch/sh/mm/consistent.o GEN usr/initramfs_data.cpio.xz CC arch/sh/kernel/cpu/sh4/clock-sh4.o CC arch/sh/mm/mmap.o CC arch/sh/mm/cache-sh4.o CC arch/sh/mm/flush-sh4.o CC arch/sh/kernel/cpu/sh4/clock-sh4-202.o CC arch/sh/mm/nommu.o CC arch/sh/mm/extable_32.o /home/kisskb/slave/src/arch/sh/kernel/cpu/clock-cpg.c: In function 'cpg_clk_init': /home/kisskb/slave/src/arch/sh/kernel/cpu/clock-cpg.c:52:3: warning: 'arch_init_clk_ops' is deprecated (declared at /home/kisskb/slave/src/arch/sh/include/asm/clock.h:7) [-Wdeprecated-declarations] /home/kisskb/slave/src/arch/sh/kernel/cpu/clock-cpg.c: In function 'arch_clk_init': /home/kisskb/slave/src/arch/sh/kernel/cpu/clock-cpg.c:76:2: warning: 'cpg_clk_init' is deprecated (declared at /home/kisskb/slave/src/arch/sh/kernel/cpu/clock-cpg.c:46) [-Wdeprecated-declarations] CC arch/sh/mm/asids-debugfs.o LD arch/sh/kernel/cpu/sh4/common.o /home/kisskb/slave/src/arch/sh/kernel/cpu/clock-cpg.c: At top level: cc1: warning: unrecognized command line option "-Wno-maybe-uninitialized" [enabled by default] AS usr/initramfs_data.o LD certs/built-in.o LD usr/built-in.o /home/kisskb/slave/src/arch/sh/kernel/cpu/sh4/clock-sh4-202.c: In function 'arch_clk_init': /home/kisskb/slave/src/arch/sh/kernel/cpu/sh4/clock-sh4-202.c:162:2: warning: 'cpg_clk_init' is deprecated (declared at /home/kisskb/slave/src/arch/sh/include/asm/clock.h:11) [-Wdeprecated-declarations] LD arch/sh/kernel/cpu/irq/built-in.o /home/kisskb/slave/src/arch/sh/mm/cache-sh4.c: In function 'flush_cache_one': /home/kisskb/slave/src/arch/sh/mm/cache-sh4.c:99:17: error: 'cached_to_uncached' undeclared (first use in this function) /home/kisskb/slave/src/arch/sh/mm/cache-sh4.c:99:17: note: each undeclared identifier is reported only once for each function it appears in /home/kisskb/slave/src/arch/sh/mm/cache-sh4.c: In function 'sh4_flush_cache_mm': /home/kisskb/slave/src/arch/sh/mm/cache-sh4.c:192:2: error: implicit declaration of function 'cpu_context' [-Werror=implicit-function-declaration] /home/kisskb/slave/src/arch/sh/mm/cache-sh4.c: At top level: cc1: error: unrecognized command line option "-Wno-maybe-uninitialized" [-Werror] cc1: all warnings being treated as errors /home/kisskb/slave/src/scripts/Makefile.build:294: recipe for target 'arch/sh/mm/cache-sh4.o' failed make[2]: *** [arch/sh/mm/cache-sh4.o] Error 1 make[2]: *** Waiting for unfinished jobs.... /home/kisskb/slave/src/arch/sh/kernel/cpu/sh4/clock-sh4-202.c: At top level: cc1: warning: unrecognized command line option "-Wno-maybe-uninitialized" [enabled by default] LD arch/sh/kernel/cpu/sh4/built-in.o LD arch/sh/kernel/cpu/built-in.o CC mm/filemap.o CC mm/mempool.o CC mm/oom_kill.o CC mm/maccess.o CC kernel/cpu.o CC kernel/fork.o CC kernel/exec_domain.o CC mm/page_alloc.o CC kernel/exit.o CC kernel/softirq.o CC kernel/sysctl_binary.o CC kernel/panic.o CC mm/page-writeback.o CC mm/truncate.o CC kernel/resource.o CC mm/swap.o CC kernel/sysctl.o CC mm/shmem.o CC mm/readahead.o CC mm/util.o CC kernel/ptrace.o CC mm/vmscan.o CC kernel/capability.o CC kernel/signal.o CC mm/mmzone.o CC kernel/user.o CC mm/mm_init.o CC mm/slab_common.o CC kernel/sys.o CC kernel/kmod.o CC kernel/task_work.o CC mm/percpu.o CC mm/backing-dev.o CC kernel/pid.o CC mm/vmstat.o CC mm/mmu_context.o CC kernel/extable.o CC kernel/workqueue.o CC mm/compaction.o CC kernel/kthread.o CC kernel/params.o CC mm/vmacache.o CC mm/swap_slots.o LD init/mounts.o CC mm/interval_tree.o LD init/built-in.o CC kernel/sys_ni.o /home/kisskb/slave/src/Makefile:1002: recipe for target 'arch/sh/mm' failed make[1]: *** [arch/sh/mm] Error 2 make[1]: *** Waiting for unfinished jobs.... CC mm/list_lru.o CC mm/workingset.o CC kernel/nsproxy.o CC kernel/notifier.o CC mm/debug.o CC mm/nommu.o CC mm/init-mm.o LD arch/sh/kernel/built-in.o CC mm/bootmem.o CC kernel/cred.o CC kernel/ksysfs.o CC mm/fadvise.o CC mm/memblock.o CC kernel/reboot.o CC kernel/async.o CC kernel/range.o CC mm/dmapool.o CC kernel/smpboot.o CC mm/sparse.o CC mm/page_poison.o CC kernel/ucount.o CC kernel/groups.o /home/kisskb/slave/src/mm/bootmem.c: In function 'mark_bootmem': /home/kisskb/slave/src/mm/bootmem.c:385:1: warning: control reaches end of non-void function [-Wreturn-type] CC mm/slab.o CC kernel/debug/gdbstub.o CC kernel/debug/debug_core.o CC mm/failslab.o CC kernel/events/core.o CC kernel/debug/kdb/kdb_io.o CC kernel/debug/kdb/kdb_main.o CC kernel/debug/kdb/kdb_bt.o GENKDB kernel/debug/kdb/gen-kdb_cmds.c CC kernel/debug/kdb/kdb_support.o CC kernel/debug/kdb/kdb_bp.o CC kernel/events/ring_buffer.o CC kernel/events/callchain.o CC kernel/events/hw_breakpoint.o CC kernel/gcov/base.o CC kernel/gcov/fs.o CC kernel/gcov/gcc_3_4.o CC kernel/debug/kdb/kdb_debugger.o CC mm/memtest.o CC mm/quicklist.o LD kernel/livepatch/built-in.o CC mm/kmemleak.o /home/kisskb/slave/src/mm/bootmem.c: At top level: cc1: warning: unrecognized command line option "-Wno-maybe-uninitialized" [enabled by default] CC kernel/debug/kdb/gen-kdb_cmds.o CC mm/page_owner.o CC mm/cleancache.o CC kernel/irq/irqdesc.o CC mm/balloon_compaction.o CC mm/zpool.o CC mm/page_ext.o CC kernel/irq/handle.o CC mm/frame_vector.o CC kernel/locking/mutex.o CC kernel/printk/printk.o CC mm/debug_page_ref.o CC kernel/power/qos.o CC kernel/power/poweroff.o CC kernel/printk/printk_safe.o CC kernel/locking/semaphore.o CC kernel/irq/manage.o CC kernel/irq/spurious.o CC kernel/rcu/update.o CC kernel/locking/rwsem.o CC kernel/locking/percpu-rwsem.o CC kernel/irq/resend.o CC kernel/irq/chip.o CC kernel/irq/dummychip.o CC kernel/sched/core.o CC kernel/sched/loadavg.o CC kernel/rcu/sync.o CC kernel/irq/devres.o CC kernel/rcu/srcu.o CC kernel/irq/generic-chip.o CC kernel/time/time.o CC kernel/locking/mutex-debug.o CC kernel/irq/irqdomain.o CC kernel/profile.o CC kernel/time/timer.o CC kernel/locking/lockdep.o CC kernel/stacktrace.o CC kernel/futex.o CC kernel/locking/lockdep_proc.o CC kernel/irq/proc.o CC kernel/up.o CC kernel/locking/spinlock.o CC kernel/uid16.o CC kernel/kallsyms.o CC kernel/locking/rtmutex.o CC kernel/rcu/rcutorture.o CC kernel/rcu/rcuperf.o CC kernel/locking/rtmutex-debug.o /home/kisskb/slave/src/kernel/sched/core.c: In function 'pick_next_task': /home/kisskb/slave/src/kernel/sched/core.c:3322:1: warning: control reaches end of non-void function [-Wreturn-type] CC kernel/sched/clock.o CC kernel/time/timekeeping.o CC kernel/rcu/tiny.o CC kernel/time/hrtimer.o CC kernel/sched/cputime.o CC kernel/trace/trace_selftest_dynamic.o LD kernel/gcov/built-in.o CC kernel/acct.o GZIP kernel/config_data.gz CC kernel/locking/spinlock_debug.o CC kernel/hung_task.o CC kernel/sched/idle_task.o CC kernel/relay.o CC kernel/sched/fair.o CC kernel/utsname_sysctl.o LD kernel/power/built-in.o CC kernel/tracepoint.o CC kernel/irq_work.o CC kernel/crash_dump.o CC kernel/trace/trace_clock.o CC kernel/trace/ftrace.o CC kernel/sched/rt.o CC kernel/trace/ring_buffer.o CC kernel/trace/ring_buffer_benchmark.o CC kernel/locking/rwsem-spinlock.o /home/kisskb/slave/src/kernel/printk/printk.c: In function 'devkmsg_sysctl_set_loglvl': /home/kisskb/slave/src/kernel/printk/printk.c:186:16: warning: 'old' may be used uninitialized in this function [-Wuninitialized] CC kernel/locking/test-ww_mutex.o CC kernel/trace/trace.o CC kernel/time/ntp.o CC kernel/torture.o CC kernel/trace/trace_output.o CC kernel/membarrier.o CC kernel/trace/trace_seq.o CC kernel/sched/deadline.o CC kernel/memremap.o CC kernel/sched/stop_task.o CC kernel/sched/wait.o CC kernel/trace/trace_stat.o CC kernel/trace/trace_printk.o CC kernel/trace/trace_sched_switch.o CC kernel/trace/trace_functions.o CC kernel/time/clocksource.o CC kernel/time/jiffies.o CC kernel/time/timer_list.o CC kernel/time/timeconv.o CC kernel/time/timecounter.o CC kernel/trace/trace_irqsoff.o CC kernel/trace/trace_hwlat.o CC kernel/trace/trace_nop.o LD kernel/irq/built-in.o CC kernel/trace/trace_stack.o CHK kernel/config_data.h CC kernel/trace/blktrace.o CC kernel/time/alarmtimer.o CC kernel/sched/swait.o UPD kernel/config_data.h CC kernel/configs.o CC kernel/time/posix-timers.o CC kernel/trace/trace_events.o CC kernel/time/posix-cpu-timers.o CC kernel/trace/trace_export.o CC kernel/trace/trace_event_perf.o LD kernel/rcu/built-in.o CC kernel/trace/trace_events_filter.o CC kernel/trace/power-traces.o CC kernel/trace/trace_events_trigger.o CC kernel/time/posix-clock.o CC kernel/time/itimer.o CC kernel/sched/completion.o CC kernel/time/clockevents.o CC kernel/time/tick-common.o CC kernel/time/sched_clock.o CC kernel/trace/trace_kdb.o CC kernel/sched/idle.o CC kernel/sched/cpufreq.o CC kernel/time/tick-oneshot.o CC kernel/time/timekeeping_debug.o CC kernel/time/tick-sched.o LD kernel/debug/kdb/built-in.o CC kernel/time/test_udelay.o LD kernel/debug/built-in.o /home/kisskb/slave/src/kernel/sched/core.c: At top level: cc1: warning: unrecognized command line option "-Wno-maybe-uninitialized" [enabled by default] /home/kisskb/slave/src/kernel/printk/printk.c: At top level: cc1: warning: unrecognized command line option "-Wno-maybe-uninitialized" [enabled by default] LD kernel/sched/built-in.o LD kernel/printk/built-in.o LD kernel/time/built-in.o LD mm/built-in.o LD kernel/locking/built-in.o LD kernel/trace/libftrace.o LD kernel/events/built-in.o LD kernel/trace/built-in.o LD kernel/built-in.o make[1]: *** wait: No child processes. Stop. Makefile:152: recipe for target 'sub-make' failed make: *** [sub-make] Error 2 Command 'make -j 48 ARCH=sh O=/home/kisskb/slave/build/linus_sh-randconfig_sh4 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux- ' returned non-zero exit status 2 # rm -rf /home/kisskb/slave/build/linus_sh-randconfig_sh4 # Build took: 0:00:18.988983