Michal Hocko
48936133e3
cgroup, netclassid: add a preemption point to write_classid
[ Upstream commit a90e90b7d55e789c71d85b946ffb5c1ab2f137ca ]
We have seen a customer complaining about soft lockups on !PREEMPT
kernel config with 4.4 based kernel
[1072141.435366] NMI watchdog: BUG: soft lockup - CPU#21 stuck for 22s! [systemd:1]
[1072141.444090] Modules linked in: mpt3sas raid_class binfmt_misc af_packet 8021q garp mrp stp llc xfs libcrc32c bonding iscsi_ibft iscsi_boot_sysfs msr ext4 crc16 jbd2 mbcache cdc_ether usbnet mii joydev hid_generic usbhid intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel ipmi_ssif mgag200 i2c_algo_bit ttm ipmi_devintf drbg ixgbe drm_kms_helper vxlan ansi_cprng ip6_udp_tunnel drm aesni_intel udp_tunnel aes_x86_64 iTCO_wdt syscopyarea ptp xhci_pci lrw iTCO_vendor_support pps_core gf128mul ehci_pci glue_helper sysfillrect mdio pcspkr sb_edac ablk_helper cryptd ehci_hcd sysimgblt xhci_hcd fb_sys_fops edac_core mei_me lpc_ich ses usbcore enclosure dca mfd_core ipmi_si mei i2c_i801 scsi_transport_sas usb_common ipmi_msghandler shpchp fjes wmi processor button acpi_pad btrfs xor raid6_pq sd_mod crc32c_intel megaraid_sas sg dm_multipath dm_mod scsi_dh_rdac scsi_dh_emc scsi_dh_alua scsi_mod md_mod autofs4
[1072141.444146] Supported: Yes
[1072141.444149] CPU: 21 PID: 1 Comm: systemd Not tainted 4.4.121-92.80-default #1
[1072141.444150] Hardware name: LENOVO Lenovo System x3650 M5 -[5462P4U]- -[5462P4U]-/01GR451, BIOS -[TCE136H-2.70]- 06/13/2018
[1072141.444151] task: ffff880191bd0040 ti: ffff880191bd4000 task.ti: ffff880191bd4000
[1072141.444153] RIP: 0010:[<ffffffff815229f9>] [<ffffffff815229f9>] update_classid_sock+0x29/0x40
[1072141.444157] RSP: 0018:ffff880191bd7d58 EFLAGS: 00000286
[1072141.444158] RAX: ffff883b177cb7c0 RBX: 0000000000000000 RCX: 0000000000000000
[1072141.444159] RDX: 00000000000009c7 RSI: ffff880191bd7d5c RDI: ffff8822e29bb200
[1072141.444160] RBP: ffff883a72230980 R08: 0000000000000101 R09: 0000000000000000
[1072141.444161] R10: 0000000000000008 R11: f000000000000000 R12: ffffffff815229d0
[1072141.444162] R13: 0000000000000000 R14: ffff881fd0a47ac0 R15: ffff880191bd7f28
[1072141.444163] FS: 00007f3e2f1eb8c0(0000) GS:ffff882000340000(0000) knlGS:0000000000000000
[1072141.444164] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[1072141.444165] CR2: 00007f3e2f200000 CR3: 0000001ffea4e000 CR4: 00000000001606f0
[1072141.444166] Stack:
[1072141.444166] ffffffa800000246 00000000000009c7 ffffffff8121d583 ffff8818312a05c0
[1072141.444168] ffff8818312a1100 ffff880197c3b280 ffff881861422858 ffffffffffffffea
[1072141.444170] ffffffff81522b1c ffffffff81d0ca20 ffff8817fa17b950 ffff883fdd8121e0
[1072141.444171] Call Trace:
[1072141.444179] [<ffffffff8121d583>] iterate_fd+0x53/0x80
[1072141.444182] [<ffffffff81522b1c>] write_classid+0x4c/0x80
[1072141.444187] [<ffffffff8111328b>] cgroup_file_write+0x9b/0x100
[1072141.444193] [<ffffffff81278bcb>] kernfs_fop_write+0x11b/0x150
[1072141.444198] [<ffffffff81201566>] __vfs_write+0x26/0x100
[1072141.444201] [<ffffffff81201bed>] vfs_write+0x9d/0x190
[1072141.444203] [<ffffffff812028c2>] SyS_write+0x42/0xa0
[1072141.444207] [<ffffffff815f58c3>] entry_SYSCALL_64_fastpath+0x1e/0xca
[1072141.445490] DWARF2 unwinder stuck at entry_SYSCALL_64_fastpath+0x1e/0xca
If a cgroup has many tasks with many open file descriptors then we would
end up in a large loop without any rescheduling point throught the
operation. Add cond_resched once per task.
Signed-off-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
2018-11-13 11:08:31 -08:00 |
| .. |
|
6lowpan
|
6lowpan: iphc: reset mac_header after decompress to fix panic
|
2018-07-06 12:32:12 +02:00 |
|
9p
|
Pull request for inclusion in 4.19, take two
|
2018-08-17 17:27:58 -07:00 |
|
802
|
|
|
|
8021q
|
net: remove blank lines at end of file
|
2018-07-24 14:10:43 -07:00 |
|
appletalk
|
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
|
2018-06-28 10:40:47 -07:00 |
|
atm
|
Revert "net: simplify sock_poll_wait"
|
2018-11-04 14:50:51 +01:00 |
|
ax25
|
ax25: remove blank line at EOF
|
2018-07-24 14:10:42 -07:00 |
|
batman-adv
|
batman-adv: Increase version number to 2018.3
|
2018-09-14 17:59:20 +02:00 |
|
bluetooth
|
Bluetooth: SMP: fix crash in unpairing
|
2018-09-26 12:39:32 +03:00 |
|
bpf
|
bpf/test_run: support cgroup local storage
|
2018-08-03 00:47:32 +02:00 |
|
bpfilter
|
net: bpfilter: use get_pid_task instead of pid_task
|
2018-10-17 22:03:40 -07:00 |
|
bridge
|
net: bridge: remove ipv6 zero address check in mcast queries
|
2018-11-04 14:50:54 +01:00 |
|
caif
|
Revert "net: simplify sock_poll_wait"
|
2018-11-04 14:50:51 +01:00 |
|
can
|
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
|
2018-06-28 10:40:47 -07:00 |
|
ceph
|
crush: fix using plain integer as NULL warning
|
2018-08-13 17:55:44 +02:00 |
|
core
|
cgroup, netclassid: add a preemption point to write_classid
|
2018-11-13 11:08:31 -08:00 |
|
dcb
|
net: dcb: Add priority-to-DSCP map getters
|
2018-07-27 13:17:50 -07:00 |
|
dccp
|
Revert "net: simplify sock_poll_wait"
|
2018-11-04 14:50:51 +01:00 |
|
decnet
|
decnet: fix using plain integer as NULL warning
|
2018-08-09 14:11:24 -07:00 |
|
dns_resolver
|
net: remove blank lines at end of file
|
2018-07-24 14:10:43 -07:00 |
|
dsa
|
net: dsa: Drop GPIO includes
|
2018-08-27 15:24:33 -07:00 |
|
ethernet
|
net: Convert GRO SKB handling to list_head.
|
2018-06-26 11:33:04 +09:00 |
|
hsr
|
|
|
|
ieee802154
|
net: ieee802154: 6lowpan: remove redundant pointers 'fq' and 'net'
|
2018-08-06 11:21:15 +02:00 |
|
ife
|
net: sched: ife: check on metadata length
|
2018-04-22 21:12:00 -04:00 |
|
ipv4
|
net: drop skb on failure in ip_check_defrag()
|
2018-11-04 14:50:53 +01:00 |
|
ipv6
|
net/ipv6: Allow onlink routes to have a device mismatch if it is the default route
|
2018-11-04 14:50:52 +01:00 |
|
iucv
|
Revert "net: simplify sock_poll_wait"
|
2018-11-04 14:50:51 +01:00 |
|
kcm
|
Revert "kcm: remove any offset before parsing messages"
|
2018-09-17 18:43:42 -07:00 |
|
key
|
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next
|
2018-07-27 09:33:37 -07:00 |
|
l2tp
|
l2tp: fix unused function warning
|
2018-08-13 20:45:49 -07:00 |
|
l3mdev
|
|
|
|
lapb
|
|
|
|
llc
|
llc: set SOCK_RCU_FREE in llc_sap_add_socket()
|
2018-10-15 22:01:37 -07:00 |
|
mac80211
|
mac80211: fix setting IEEE80211_KEY_FLAG_RX_MGMT for AP mode keys
|
2018-10-01 09:13:48 +02:00 |
|
mac802154
|
net: mac802154: tx: expand tailroom if necessary
|
2018-08-06 11:21:37 +02:00 |
|
mpls
|
mpls: allow routes on ip6gre devices
|
2018-09-24 12:19:27 -07:00 |
|
ncsi
|
net/ncsi: Fixup .dumpit message flags and ID check in Netlink handler
|
2018-08-22 21:39:08 -07:00 |
|
netfilter
|
netfilter: xt_nat: fix DNAT target for shifted portmap ranges
|
2018-11-13 11:08:20 -08:00 |
|
netlabel
|
netlabel: check for IPV4MASK in addrinfo_get
|
2018-09-21 18:58:34 -07:00 |
|
netlink
|
Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net
|
2018-08-05 13:04:31 -07:00 |
|
netrom
|
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
|
2018-06-28 10:40:47 -07:00 |
|
nfc
|
Revert "net: simplify sock_poll_wait"
|
2018-11-04 14:50:51 +01:00 |
|
nsh
|
nsh: set mac len based on inner packet
|
2018-07-12 16:55:29 -07:00 |
|
openvswitch
|
openvswitch: Fix push/pop ethernet validation
|
2018-11-04 14:50:52 +01:00 |
|
packet
|
net/packet: fix packet drop as of virtio gso
|
2018-10-04 22:23:15 -07:00 |
|
phonet
|
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
|
2018-06-28 10:40:47 -07:00 |
|
psample
|
|
|
|
qrtr
|
net: qrtr: Reset the node and port ID of broadcast messages
|
2018-07-05 20:20:03 +09:00 |
|
rds
|
rds: RDS (tcp) hangs on sendto() to unresponding address
|
2018-10-10 22:19:52 -07:00 |
|
rfkill
|
Here are quite a large number of fixes, notably:
|
2018-09-03 22:12:02 -07:00 |
|
rose
|
Revert changes to convert to ->poll_mask() and aio IOCB_CMD_POLL
|
2018-06-28 10:40:47 -07:00 |
|
rxrpc
|
Revert "net: simplify sock_poll_wait"
|
2018-11-04 14:50:51 +01:00 |
|
sched
|
net: sched: gred: pass the right attribute to gred_change_table_def()
|
2018-11-04 14:50:51 +01:00 |
|
sctp
|
sctp: check policy more carefully when getting pr status
|
2018-11-04 14:50:53 +01:00 |
|
smc
|
net/smc: fix smc_buf_unuse to use the lgr pointer
|
2018-11-04 14:50:52 +01:00 |
|
strparser
|
strparser: remove redundant variable 'rd_desc'
|
2018-08-01 10:00:06 -07:00 |
|
sunrpc
|
NFS client updates for Linux 4.19
|
2018-08-23 16:03:58 -07:00 |
|
switchdev
|
|
|
|
tipc
|
Revert "net: simplify sock_poll_wait"
|
2018-11-04 14:50:51 +01:00 |
|
tls
|
tls: fix currently broken MSG_PEEK behavior
|
2018-09-17 08:03:09 -07:00 |
|
unix
|
Revert "net: simplify sock_poll_wait"
|
2018-11-04 14:50:51 +01:00 |
|
vmw_vsock
|
vsock: split dwork to avoid reinitializations
|
2018-08-07 12:39:13 -07:00 |
|
wimax
|
wimax: remove blank lines at EOF
|
2018-07-24 14:10:42 -07:00 |
|
wireless
|
cfg80211: fix use-after-free in reg_process_hint()
|
2018-10-01 09:14:03 +02:00 |
|
x25
|
x25: remove blank lines at EOF
|
2018-07-24 14:10:42 -07:00 |
|
xdp
|
xsk: do not call synchronize_net() under RCU read lock
|
2018-10-11 10:19:01 +02:00 |
|
xfrm
|
xfrm: policy: use hlist rcu variants on insert
|
2018-10-11 13:24:46 +02:00 |
|
compat.c
|
net: avoid unnecessary sock_flag() check when enable timestamp
|
2018-08-06 10:42:48 -07:00 |
|
Kconfig
|
net: remove blank lines at end of file
|
2018-07-24 14:10:43 -07:00 |
|
Makefile
|
bpfilter: check compiler capability in Kconfig
|
2018-06-28 13:36:39 +09:00 |
|
socket.c
|
net: socket: fix a missing-check bug
|
2018-10-18 16:43:06 -07:00 |
|
sysctl_net.c
|
net: Drop pernet_operations::async
|
2018-03-27 13:18:09 -04:00 |