All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH] pty04: Avoid receiving packets from all interfaces
@ 2020-05-15 10:39 Richard Palethorpe
  2020-05-15 11:48 ` Cyril Hrubis
  2020-05-15 11:56 ` Petr Vorel
  0 siblings, 2 replies; 8+ messages in thread
From: Richard Palethorpe @ 2020-05-15 10:39 UTC (permalink / raw)
  To: ltp

Raw sockets receive all packets from all interfaces as soon as they are
created. They don't need to be bound to one or more interfaces like I thought.

This creates the socket with a NULL packet type which appears to be unused in
the Linux kernel and receives no packets. The protocol is then changed to
ETH_P_ALL when binding to the netdevice we are interested in.

I assume it is impossible for a packet to have zero for its packet type. Most
likely using ETH_P_LOOP would have been OK too, but I suppose that is really
used by some hardware.

This also fixes various other problems that have been observed with this
test. Such as memory allocation failures.

Signed-off-by: Richard Palethorpe <rpalethorpe@suse.com>
Cc: Jan Stancek <jstancek@redhat.com>
---

Another day, another patch for pty04.

 testcases/kernel/pty/pty04.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/testcases/kernel/pty/pty04.c b/testcases/kernel/pty/pty04.c
index d574d8b2c..4adf2cbb7 100644
--- a/testcases/kernel/pty/pty04.c
+++ b/testcases/kernel/pty/pty04.c
@@ -206,7 +206,7 @@ static void open_netdev(const struct ldisc_info *ldisc)
 	SAFE_IOCTL(pts, SIOCGIFNAME, ifreq.ifr_name);
 	tst_res(TINFO, "Netdev is %s", ifreq.ifr_name);
 
-	sk = SAFE_SOCKET(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
+	sk = SAFE_SOCKET(PF_PACKET, SOCK_RAW, 0);
 
 	ifreq.ifr_mtu = ldisc->mtu;
 	if (ioctl(sk, SIOCSIFMTU, &ifreq))
-- 
2.26.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [LTP] [PATCH] pty04: Avoid receiving packets from all interfaces
  2020-05-15 10:39 [LTP] [PATCH] pty04: Avoid receiving packets from all interfaces Richard Palethorpe
@ 2020-05-15 11:48 ` Cyril Hrubis
  2020-05-15 12:18   ` Jan Stancek
  2020-05-15 11:56 ` Petr Vorel
  1 sibling, 1 reply; 8+ messages in thread
From: Cyril Hrubis @ 2020-05-15 11:48 UTC (permalink / raw)
  To: ltp

Hi!
Sounds reasonable, also hope it's the last patch. :-)

@Jan do you want to test this as well, or should I apply and proceed
with the release?

-- 
Cyril Hrubis
chrubis@suse.cz

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [LTP] [PATCH] pty04: Avoid receiving packets from all interfaces
  2020-05-15 10:39 [LTP] [PATCH] pty04: Avoid receiving packets from all interfaces Richard Palethorpe
  2020-05-15 11:48 ` Cyril Hrubis
@ 2020-05-15 11:56 ` Petr Vorel
  1 sibling, 0 replies; 8+ messages in thread
From: Petr Vorel @ 2020-05-15 11:56 UTC (permalink / raw)
  To: ltp

Hi,

> Raw sockets receive all packets from all interfaces as soon as they are
> created. They don't need to be bound to one or more interfaces like I thought.

> This creates the socket with a NULL packet type which appears to be unused in
> the Linux kernel and receives no packets. The protocol is then changed to
> ETH_P_ALL when binding to the netdevice we are interested in.

> I assume it is impossible for a packet to have zero for its packet type. Most
> likely using ETH_P_LOOP would have been OK too, but I suppose that is really
> used by some hardware.

> This also fixes various other problems that have been observed with this
> test. Such as memory allocation failures.
So we have lost a potential CVE reproducer :).

Thanks for the fix.

Kind regards,
Petr

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [LTP] [PATCH] pty04: Avoid receiving packets from all interfaces
  2020-05-15 11:48 ` Cyril Hrubis
@ 2020-05-15 12:18   ` Jan Stancek
  2020-05-15 12:37     ` Jan Stancek
  2020-05-15 13:00     ` Petr Vorel
  0 siblings, 2 replies; 8+ messages in thread
From: Jan Stancek @ 2020-05-15 12:18 UTC (permalink / raw)
  To: ltp



----- Original Message -----
> Hi!
> Sounds reasonable, also hope it's the last patch. :-)
> 
> @Jan do you want to test this as well, or should I apply and proceed
> with the release?

I haven't spotted potential issue while looking at kernel code,
will test the patch just to be sure.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [LTP] [PATCH] pty04: Avoid receiving packets from all interfaces
  2020-05-15 12:18   ` Jan Stancek
@ 2020-05-15 12:37     ` Jan Stancek
  2020-05-15 13:27       ` Richard Palethorpe
  2020-05-15 13:00     ` Petr Vorel
  1 sibling, 1 reply; 8+ messages in thread
From: Jan Stancek @ 2020-05-15 12:37 UTC (permalink / raw)
  To: ltp


----- Original Message -----
> 
> 
> ----- Original Message -----
> > Hi!
> > Sounds reasonable, also hope it's the last patch. :-)
> > 
> > @Jan do you want to test this as well, or should I apply and proceed
> > with the release?
> 
> I haven't spotted potential issue while looking at kernel code,
> will test the patch just to be sure.

It still gets occasionally stuck on 5.7.0-rc4, but the chance to hit
it appears lower. I think merge the patch and we'll see how frequently
it happens with single iteration. We can always disable it later in
runtest file.

# ./pty04 -i 10
tst_test.c:1246: INFO: Timeout per run is 0h 05m 00s
pty04.c:130: INFO: PTS path is /dev/pts/2
pty04.c:207: INFO: Netdev is sl0
pty04.c:216: INFO: Netdev MTU is 8192 (we set 8192)
pty04.c:233: INFO: Bound netdev 245 to socket 5
tst_buffers.c:55: INFO: Test is using guarded buffers
pty04.c:324: INFO: Reading from socket 5
tst_buffers.c:55: INFO: Test is using guarded buffers
pty04.c:180: PASS: Wrote PTY N_SLIP 3 (1)
pty04.c:191: PASS: Wrote PTY N_SLIP 3 (2)
pty04.c:328: PASS: Read netdev N_SLIP 5 (1)


tst_checkpoint.c:149: BROK: pty04.c:364: tst_checkpoint_wait(0, 100000): ETIMEDOUT (110)
tst_test.c:373: BROK: Reported by child (2990)
pty04.c:306: BROK: Read 0 of 8191 bytes: ENETDOWN (100)
pty04.c:196: PASS: Writing to PTY interrupted by hangup
tst_test.c:373: WARN: Reported by child (2987)


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [LTP] [PATCH] pty04: Avoid receiving packets from all interfaces
  2020-05-15 12:18   ` Jan Stancek
  2020-05-15 12:37     ` Jan Stancek
@ 2020-05-15 13:00     ` Petr Vorel
  2020-05-15 13:55       ` Richard Palethorpe
  1 sibling, 1 reply; 8+ messages in thread
From: Petr Vorel @ 2020-05-15 13:00 UTC (permalink / raw)
  To: ltp

Hi,

> > Sounds reasonable, also hope it's the last patch. :-)

> > @Jan do you want to test this as well, or should I apply and proceed
> > with the release?

> I haven't spotted potential issue while looking at kernel code,
> will test the patch just to be sure.
+1 reproduced kernel oops on 5.7.0-rc5-1.g298ea3d from openSUSE Tumbleweed, but
when running with -i100 (=> this fix greatly reduces the problem, but still
possible to reproduce)

Kind regards,
Petr

[27048.459612] watchdog: BUG: soft lockup - CPU#1 stuck for 22s! [kworker/u16:10:10487]
[27048.459615] Modules linked in: slcan slip slhc uas usb_storage vhost_net vhost tap vhost_iotlb ccm rfcomm fuse xt_CHECKSUM xt_MASQUERADE xt_conntrack ipt_REJECT nf_reject_ipv4 xt_tcpudp ip6table_mangle ip6table_nat iptable_mangle iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter ip_tables x_tables bpfilter tun bridge stp llc af_packet cmac algif_hash algif_skcipher af_alg bnep dmi_sysfs msr xfs dm_crypt cdc_ether usbnet snd_usb_audio r8152 snd_usbmidi_lib snd_rawmidi snd_seq_device mii uvcvideo btusb videobuf2_vmalloc x86_pkg_temp_thermal intel_powerclamp videobuf2_memops btrtl videobuf2_v4l2 btbcm coretemp videobuf2_common btintel btrfs bluetooth videodev kvm_intel blake2b_generic xor snd_hda_codec_hdmi ecdh_generic ecc mc joydev kvm iwlmvm raid6_pq irqbypass iTCO_wdt libcrc32c iTCO_vendor_support snd_hda_codec_realtek hid_multitouch mac80211 mei_hdcp mei_wdt intel_rapl_msr dell_rbtn crct10dif_pclmul
[27048.459667]  snd_hda_codec_generic crc32_pclmul dell_laptop ledtrig_audio intel_hid snd_hda_intel ghash_clmulni_intel dell_smm_hwmon libarc4 snd_intel_dspcfg aesni_intel snd_hda_codec crypto_simd cryptd glue_helper snd_hda_core iwlwifi snd_hwdep snd_pcm dell_wmi dell_smbios dcdbas snd_timer snd pcspkr sparse_keymap dell_wmi_descriptor wmi_bmof intel_wmi_thunderbolt cfg80211 i2c_i801 soundcore mei_me rfkill mei processor_thermal_device intel_lpss_pci intel_rapl_common intel_lpss idma64 intel_pch_thermal intel_soc_dts_iosf thermal fan int3403_thermal dell_smo8800 acpi_pad int3402_thermal int3400_thermal int340x_thermal_zone acpi_thermal_rel ac tiny_power_button nfsd auth_rpcgss nfs_acl lockd grace sunrpc hid_logitech_hidpp hid_logitech_dj hid_generic usbhid i915 nouveau rtsx_pci_sdmmc mmc_core ttm i2c_algo_bit drm_kms_helper xhci_pci xhci_hcd syscopyarea sysfillrect sysimgblt fb_sys_fops mxm_wmi cec rc_core crc32c_intel drm usbcore serio_raw rtsx_pci battery i2c_hid video wmi button
[27048.459695]  dm_mirror dm_region_hash dm_log sg dm_multipath dm_mod scsi_dh_rdac scsi_dh_emc scsi_dh_alua
[27048.459700] CPU: 1 PID: 10487 Comm: kworker/u16:10 Kdump: loaded Tainted: G          I       5.7.0-rc5-1.g298ea3d-default #1 openSUSE Tumbleweed (unreleased)
[27048.459701] Hardware name: Dell Inc. Precision 5510/0N8J4R, BIOS 1.2.13 08/08/2016
[27048.459705] Workqueue: events_unbound flush_to_ldisc
[27048.459709] RIP: 0010:slip_receive_buf+0xfc/0x2a0 [slip]
[27048.459710] Code: 10 48 83 80 60 01 00 00 01 f0 80 8b 88 00 00 00 04 41 83 ec 01 41 83 fc ff 0f 85 5f ff ff ff 48 83 c4 08 5b 5d 41 5c 41 5e c3 <3c> dc 0f 84 44 01 00 00 77 24 3c c0 0f 84 f3 00 00 00 3c db 75 2e
[27048.459711] RSP: 0018:ffffb7f022757de0 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
[27048.459713] RAX: 000000000000005f RBX: ffff90a8d8e4d900 RCX: 0000000000000e00
[27048.459713] RDX: 0000000000000004 RSI: ffff90a8d959a4b0 RDI: ffff90a902d76400
[27048.459714] RBP: 0000000000000000 R08: ffffffffc1a9c000 R09: ffffffffb4871d01
[27048.459715] R10: ffff90a8d959f000 R11: 0000000000000001 R12: 0000000000000970
[27048.459716] R13: 0000000000000000 R14: 00000000ffffffc0 R15: ffff90a8d959a020
[27048.459717] FS:  0000000000000000(0000) GS:ffff90affdc40000(0000) knlGS:0000000000000000
[27048.459718] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[27048.459718] CR2: 000034ca2fb92400 CR3: 000000067380a001 CR4: 00000000003626e0
[27048.459719] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[27048.459720] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[27048.459720] Call Trace:
[27048.459725]  tty_ldisc_receive_buf+0x41/0x50
[27048.459727]  tty_port_default_receive_buf+0x3d/0x60
[27048.459729]  flush_to_ldisc+0x8a/0xd0
[27048.459732]  process_one_work+0x1e3/0x3b0
[27048.459735]  worker_thread+0x4d/0x3f0
[27048.459739]  kthread+0xf9/0x130
[27048.459741]  ? process_one_work+0x3b0/0x3b0
[27048.459742]  ? kthread_park+0x90/0x90
[27048.459744]  ret_from_fork+0x35/0x40


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [LTP] [PATCH] pty04: Avoid receiving packets from all interfaces
  2020-05-15 12:37     ` Jan Stancek
@ 2020-05-15 13:27       ` Richard Palethorpe
  0 siblings, 0 replies; 8+ messages in thread
From: Richard Palethorpe @ 2020-05-15 13:27 UTC (permalink / raw)
  To: ltp

Hello,

Jan Stancek <jstancek@redhat.com> writes:

> ----- Original Message -----
>> 
>> 
>> ----- Original Message -----
>> > Hi!
>> > Sounds reasonable, also hope it's the last patch. :-)
>> > 
>> > @Jan do you want to test this as well, or should I apply and proceed
>> > with the release?
>> 
>> I haven't spotted potential issue while looking at kernel code,
>> will test the patch just to be sure.
>
> It still gets occasionally stuck on 5.7.0-rc4, but the chance to hit
> it appears lower. I think merge the patch and we'll see how frequently
> it happens with single iteration. We can always disable it later in
> runtest file.
>
> # ./pty04 -i 10
> tst_test.c:1246: INFO: Timeout per run is 0h 05m 00s
> pty04.c:130: INFO: PTS path is /dev/pts/2
> pty04.c:207: INFO: Netdev is sl0
> pty04.c:216: INFO: Netdev MTU is 8192 (we set 8192)
> pty04.c:233: INFO: Bound netdev 245 to socket 5
> tst_buffers.c:55: INFO: Test is using guarded buffers
> pty04.c:324: INFO: Reading from socket 5
> tst_buffers.c:55: INFO: Test is using guarded buffers
> pty04.c:180: PASS: Wrote PTY N_SLIP 3 (1)
> pty04.c:191: PASS: Wrote PTY N_SLIP 3 (2)
> pty04.c:328: PASS: Read netdev N_SLIP 5 (1)
>
>
> tst_checkpoint.c:149: BROK: pty04.c:364: tst_checkpoint_wait(0, 100000): ETIMEDOUT (110)
> tst_test.c:373: BROK: Reported by child (2990)
> pty04.c:306: BROK: Read 0 of 8191 bytes: ENETDOWN (100)
> pty04.c:196: PASS: Writing to PTY interrupted by hangup
> tst_test.c:373: WARN: Reported by child (2987)

Thanks for testing. I guess if the timeout is set long enough and you
have RCU stall detection enabled(?) or SLUB debug, then you will get
some stack trace. Probably related to memory allocation.

I tried again running it in parallel and still got the following stack
traces, but the system is able to recover afterwards. It seems like the
PTYs and line disciplines are a bit fragile. Which I suspect could be
fixed by using different memory pools , but I'm not sure it is very
important.

[   58.454313] rcu: INFO: rcu_sched self-detected stall on CPU
[   58.455115] rcu: 	2-....: (26000 ticks this GP) idle=bea/1/0x4000000000000002 softirq=2439/2439 fqs
[   58.456405] 	(t=26003 jiffies g=4233 q=26)
[   58.456949] NMI backtrace for cpu 2
[   58.457405] CPU: 2 PID: 280 Comm: kworker/u8:6 Not tainted 5.7.0-rc4+ #49
[   58.458286] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba527-rebuilt4
[   58.459766] Workqueue: events_unbound flush_to_ldisc
[   58.460438] Call Trace:
[   58.460777]  <IRQ>
[   58.461063]  dump_stack+0x97/0xe0
[   58.461518]  nmi_cpu_backtrace.cold+0x46/0x80
[   58.462103]  ? lapic_can_unplug_cpu.cold+0x46/0x46
[   58.462741]  nmi_trigger_cpumask_backtrace+0x125/0x154
[   58.463438]  rcu_dump_cpu_stacks+0x1a0/0x1ea
[   58.464041]  rcu_sched_clock_irq.cold+0x518/0x978
[   58.464683]  update_process_times+0x24/0x50
[   58.465248]  tick_sched_handle+0xf7/0x160
[   58.465792]  tick_sched_timer+0x38/0xf0
[   58.466315]  __hrtimer_run_queues+0x4ae/0xa90
[   58.466902]  ? tick_sched_do_timer+0x150/0x150
[   58.467523]  ? enqueue_hrtimer+0x2d0/0x2d0
[   58.468092]  hrtimer_interrupt+0x2bf/0x740
[   58.468668]  smp_apic_timer_interrupt+0x109/0x4e0
[   58.469303]  apic_timer_interrupt+0xf/0x20
[   58.469852]  </IRQ>
[   58.470150] RIP: 0010:enqueue_to_backlog+0x156/0xb40
[   58.470821] Code: 74 08 3c 03 0f 8e 90 05 00 00 83 83 30 01 00 00 01 4c 89 ef e8 5b f4 7a 00 41 f7 c4 f
[   58.473235] RSP: 0018:ffffc900005479b0 EFLAGS: 00000282 ORIG_RAX: ffffffffffffff13
[   58.474225] RAX: 0000000000000007 RBX: ffff88806b535d80 RCX: 1ffffffff1e2bffa
[   58.475155] RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff8d42ee73
[   58.476090] RBP: ffff888048188c80 R08: 0000000000000001 R09: ffffed100d6a6bdb
[   58.477068] R10: ffff88806b535ed3 R11: ffffed100d6a6bda R12: 0000000000000282
[   58.478003] R13: ffff88806b535ed0 R14: ffff888048188c90 R15: 00000000000003e9
[   58.479059]  ? enqueue_to_backlog+0x153/0xb40
[   58.479674]  netif_rx_internal+0xc6/0x450
[   58.480265]  ? enqueue_to_backlog+0xb40/0xb40
[   58.480985]  netif_rx_ni+0x4b/0x3a0
[   58.481545]  slcan_receive_buf+0x970/0xbb0 [slcan]
[   58.482295]  ? slcan_transmit+0x3e0/0x3e0 [slcan]
[   58.483047]  ? slcan_transmit+0x3e0/0x3e0 [slcan]
[   58.483793]  ? slcan_transmit+0x3e0/0x3e0 [slcan]
[   58.484544]  tty_ldisc_receive_buf+0x100/0x1d0
[   58.485246]  ? tty_ldisc_receive_buf+0x5/0x1d0
[   58.485970]  tty_port_default_receive_buf+0x61/0x90
[   58.486576]  flush_to_ldisc+0x1a7/0x3e0
[   58.487046]  process_one_work+0x926/0x16d0
[   58.487550]  ? pwq_dec_nr_in_flight+0x290/0x290
[   58.488077]  ? ftrace_graph_caller+0x6b/0xa0
[   58.488584]  ? rwlock_bug.part.0+0x90/0x90
[   58.489081]  worker_thread+0x92/0xfa0
[   58.489535]  ? process_one_work+0x16d0/0x16d0
[   58.490048]  kthread+0x2ba/0x3b0
[   58.490433]  ? kthread_create_on_node+0xd0/0xd0
[   58.490966]  ret_from_fork+0x3a/0x50
[   59.114357] rcu: INFO: rcu_sched detected expedited stalls on CPUs/tasks: { 2-... } 26468 jiffies s: 2.
[   59.115656] rcu: blocking rcu_node structures:
[   59.116176] Task dump for CPU 2:
[   59.116580] kworker/u8:6    R  running task    28768   280      2 0x80004008
[   59.117488] Workqueue: events_unbound flush_to_ldisc
[   59.118068] Call Trace:
[   59.118409]  ? pwq_dec_nr_in_flight+0x290/0x290
[   59.118936]  ? ftrace_graph_caller+0x6b/0xa0
[   59.119476]  ? rwlock_bug.part.0+0x90/0x90
[   59.119976]  ? worker_thread+0x92/0xfa0
[   59.120472]  ? process_one_work+0x16d0/0x16d0
[   59.120987]  ? kthread+0x2ba/0x3b0
[   59.121415]  ? kthread_create_on_node+0xd0/0xd0
[   59.121948]  ? ret_from_fork+0x3a/0x50
[   63.805607] warn_alloc: 1915 callbacks suppressed

[   26.819715] reproducer: page allocation failure: order:1, mode:0x40a20(GFP_ATOMIC|__GFP_COMP), nodemas0
[   26.820140] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
[   26.821191] CPU: 1 PID: 456 Comm: reproducer Not tainted 5.7.0-rc4+ #49
[   26.822013]   cache: skbuff_head_cache, object size: 224, buffer size: 320, default order: 1, min orde0
[   26.822583] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
[   26.822590]   cache: kmalloc-4k, object size: 4096, buffer size: 8192, default order: 3, min order: 1
[   26.822596]   kmalloc-4k debugging increased min order, use slub_debug=O to disable.
[   26.822604]   node 0: slabs: 44294, objs: 177164, free: 0
[   26.822712] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
[   26.822719]   cache: kmalloc-4k, object size: 4096, buffer size: 8192, default order: 3, min order: 1
[   26.822724]   kmalloc-4k debugging increased min order, use slub_debug=O to disable.
[   26.822732]   node 0: slabs: 44294, objs: 177164, free: 0
[   26.822760] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
[   26.822767]   cache: kmalloc-4k, object size: 4096, buffer size: 8192, default order: 3, min order: 1
[   26.822772]   kmalloc-4k debugging increased min order, use slub_debug=O to disable.
[   26.822780]   node 0: slabs: 44294, objs: 177164, free: 0
[   26.822807] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba527-rebuilt4
[   26.822813] Call Trace:
[   26.822818] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
[   26.822823]   cache: kmalloc-4k, object size: 4096, buffer size: 8192, default order: 3, min order: 1
[   26.822828]   kmalloc-4k debugging increased min order, use slub_debug=O to disable.
[   26.822834]   node 0: slabs: 44294, objs: 177164, free: 0
[   26.822870] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
[   26.822876]   cache: kmalloc-4k, object size: 4096, buffer size: 8192, default order: 3, min order: 1
[   26.822882]   kmalloc-4k debugging increased min order, use slub_debug=O to disable.
[   26.822890]   node 0: slabs: 44294, objs: 177164, free: 0
[   26.822932] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
[   26.822939]   cache: kmalloc-4k, object size: 4096, buffer size: 8192, default order: 3, min order: 1
[   26.822946]   kmalloc-4k debugging increased min order, use slub_debug=O to disable.
[   26.822953]   node 0: slabs: 44294, objs: 177164, free: 0
[   26.822995] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
[   26.823002]   cache: kmalloc-4k, object size: 4096, buffer size: 8192, default order: 3, min order: 1
[   26.823007]   kmalloc-4k debugging increased min order, use slub_debug=O to disable.
[   26.823015]   node 0: slabs: 44294, objs: 177164, free: 0
[   26.823057] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
[   26.823064]   cache: kmalloc-4k, object size: 4096, buffer size: 8192, default order: 3, min order: 1
[   26.823069]   kmalloc-4k debugging increased min order, use slub_debug=O to disable.
[   26.823076]   node 0: slabs: 44294, objs: 177164, free: 0
[   26.823116] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC)
[   26.823121]   cache: kmalloc-4k, object size: 4096, buffer size: 8192, default order: 3, min order: 1
[   26.823128]   kmalloc-4k debugging increased min order, use slub_debug=O to disable.
[   26.823134]   node 0: slabs: 44294, objs: 177164, free: 0
[   26.824222]   node 0: slabs: 12353, objs: 308825, free: 0
[   26.825031]  dump_stack+0x97/0xe0
[   26.859539]  warn_alloc.cold+0x87/0x18d
pty04.c:328:    26.860015]  ? zone_watermark_ok_safe+0x270/0x270
;32mPASS: Re[   26.860709]  ? zone_watermark_ok_safe+0x270/0x270
ad netdev N_SLCA[   26.861611]  ? __alloc_pages_slowpath.constprop.0+0x1cf3/0x2180
N 26 (1)[   26.862395]  ? prepare_ftrace_return+0xa1/0xf0

[   26.863008]  ? wakeup_kcompactd+0x18a/0x3e0
[   26.863526]  ? __isolate_free_page+0x4e0/0x4e0
[   26.864070]  __alloc_pages_slowpath.constprop.0+0x1cf3/0x2180
[   26.864739]  ? get_page_from_freelist+0x753/0x3920
pty04.c:332:    26.865300]  ? __isolate_free_page+0x4e0/0x4e0
;32mPASS: Re[   26.865989]  ? __alloc_pages_nodemask+0x277/0x6e0
ad netdev N_SLCA[   26.866675]  ? warn_alloc+0x120/0x120
N 26 (2)
[   26.867260]  ? ftrace_graph_caller+0x6b/0xa0
[   26.867867]  ? function_graph_enter+0x34b/0x520
[   26.868396]  ? __isolate_free_page+0x4e0/0x4e0
[   26.868914]  ? ftrace_graph_stop+0x10/0x10
[   26.869409]  __alloc_pages_nodemask+0x517/0x6e0
[   26.869942]  ? __alloc_pages_slowpath.constprop.0+0x2180/0x2180
[   26.870618]  ? ftrace_graph_caller+0x6b/0xa0
[   26.871141]  new_slab+0x28b/0x340
[   26.871547]  ___slab_alloc+0x370/0x5d0
[   26.871995]  ? __tty_buffer_request_room+0x1c0/0x560
[   26.872577]  ? __tty_buffer_request_room+0x1c0/0x560
[   26.873150]  ? ftrace_graph_caller+0x6b/0xa0
[   26.873645]  ? prepare_ftrace_return+0xa1/0xf0
[   26.874172]  ? __tty_buffer_request_room+0x1c0/0x560
[   26.874747]  ? __slab_alloc+0x38/0x70
[   26.875176]  __slab_alloc+0x38/0x70
[   26.875648]  ? __tty_buffer_request_room+0x1c0/0x560
[   26.876403]  __kmalloc+0x25e/0x2c0
[   26.876814]  __tty_buffer_request_room+0x1c0/0x560
[   26.877380]  tty_insert_flip_string_fixed_flag+0x7d/0x1f0
[   26.878181]  pty_write+0x103/0x1d0
[   26.878684]  n_tty_write+0x753/0xf90
[   26.879108]  ? ftrace_graph_stop+0x10/0x10
[   26.879585]  ? n_tty_read+0x16e0/0x16e0
[   26.880053]  ? tty_write+0x3c0/0x700
[   26.880472]  ? prepare_ftrace_return+0xa1/0xf0
[   26.880989]  ? n_tty_read+0x16e0/0x16e0
[   26.881435]  ? ftrace_graph_caller+0x6b/0xa0
[   26.881934]  ? prepare_to_wait_exclusive+0x200/0x200
[   26.882509]  ? n_tty_read+0x16e0/0x16e0
[   26.882973]  tty_write+0x3c0/0x700
[   26.883379]  ? n_tty_read+0x16e0/0x16e0
[   26.883857]  vfs_write+0x154/0x450
[   26.884324]  ksys_write+0xf9/0x1d0
[   26.884783]  ? __ia32_sys_read+0xb0/0xb0
[   26.885324]  do_syscall_64+0x95/0x4a0
[   26.885819]  entry_SYSCALL_64_after_hwframe+0x49/0xb3
[   26.886485] RIP: 0033:0x7f56ae533563
[   26.886961] Code: 0c 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb bb 0f 1f 80 00 00 00 00 64 8b 04 25 18 8
[   26.889355] RSP: 002b:00007ffc3026c138 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
[   26.890335] RAX: ffffffffffffffda RBX: 0000000000422600 RCX: 00007f56ae533563
[   26.891258] RDX: 0000000000002000 RSI: 00007f56ae42a000 RDI: 0000000000000015
[   26.892206] RBP: 00007f56ae60a580 R08: 0000000000000000 R09: 00007ffc3026ba80
[   26.893231] R10: 00000000000003cb R11: 0000000000000246 R12: 0000000000002000
[   26.894077] R13: 00007f56ae42a000 R14: 0000000000000015 R15: 0000000000000001
[   26.895141] Mem-Info:
[   26.895441] active_anon:3997 inactive_anon:4284 isolated_anon:0
[   26.895441]  active_file:0 inactive_file:0 isolated_file:0
[   26.895441]  unevictable:0 dirty:0 writeback:0 unstable:0
[   26.895441]  slab_reclaimable:4267 slab_unreclaimable:385849
[   26.895441]  mapped:913 shmem:7230 pagetables:205 bounce:0
[   26.895441]  free:5770 free_pcp:737 free_cma:0
[   26.899022] Node 0 active_anon:15988kB inactive_anon:17136kB active_file:0kB inactive_file:0kB unevicts
[   26.902008] Node 0 DMA free:6340kB min:444kB low:552kB high:660kB reserved_highatomic:2048KB active_anB
[   26.905162] lowmem_reserve[]: 0 1548 1548 1548 1548
[   26.905737] Node 0 DMA32 free:16612kB min:44608kB low:55760kB high:66912kB reserved_highatomic:18432KBB
[   26.909330] lowmem_reserve[]: 0 0 0 0 0
[   26.909856] Node 0 DMA: 1*4kB (U) 0*8kB 0*16kB 0*32kB 1*64kB (H) 1*128kB (H) 0*256kB 0*512kB 0*1024kB B
[   26.911422] Node 0 DMA32: 45*4kB (ME) 18*8kB (UME) 4*16kB (UME) 11*32kB (UM) 3*64kB (M) 2*128kB (UM) 1B
[   26.913285] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB
[   26.914279] Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
[   26.915231] 7230 total pagecache pages
[   26.915672] 0 pages in swap cache
[   26.916068] Swap cache stats: add 0, delete 0, find 0/0
[   26.916666] Free swap  = 0kB
[   26.917006] Total swap = 0kB
[   26.917345] 524156 pages RAM
[   26.917686] 0 pages HighMem/MovableOnly
[   26.918130] 115119 pages reserved


-- 
Thank you,
Richard.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [LTP] [PATCH] pty04: Avoid receiving packets from all interfaces
  2020-05-15 13:00     ` Petr Vorel
@ 2020-05-15 13:55       ` Richard Palethorpe
  0 siblings, 0 replies; 8+ messages in thread
From: Richard Palethorpe @ 2020-05-15 13:55 UTC (permalink / raw)
  To: ltp

Hi,

Petr Vorel <pvorel@suse.cz> writes:

> Hi,
>
>> > Sounds reasonable, also hope it's the last patch. :-)
>
>> > @Jan do you want to test this as well, or should I apply and proceed
>> > with the release?
>
>> I haven't spotted potential issue while looking at kernel code,
>> will test the patch just to be sure.
> +1 reproduced kernel oops on 5.7.0-rc5-1.g298ea3d from openSUSE Tumbleweed, but
> when running with -i100 (=> this fix greatly reduces the problem, but still
> possible to reproduce)
>
> Kind regards,
> Petr
>
> [27048.459612] watchdog: BUG: soft lockup - CPU#1 stuck for 22s! [kworker/u16:10:10487]
> [27048.459615] Modules linked in: slcan slip slhc uas usb_storage vhost_net vhost tap vhost_iotlb ccm rfcomm fuse xt_CHECKSUM xt_MASQUERADE xt_conntrack ipt_REJECT nf_reject_ipv4 xt_tcpudp ip6table_mangle ip6table_nat iptable_mangle iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter ip_tables x_tables bpfilter tun bridge stp llc af_packet cmac algif_hash algif_skcipher af_alg bnep dmi_sysfs msr xfs dm_crypt cdc_ether usbnet snd_usb_audio r8152 snd_usbmidi_lib snd_rawmidi snd_seq_device mii uvcvideo btusb videobuf2_vmalloc x86_pkg_temp_thermal intel_powerclamp videobuf2_memops btrtl videobuf2_v4l2 btbcm coretemp videobuf2_common btintel btrfs bluetooth videodev kvm_intel blake2b_generic xor snd_hda_codec_hdmi ecdh_generic ecc mc joydev kvm iwlmvm raid6_pq irqbypass iTCO_wdt libcrc32c iTCO_vendor_support snd_hda_codec_realtek hid_multitouch mac80211 mei_hdcp mei_wdt intel_rapl_msr dell_rbtn crct10dif_pclmul
> [27048.459667]  snd_hda_codec_generic crc32_pclmul dell_laptop ledtrig_audio intel_hid snd_hda_intel ghash_clmulni_intel dell_smm_hwmon libarc4 snd_intel_dspcfg aesni_intel snd_hda_codec crypto_simd cryptd glue_helper snd_hda_core iwlwifi snd_hwdep snd_pcm dell_wmi dell_smbios dcdbas snd_timer snd pcspkr sparse_keymap dell_wmi_descriptor wmi_bmof intel_wmi_thunderbolt cfg80211 i2c_i801 soundcore mei_me rfkill mei processor_thermal_device intel_lpss_pci intel_rapl_common intel_lpss idma64 intel_pch_thermal intel_soc_dts_iosf thermal fan int3403_thermal dell_smo8800 acpi_pad int3402_thermal int3400_thermal int340x_thermal_zone acpi_thermal_rel ac tiny_power_button nfsd auth_rpcgss nfs_acl lockd grace sunrpc hid_logitech_hidpp hid_logitech_dj hid_generic usbhid i915 nouveau rtsx_pci_sdmmc mmc_core ttm i2c_algo_bit drm_kms_helper xhci_pci xhci_hcd syscopyarea sysfillrect sysimgblt fb_sys_fops mxm_wmi cec rc_core crc32c_intel drm usbcore serio_raw rtsx_pci battery i2c_hid video wmi butt
 on
> [27048.459695]  dm_mirror dm_region_hash dm_log sg dm_multipath dm_mod scsi_dh_rdac scsi_dh_emc scsi_dh_alua
> [27048.459700] CPU: 1 PID: 10487 Comm: kworker/u16:10 Kdump: loaded Tainted: G          I       5.7.0-rc5-1.g298ea3d-default #1 openSUSE Tumbleweed (unreleased)
> [27048.459701] Hardware name: Dell Inc. Precision 5510/0N8J4R, BIOS 1.2.13 08/08/2016
> [27048.459705] Workqueue: events_unbound flush_to_ldisc
> [27048.459709] RIP: 0010:slip_receive_buf+0xfc/0x2a0 [slip]
> [27048.459710] Code: 10 48 83 80 60 01 00 00 01 f0 80 8b 88 00 00 00 04 41 83 ec 01 41 83 fc ff 0f 85 5f ff ff ff 48 83 c4 08 5b 5d 41 5c 41 5e c3 <3c> dc 0f 84 44 01 00 00 77 24 3c c0 0f 84 f3 00 00 00 3c db 75 2e
> [27048.459711] RSP: 0018:ffffb7f022757de0 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
> [27048.459713] RAX: 000000000000005f RBX: ffff90a8d8e4d900 RCX: 0000000000000e00
> [27048.459713] RDX: 0000000000000004 RSI: ffff90a8d959a4b0 RDI: ffff90a902d76400
> [27048.459714] RBP: 0000000000000000 R08: ffffffffc1a9c000 R09: ffffffffb4871d01
> [27048.459715] R10: ffff90a8d959f000 R11: 0000000000000001 R12: 0000000000000970
> [27048.459716] R13: 0000000000000000 R14: 00000000ffffffc0 R15: ffff90a8d959a020
> [27048.459717] FS:  0000000000000000(0000) GS:ffff90affdc40000(0000) knlGS:0000000000000000
> [27048.459718] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [27048.459718] CR2: 000034ca2fb92400 CR3: 000000067380a001 CR4: 00000000003626e0
> [27048.459719] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [27048.459720] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> [27048.459720] Call Trace:
> [27048.459725]  tty_ldisc_receive_buf+0x41/0x50
> [27048.459727]  tty_port_default_receive_buf+0x3d/0x60
> [27048.459729]  flush_to_ldisc+0x8a/0xd0
> [27048.459732]  process_one_work+0x1e3/0x3b0
> [27048.459735]  worker_thread+0x4d/0x3f0
> [27048.459739]  kthread+0xf9/0x130
> [27048.459741]  ? process_one_work+0x3b0/0x3b0
> [27048.459742]  ? kthread_park+0x90/0x90
> [27048.459744]  ret_from_fork+0x35/0x40

Is there more to this? Do you get allocation failures as well? (no
problem if not, I'm just curious, I don't think this is an issue unless
it happens with N=1).
-- 
Thank you,
Richard.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-05-15 13:55 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-15 10:39 [LTP] [PATCH] pty04: Avoid receiving packets from all interfaces Richard Palethorpe
2020-05-15 11:48 ` Cyril Hrubis
2020-05-15 12:18   ` Jan Stancek
2020-05-15 12:37     ` Jan Stancek
2020-05-15 13:27       ` Richard Palethorpe
2020-05-15 13:00     ` Petr Vorel
2020-05-15 13:55       ` Richard Palethorpe
2020-05-15 11:56 ` Petr Vorel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.