Skip to contentSkip to conversation

Patch "netfilter: conntrack: remove GC_MAX_EVICTS break" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Mar 10, 2017

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

netfilter: conntrack: remove GC_MAX_EVICTS break

to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
netfilter-conntrack-remove-gc_max_evicts-break.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 524b698db06b9b6da7192e749f637904e2f62d7b Mon Sep 17 00:00:00 2001

From: Florian Westphal <[email protected]>
Date: Mon, 16 Jan 2017 18:24:56 +0100
Subject: netfilter: conntrack: remove GC_MAX_EVICTS break

From: Florian Westphal <[email protected]>

commit 524b698db06b9b6da7192e749f637904e2f62d7b upstream.

Instead of breaking loop and instant resched, don't bother checking this in first place (the loop calls cond_resched for every bucket anyway).

---
 net/netfilter/nf_conntrack_core.c |    7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
net/netfilter/nf_conntrack_core.c +2 -5
@@ -88,8 +88,6 @@ static __read_mostly bool nf_conntrack_l
 #define GC_MAX_BUCKETS_DIV	64u
 /* upper bound of scan intervals */
 #define GC_INTERVAL_MAX		(2 * HZ)
-/* maximum conntracks to evict per gc run */
-#define GC_MAX_EVICTS		256u
 
 static struct conntrack_gc_work conntrack_gc_work;
 
@@ -979,8 +977,7 @@ static void gc_worker(struct work_struct
 		 */
 		rcu_read_unlock();
 		cond_resched_rcu_qs();
-	} while (++buckets < goal &&
-		 expired_count < GC_MAX_EVICTS);
+	} while (++buckets < goal);
 
 	if (gc_work->exiting)
 		return;
@@ -1005,7 +1002,7 @@ static void gc_worker(struct work_struct
 	 * In case we have lots of evictions next scan is done immediately.
 	 */
 	ratio = scanned ? expired_count * 100 / scanned : 0;
-	if (ratio >= 90 || expired_count == GC_MAX_EVICTS) {
+	if (ratio >= 90) {
 		gc_work->next_gc_run = 0;
 		next_run = 0;
 	} else if (expired_count) {

Patches currently in stable-queue which might be from [email protected] are

queue-4.9/netfilter-conntrack-remove-gc_max_evicts-break.patch queue-4.9/netfilter-conntrack-refine-gc-worker-heuristics-redux.patch