I've tried out the v4.4.19 based kernel in three variations, to get a feeling
for what kind of regressions we add. Over a couple of days, I had a vanilla
v4.4.19 stable kernel tested, and then the -rt27 release on top of that,
with the default settings, and with a patch that forces CONFIG_PREEMPT_RT_FULL
to be enabled on all builds. Unfortunately the results are not directly
comparable, and the recent addition of the MIPS builds means that
we get a lot of extra warnings that are a bit distracting:

         87 build warnings, 1 build failures, 0 boots failed, 166 passed

v4.4.19-rt27 REBASE:
         184 build warnings, 2 build failures, 2 boots failed, 523 passed 

         60 build warnings, 3 build failures, 8 boots failed, 61 passed

Greg, I checked the warnings in v4.4.19. We have previously made sure that
Mark Brown's build bot has a clean build, but the kernelci build apparently
does not for v4.4. These are the commits you may want to backport to get
a clean build on x86 and ARM (all the other warnings are MIPS specific,
and have not been fixed upstream):

166c5a6ef765 ("gma500: remove annoying deprecation warning")
3610a2add393 ("mpssd: fix buffer overflow warning")
44eb0cb9620c ("drm/i915: Avoid pointer arithmetic in calculating plane surface 
260b31643691 ("mmc: dw_mmc: use resource_size_t to store physical address")
32844138e313 ("pinctrl: at91-pio4: use %pr format string for resource")
00affcac69c7 ("soc: qcom/spm: shut up uninitialized variable warning")
236dec051078 ("kconfig: tinyconfig: provide whole choice blocks to avoid 
facc432faa59 ("net: simplify napi_synchronize() to avoid warnings")

With the same configurations on v4.4.19-rt27, a couple of build warnings
are introduced:

2098555 ("random: Make it work on rt")
  drivers/hv/vmbus_drv.c:831:2: error: too few arguments to function 

6a40894 ("preempt-lazy: Add the lazy-preemption check to preempt_schedule()")
  kernel/sched/core.c:3474:12: warning: 'preemptible_lazy' defined but not used 

ff1741a ("tty/serial/pl011: Make the locking work on RT")
  drivers/tty/serial/amba-pl011.c: In function 'pl011_console_write':
  include/linux/spinlock.h:370:95: warning: 'flags' may be used uninitialized 
in this function [-Wmaybe-uninitialized]

And with CONFIG_PREEMPT_RT, there are a few more warnings:

* PREEMPT_RT_FULL requires RT_MUTEX, which normally gets enabled through FUTEX,
  but FUTEX may be disabled
kernel/softirq.c: In function 'softirq_check_pending_idle':
kernel/softirq.c:126:11: error: 'struct task_struct' has no member named 
kernel/locking/rtmutex_common.h: In function 'task_has_pi_waiters':
kernel/locking/rtmutex_common.h:61:14: error: 'struct task_struct' has no 
member named 'pi_waiters'
kernel/locking/rtmutex_common.h:67:85: error: 'struct task_struct' has no 
member named 'pi_waiters_leftmost'

* upstream driver bugs we normally don't warn about:
drivers/infiniband/ulp/ipoib/ipoib_ib.c:54:21: warning: 'pkey_mutex' defined 
but not used [-Wunused-variable]
drivers/rtc/rtc-m41t80.c:71:21: warning: 'm41t80_rtc_mutex' defined but not 
used [-Wunused-variable]

* something makes stacks grow in ARM allmodconfig, haven't check what happens
drivers/media/usb/cx231xx/cx231xx-i2c.c:518:1: warning: the frame size of 1048 
bytes is larger than 1024 bytes [-Wframe-larger-than=]
drivers/media/usb/dvb-usb-v2/mxl111sf.c:935:1: warning: the frame size of 1032 
bytes is larger than 1024 bytes [-Wframe-larger-than=]
drivers/media/usb/em28xx/em28xx-camera.c:194:1: warning: the frame size of 1048 
bytes is larger than 1024 bytes [-Wframe-larger-than=]
drivers/media/usb/em28xx/em28xx-camera.c:299:1: warning: the frame size of 1056 
bytes is larger than 1024 bytes [-Wframe-larger-than=]
drivers/media/usb/pvrusb2/pvrusb2-eeprom.c:154:1: warning: the frame size of 
1128 bytes is larger than 1024 bytes [-Wframe-larger-than=]

The boot failures on v4.4.19-rt27 REBASE are false positives, the configuration
was already broken in v4.4.19 but didn't get reported in time for the kernelci

We get a number of boot failures with 
not all of them all the time. I haven't looked at them in detail.

One example is:
[    3.924111] BUG: scheduling while atomic: swapper/0/0/0x00000002
[    3.924116] Modules linked in:
[    3.924135] Preemption disabled at:[<c09ff2e4>] 
[    3.924137] 
[    3.924147] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 
4.4.19-rt27-02499-gbb46b50a5130 #1
[    3.924150] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[    3.924172] [<c0218a34>] (unwind_backtrace) from [<c0213fb8>] 
[    3.924189] [<c0213fb8>] (show_stack) from [<c0494aa0>] 
[    3.924207] [<c0494aa0>] (dump_stack) from [<c026aa78>] 
[    3.924219] [<c026aa78>] (__schedule_bug) from [<c09feca4>] 
[    3.924228] [<c09feca4>] (__schedule) from [<c09fed70>] (schedule+0x58/0xf4)
[    3.924238] [<c09fed70>] (schedule) from [<c0a00478>] 
[    3.924256] [<c0a00478>] (rt_spin_lock_slowlock) from [<c0a01c28>] 
[    3.924278] [<c0a01c28>] (rt_read_lock) from [<c02c6f98>] 
[    3.924294] [<c02c6f98>] (cpu_pm_enter) from [<c0244c90>] 
[    3.924309] [<c0244c90>] (tegra114_idle_power_down) from [<c084f3a4>] 
[    3.924321] [<c084f3a4>] (cpuidle_enter_state) from [<c0285ee0>] 
[    3.924333] [<c0285ee0>] (cpu_startup_entry) from [<c0e03ca8>] 
[    3.924342] [<c0e03ca8>] (start_kernel) from [<80208090>] (0x80208090)

A number of other build seem to have trouble with the serial port input
in that specific configuration (CONFIG_PREEMPT_RT_FULL+CONFIG_PROVE_LOCKING), 

# PYBOOT: userspace: at root shell
cat /proc/cmdline
[   27.710068] ttyS0: 1 input overrun(s)
/bin/sh: coc/cmne: not found
/ # uname -r
/bin/sh: unme-r: not found
/ # cat /proc/cpuinfo
ca /proc/cpuinfo
/bin/sh: ca: not found
/ # dmesg -n 1
dmeg n 1
/bin/sh: dmeg: not found
/ # DMESG=$(readlink -f /bin/dmesg)
DMSG$(readlink -f /bin/dmesg)

or also this one:
/bin/sh: can't access tty; job control turned off
[   19.347102] ttyAMA0: 1 input overrun(s)
export PS1="linaro-test (echo \$?)]# "


Reply via email to