Subject: [ANNOUNCE] v5.6.4-rt3

Dear RT folks!

I'm pleased to announce the v5.6.4-rt3 patch set.

Changes since v5.6.4-rt2:

- The printk thread could schedule where it is not appropriate.
Affects only PREEMPT_VOLUNTARY. Reported by kernel test robot,
patched by John Ogness.

- The initialization of nohz_full_kick_work triggered a warning.
Reported by kbuild test robot.

- Patch by patch compilation could fail to compile in the fs/proc due
to a missing header file. Reported by kbuild test robot.

- The cached signal struct could lead to a double free of another data
structure. Reported by Daniel Wagner, patch by Matt Fleming.

Known issues
- It has been pointed out that due to changes to the printk code the
internal buffer representation changed. This is only an issue if tools
like `crash' are used to extract the printk buffer from a kernel memory
image.

The delta patch against v5.6.4-rt2 is appended below and can be found here:

https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.6/incr/patch-5.6.4-rt2-rt3.patch.xz

You can get this release via the git tree at:

git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v5.6.4-rt3

The RT patch against v5.6.4 can be found here:

https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patch-5.6.4-rt3.patch.xz

The split quilt queue is available at:

https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz

Sebastian

diff --git a/fs/proc/base.c b/fs/proc/base.c
index 8c2a84fc4986d..eb8285ca344f3 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -96,6 +96,7 @@
#include <linux/posix-timers.h>
#include <linux/time_namespace.h>
#include <linux/resctrl.h>
+#include <linux/swait.h>
#include <trace/events/oom.h>
#include "internal.h"
#include "fd.h"
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 8821a8c2263ff..8bc683be08574 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -2715,6 +2715,7 @@ static int printk_kthread_func(void *data)
&len, printk_time);

console_lock();
+ console_may_schedule = 0;
call_console_drivers(master_seq, ext_text, ext_len, text, len,
msg->level, msg->facility);
if (len > 0 || ext_len > 0)
diff --git a/kernel/signal.c b/kernel/signal.c
index bfa9bcf27d3d7..75c82ecefdbb6 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -494,8 +494,8 @@ static void sigqueue_free_current(struct sigqueue *q)

up = q->user;
if (rt_prio(current->normal_prio) && !put_task_cache(current, q)) {
- atomic_dec(&up->sigpending);
- free_uid(up);
+ if (atomic_dec_and_test(&up->sigpending))
+ free_uid(up);
} else
__sigqueue_free(q);
}
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index b568947dc90e5..fc62dcbed7429 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -245,7 +245,7 @@ static void nohz_full_kick_func(struct irq_work *work)

static DEFINE_PER_CPU(struct irq_work, nohz_full_kick_work) = {
.func = nohz_full_kick_func,
- .flags = IRQ_WORK_HARD_IRQ,
+ .flags = ATOMIC_INIT(IRQ_WORK_HARD_IRQ),
};

/*
diff --git a/localversion-rt b/localversion-rt
index c3054d08a1129..1445cd65885cd 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt2
+-rt3


2020-04-21 05:13:27

by Mike Galbraith

[permalink] [raw]
Subject: v5.6.4-rt3 suspend time allocation gripe

The below happens ever since the warning was invented in 5.4-rt. I
haven't managed to find my round-tuit to even look at it for long
enough now that I guess I should at least report it.

[ 106.619915] WARNING: CPU: 0 PID: 4906 at mm/slub.c:2774 kmem_cache_alloc_trace+0x16d/0x3a0
[ 106.619921] Modules linked in: fuse(E) msr(E) xt_comment(E) xt_physdev(E) ebtable_filter(E) ebtables(E) nfnetlink_cthelper(E) nfnetlink(E) af_packet(E) br_netfilter(E) bridge(E) stp(E) llc(E) iscsi_ibft(E) iscsi_boot_sysfs(E) rfkill(E) ip6t_REJECT(E) ipt_REJECT(E) xt_pkttype(E) xt_tcpudp(E) iptable_filter(E) bpfilter(E) ip6table_mangle(E) nf_conntrack_netbios_ns(E) nf_conntrack_broadcast(E) ip_tables(E) xt_conntrack(E) nf_conntrack(E) nf_defrag_ipv6(E) nf_defrag_ipv4(E) libcrc32c(E) ip6table_filter(E) ip6_tables(E) x_tables(E) nls_iso8859_1(E) nls_cp437(E) intel_rapl_msr(E) joydev(E) usblp(E) intel_rapl_common(E) x86_pkg_temp_thermal(E) intel_powerclamp(E) coretemp(E) kvm_intel(E) kvm(E) irqbypass(E) iTCO_wdt(E) crct10dif_pclmul(E) iTCO_vendor_support(E) mei_hdcp(E) crc32_pclmul(E) crc32c_intel(E) ghash_clmulni_intel(E) snd_hda_codec_realtek(E) snd_hda_codec_generic(E) ledtrig_audio(E) aesni_intel(E) crypto_simd(E) cryptd(E) glue_helper(E) snd_hda_codec_hdmi(E) snd_hda_intel(E)
[ 106.619955] snd_intel_dspcfg(E) pcspkr(E) snd_hda_codec(E) snd_hda_core(E) snd_hwdep(E) r8169(E) snd_pcm(E) realtek(E) snd_timer(E) libphy(E) snd(E) lpc_ich(E) mei_me(E) soundcore(E) i2c_i801(E) mfd_core(E) mei(E) fan(E) thermal(E) intel_smartconnect(E) nfsd(E) auth_rpcgss(E) nfsv4(E) dns_resolver(E) nfs_acl(E) nfs(E) lockd(E) grace(E) sch_fq_codel(E) sunrpc(E) fscache(E) hid_logitech_hidpp(E) sr_mod(E) cdrom(E) hid_logitech_dj(E) ums_realtek(E) uas(E) usb_storage(E) hid_generic(E) usbhid(E) nouveau(E) wmi(E) i2c_algo_bit(E) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) sysimgblt(E) fb_sys_fops(E) cec(E) rc_core(E) ehci_pci(E) xhci_pci(E) ahci(E) ttm(E) libahci(E) ehci_hcd(E) xhci_hcd(E) drm(E) libata(E) usbcore(E) video(E) button(E) sd_mod(E) vfat(E) fat(E) virtio_blk(E) virtio_mmio(E) virtio_pci(E) virtio_ring(E) virtio(E) ext4(E) crc16(E) mbcache(E) jbd2(E) loop(E) sg(E) dm_multipath(E) dm_mod(E) scsi_dh_rdac(E) scsi_dh_emc(E) scsi_dh_alua(E) scsi_mod(E)
[ 106.619998] CPU: 0 PID: 4906 Comm: systemd-sleep Kdump: loaded Tainted: G E 5.6.4-rt3-rt #1
[ 106.620000] Hardware name: MEDION MS-7848/MS-7848, BIOS M7848W08.20C 09/23/2013
[ 106.620000] RIP: 0010:kmem_cache_alloc_trace+0x16d/0x3a0
[ 106.620002] Code: 48 0f a3 05 b5 bc 2d 01 72 27 48 83 c4 08 4c 89 f8 5b 5d 41 5c 41 5d 41 5e 41 5f c3 8b 35 3f 6c 2d 01 85 f6 0f 84 d1 fe ff ff <0f> 0b e9 ca fe ff ff 65 ff 05 ed 28 d4 52 48 8b 05 be d4 2b 01 e8
[ 106.620004] RSP: 0018:ffffa449433e7cf8 EFLAGS: 00010006
[ 106.620005] RAX: 0000000000000046 RBX: 0000000000000000 RCX: 0000000000000002
[ 106.620005] RDX: 0000000000000058 RSI: 0000000000000006 RDI: ffff98eb87c07400
[ 106.620006] RBP: ffff98eb87c07400 R08: 0000000000000000 R09: 0000000000000001
[ 106.620007] R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000b20
[ 106.620008] R13: 0000000000000058 R14: ffffffffad5c2705 R15: 0000000000000000
[ 106.620008] FS: 00007f2d481991c0(0000) GS:ffff98ee9ec00000(0000) knlGS:0000000000000000
[ 106.620009] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 106.620010] CR2: 0000556650f2ad30 CR3: 000000036b60a001 CR4: 00000000001606f0
[ 106.620011] Call Trace:
[ 106.620018] acpi_get_sleep_type_data+0xa2/0x206
[ 106.620024] acpi_hw_legacy_wake_prep+0x3c/0xd7
[ 106.620029] acpi_leave_sleep_state_prep+0x37/0x69
[ 106.620032] acpi_suspend_enter+0x94/0x400
[ 106.620039] suspend_devices_and_enter+0xa0c/0xed0
[ 106.620044] ? rcu_read_lock_sched_held+0x32/0x60
[ 106.620051] pm_suspend+0x324/0x390
[ 106.620055] state_store+0x7d/0xe0
[ 106.620062] kernfs_fop_write+0x113/0x1b0
[ 106.620069] vfs_write+0xc1/0x1d0
[ 106.620075] ksys_write+0x87/0xc0
[ 106.620081] do_syscall_64+0x6c/0x2c0
[ 106.620085] entry_SYSCALL_64_after_hwframe+0x49/0xbe
[ 106.620087] RIP: 0033:0x7f2d476a6244
[ 106.620089] Code: 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b7 0f 1f 80 00 00 00 00 8b 05 6a d1 2c 00 48 63 ff 85 c0 75 13 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 54 f3 c3 66 90 55 53 48 89 d5 48 89 f3 48 83
[ 106.620091] RSP: 002b:00007ffe5bc2d038 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
[ 106.620092] RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 00007f2d476a6244
[ 106.620093] RDX: 0000000000000004 RSI: 00005630e5c6f0f0 RDI: 0000000000000004
[ 106.620093] RBP: 00005630e5c6f0f0 R08: 00005630e5c6d390 R09: 00007f2d481991c0
[ 106.620094] R10: 000000000000000a R11: 0000000000000246 R12: 0000000000000004
[ 106.620095] R13: 0000000000000001 R14: 00005630e5c6d2b0 R15: 0000000000000004
[ 106.620111] irq event stamp: 129084
[ 106.620112] hardirqs last enabled at (129083): [<ffffffffad96a475>] _raw_spin_unlock_irqrestore+0x75/0x80
[ 106.620114] hardirqs last disabled at (129084): [<ffffffffad10ccdf>] suspend_devices_and_enter+0x25f/0xed0
[ 106.620116] softirqs last enabled at (128266): [<ffffffffad149854>] hrtimers_dead_cpu+0x254/0x2e0
[ 106.620119] softirqs last disabled at (128261): [<ffffffffad149623>] hrtimers_dead_cpu+0x23/0x2e0

2020-04-22 17:35:40

by Daniel Wagner

[permalink] [raw]
Subject: Re: [ANNOUNCE] v5.6.4-rt3

Hi Sebastian,

On Thu, Apr 16, 2020 at 06:45:10PM +0200, Sebastian Andrzej Siewior wrote:
> I'm pleased to announce the v5.6.4-rt3 patch set.

Finally solved my lab setup issue (NFS wants to use TCP per default now) and
all looks good. The fallout on rt-tests-migrate was a configuration bug on my
side. All rt-tests work and pass on my three system (Beaglebone Black 32bit,
RPi3 64bit and old x86_64 Core2 Duo CPU E8400 box in 64bit mode).

The only thing I've observed was higher latency numbers in sigwaittest but
that could be anything.

Thanks,
Daniel

Subject: Re: [ANNOUNCE] v5.6.4-rt3

On 2020-04-22 19:33:59 [+0200], Daniel Wagner wrote:
> Hi Sebastian,

Hi Daniel,

> On Thu, Apr 16, 2020 at 06:45:10PM +0200, Sebastian Andrzej Siewior wrote:
> > I'm pleased to announce the v5.6.4-rt3 patch set.
>
> Finally solved my lab setup issue (NFS wants to use TCP per default now) and
> all looks good. The fallout on rt-tests-migrate was a configuration bug on my
> side. All rt-tests work and pass on my three system (Beaglebone Black 32bit,
> RPi3 64bit and old x86_64 Core2 Duo CPU E8400 box in 64bit mode).

So there is no backtrace of any kind in any configuration (bug or no
bug)?

> The only thing I've observed was higher latency numbers in sigwaittest but
> that could be anything.
>
> Thanks,
> Daniel

Sebastian

2020-04-22 18:33:35

by Daniel Wagner

[permalink] [raw]
Subject: Re: [ANNOUNCE] v5.6.4-rt3

On Wed, Apr 22, 2020 at 08:12:32PM +0200, Sebastian Andrzej Siewior wrote:
> On 2020-04-22 19:33:59 [+0200], Daniel Wagner wrote:
> > Hi Sebastian,
>
> Hi Daniel,
>
> > On Thu, Apr 16, 2020 at 06:45:10PM +0200, Sebastian Andrzej Siewior wrote:
> > > I'm pleased to announce the v5.6.4-rt3 patch set.
> >
> > Finally solved my lab setup issue (NFS wants to use TCP per default now) and
> > all looks good. The fallout on rt-tests-migrate was a configuration bug on my
> > side. All rt-tests work and pass on my three system (Beaglebone Black 32bit,
> > RPi3 64bit and old x86_64 Core2 Duo CPU E8400 box in 64bit mode).
>
> So there is no backtrace of any kind in any configuration (bug or no
> bug)?

Correct, all tests pass and from a quick glance there are no backtraces in the
logs. IIRC, lava detects warnings and backtraces in the logs and marks them as
error.

v5.6.4-rt seems to be in a good shape as far my quick tests tell me.

Subject: Re: [ANNOUNCE] v5.6.4-rt3

On 2020-04-22 20:31:12 [+0200], Daniel Wagner wrote:
> Correct, all tests pass and from a quick glance there are no backtraces in the
> logs. IIRC, lava detects warnings and backtraces in the logs and marks them as
> error.
>
> v5.6.4-rt seems to be in a good shape as far my quick tests tell me.

Oki, thanks.

Sebastian