Bug 1293230

Summary: rt: netpoll: live lock with NAPI polling and busy polling on realtime kernel
Product: Red Hat Enterprise Linux 7 Reporter: Jan Kurik <jkurik>
Component: kernel-rtAssignee: Luis Claudio R. Goncalves <lgoncalv>
kernel-rt sub component: Misc QA Contact: Zhenjie Chen <zhchen>
Status: CLOSED ERRATA Docs Contact:
Severity: high    
Priority: high CC: bhu, daolivei, kzhang, lgoncalv, mleitner, williams, zhchen
Version: 7.3Keywords: ZStream
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Cause: As the realtime kernel replaces most of the spinlocks by rtmutexes, in order to maximize the preemption points inside the kernel, the locking scheme used in both NAPI polling and busy polling could become out of synchronization with the State Machine they protected. That could be observed when a machine with faster NICs (10g or 40g) was subject to a heavy pressure receiving network packets. Consequence: The system could experience a livelock that would either slowly degrade the system performance up to a halt or disable the network adapter and halt. Fix: the locking schemes on NAPI polling and busy polling routines were hardened to enforce the State machine sanity. Result: the system works fine under pressure.
Story Points: ---
Clone Of: 1292902
: 1295884 (view as bug list) Environment:
Last Closed: 2016-02-16 10:50:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On: 1292902    
Bug Blocks: 1295884    
Attachments:
Description Flags
netpoll: Always take poll_lock when doing polling
none
Revert "ixgbevf: Prevent livelock spinning grabbing ixgbevf_qv_lock"
none
revert "ixgbe: Prevent livelock spinning grabbing ixgbe_qv_lock"
none
revert "sfc: Prevent livelock spinning grabbing efx_channel_lock"
none
Setup notes for hp-dl388g8-09.rhts.eng.nay.redhat.com
none
Setup notes for rhelrt-17.farm.hsv.redhat.com none

Description Jan Kurik 2015-12-21 07:06:59 UTC
This bug has been copied from bug #1292902 and has been proposed
to be backported to 7.2 z-stream (EUS).

Comment 3 Luis Claudio R. Goncalves 2016-01-07 03:55:55 UTC
Created attachment 1112330 [details]
netpoll: Always take poll_lock when doing polling

Comment 4 Luis Claudio R. Goncalves 2016-01-07 03:57:04 UTC
Created attachment 1112331 [details]
Revert "ixgbevf: Prevent livelock spinning grabbing ixgbevf_qv_lock"

Comment 5 Luis Claudio R. Goncalves 2016-01-07 03:58:09 UTC
Created attachment 1112332 [details]
revert "ixgbe: Prevent livelock spinning grabbing ixgbe_qv_lock"

Comment 6 Luis Claudio R. Goncalves 2016-01-07 03:58:51 UTC
Created attachment 1112333 [details]
revert "sfc: Prevent livelock spinning grabbing efx_channel_lock"

Comment 11 Clark Williams 2016-02-02 14:20:06 UTC
Created attachment 1120448 [details]
Setup notes for hp-dl388g8-09.rhts.eng.nay.redhat.com

Notes for reproducing this bug on an HP DL388 with SolarFlare (sfc) NIC

Comment 12 Clark Williams 2016-02-02 14:21:32 UTC
Created attachment 1120449 [details]
Setup notes for rhelrt-17.farm.hsv.redhat.com

setup notes for test box in HSV lab

Comment 16 errata-xmlrpc 2016-02-16 10:50:02 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2016-0212.html