Bug 1430418

Summary: Backport "net/Qdisc: use a seqlock instead seqcount" upstream RT patch
Product: Red Hat Enterprise Linux 7 Reporter: Arnaldo Carvalho de Melo <acme>
Component: kernel-rtAssignee: Luis Claudio R. Goncalves <lgoncalv>
kernel-rt sub component: Networking QA Contact: Jiri Kastner <jkastner>
Status: CLOSED ERRATA Docs Contact:
Severity: low    
Priority: unspecified CC: acme, bhu
Version: 7.4   
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 3.10.0-776.rt56.709 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 09:07:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1410158, 1442258    
Attachments:
Description Flags
net/Qdisc: use a seqlock instead seqcount none

Description Arnaldo Carvalho de Melo 2017-03-08 14:58:33 UTC
Description of problem:

Upstream patch improves determinism by using a better synchronization primitive when checking for contention on a network qdisc.

Present from around 4.8-rt1.

Patch description:

"The seqcount disables preemption on -RT while it is held which can't
remove. Also we don't want the reader to spin for ages if the writer is
scheduled out. The seqlock on the other hand will serialize / sleep on
the lock while writer is active."

Comment 2 Beth Uptagrafft 2017-03-08 16:04:02 UTC
moving to the RT team

Comment 3 Luis Claudio R. Goncalves 2017-11-10 18:32:12 UTC
Created attachment 1350616 [details]
net/Qdisc: use a seqlock instead seqcount

From: Sebastian Andrzej Siewior <bigeasy>
Date: Wed, 14 Sep 2016 17:36:35 +0200
Subject: [PATCH] net/Qdisc: use a seqlock instead seqcount

Bugzilla: 1430418 1511589 1511558

The seqcount disables preemption on -RT while it is held which can't
remove. Also we don't want the reader to spin for ages if the writer is
scheduled out. The seqlock on the other hand will serialize / sleep on
the lock while writer is active.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy>
Signed-off-by: Luis Claudio R. Goncalves <lgoncalv>
---
 include/linux/seqlock.h    |    9 +++++++++
 include/net/gen_stats.h    |    9 +++++----
 include/net/net_seq_lock.h |   15 +++++++++++++++
 include/net/sch_generic.h  |   23 +++++++++++++++++++----
 net/core/gen_estimator.c   |    6 +++---
 net/core/gen_stats.c       |    8 ++++----
 net/sched/sch_api.c        |    2 +-
 net/sched/sch_generic.c    |   12 ++++++++++++
 8 files changed, 68 insertions(+), 16 deletions(-)

Comment 10 errata-xmlrpc 2018-04-10 09:07:09 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://access.redhat.com/errata/RHSA-2018:0676