lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <7261663.lHksN3My1W@tjmaciei-mobl1>
Date:   Tue, 13 Apr 2021 13:57:54 -0700
From:   Thiago Macieira <thiago.macieira@...el.com>
To:     <netdev@...r.kernel.org>, Hayes Wang <hayeswang@...ltek.com>
CC:     <linux-usb@...r.kernel.org>
Subject: rtl8152 / power management kernel hang

This has been happening for at least a year but I've only now decided to 
report it.

Kernel 5.11.11
Symptom: 
- partial kernel freeze
- some kernel tasks end up in state D and never leave it
    (notably ipv6_addrconf)
- problem propagates as other userspace processes try to use
  networking, such as /sbin/ip trying to set the device down
- normal reboot impossible, Alt+SysRq,B is necessary

Steps to reproduce: use device for a few hours. I'm using it in a bonded 
connection, but I don't think that's a required condition.

Workaround: disable power management on the device via PowerTop before the 
problem occurs.

The one I had never noticed until now was this, showing up in dmesg right 
around the moment where the freeze happened:

usb 4-1.2: reset SuperSpeed Gen 1 USB device number 3 using xhci_hcd
r8152 4-1.2:1.0 eth0: Using pass-thru MAC addr <redacted>

This did not happen on yesterday's freeze (or at least didn't get logged 
before I had to force-reboot the system).

Alt+SysRq,w log:

sysrq: Show Blocked State
task:bash            state:D stack:    0 pid: 3202 ppid:  2624 flags:
0x00000004
Call Trace:
 __schedule+0x2cf/0x940
 schedule+0x46/0xb0
 rpm_resume+0x19c/0x7b0
 ? wait_woken+0x80/0x80
 pm_runtime_forbid+0x3f/0x60
 control_store+0x78/0x80
 kernfs_fop_write_iter+0x124/0x1b0
 new_sync_write+0x11c/0x1b0
 vfs_write+0x1bc/0x270
 ksys_write+0x5f/0xe0
 do_syscall_64+0x33/0x80
 entry_SYSCALL_64_after_hwframe+0x44/0xa9
RIP: 0033:0x7ff4ddd74347
RSP: 002b:00007ffc2976efd8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007ff4ddd74347
RDX: 0000000000000003 RSI: 0000560e7ef48eb0 RDI: 0000000000000001
RBP: 0000560e7ef48eb0 R08: 000000000000000a R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
R13: 00007ff4dde47520 R14: 0000000000000003 R15: 00007ff4dde47700
task:kworker/2:1     state:D stack:    0 pid:394240 ppid:     2 flags:
0x00004000
Workqueue: events rtl_work_func_t [r8152]
Call Trace:
 __schedule+0x2cf/0x940
 schedule+0x46/0xb0
 rpm_resume+0x19c/0x7b0
 ? wait_woken+0x80/0x80
 rpm_resume+0x2e7/0x7b0
 ? netdev_info+0x6c/0x83
 __pm_runtime_resume+0x4a/0x80
 usb_autopm_get_interface+0x18/0x50 [usbcore]
 rtl8152_set_mac_address+0x50/0x1b0 [r8152]
 set_ethernet_addr.isra.0+0x72/0x80 [r8152]
 rtl8152_reset_resume+0x48/0x60 [r8152]
 usb_resume_interface.part.0.isra.0+0x3a/0xb0 [usbcore]
 usb_resume_both+0x103/0x180 [usbcore]
 ? usb_runtime_suspend+0x70/0x70 [usbcore]
 __rpm_callback+0x81/0x140
 rpm_callback+0x4f/0x70
 ? usb_runtime_suspend+0x70/0x70 [usbcore]
 rpm_resume+0x509/0x7b0
 ? _cond_resched+0x16/0x40
 rpm_resume+0x2e7/0x7b0
 ? dequeue_entity+0xc6/0x460
 ? newidle_balance+0x285/0x3d0
 __pm_runtime_resume+0x4a/0x80
 usb_autopm_get_interface+0x18/0x50 [usbcore]
 rtl_work_func_t+0x69/0x2d0 [r8152]
 process_one_work+0x1df/0x370
 worker_thread+0x50/0x400
 ? process_one_work+0x370/0x370
 kthread+0x11b/0x140
 ? __kthread_bind_mask+0x60/0x60
 ret_from_fork+0x22/0x30
task:kworker/2:3     state:D stack:    0 pid:400573 ppid:     2 flags:
0x00004000
Workqueue: events_long rtl_hw_phy_work_func_t [r8152]
Call Trace:
 __schedule+0x2cf/0x940
 schedule+0x46/0xb0
 rpm_resume+0x19c/0x7b0
 ? wait_woken+0x80/0x80
 rpm_resume+0x2e7/0x7b0
 __pm_runtime_resume+0x4a/0x80
 usb_autopm_get_interface+0x18/0x50 [usbcore]
 rtl_hw_phy_work_func_t+0x5e/0x590 [r8152]
 ? __switch_to_asm+0x42/0x70
 ? __switch_to+0x114/0x450
 ? __schedule+0x2d7/0x940
 process_one_work+0x1df/0x370
 worker_thread+0x50/0x400
 ? process_one_work+0x370/0x370
 kthread+0x11b/0x140
 ? __kthread_bind_mask+0x60/0x60
 ret_from_fork+0x22/0x30

See more logs attached, in case they contain more info

$ lsusb | grep Realtek
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit 
Ethernet Adapter
Bus 003 Device 003: ID 0bda:4014 Realtek Semiconductor Corp. USB Audio
Bus 001 Device 004: ID 0bda:5682 Realtek Semiconductor Corp. 
Integrated_Webcam_HD

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel DPG Cloud Engineering

View attachment "lsusb-v.txt" of type "text/plain" (5492 bytes)

View attachment "blockedstate-20210126.txt" of type "text/plain" (28893 bytes)

View attachment "timeout-20210323.txt" of type "text/plain" (2568 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ