Skip to content

Commit

Permalink
netfilter: conntrack: remove GC_MAX_EVICTS break
Browse files Browse the repository at this point in the history
Instead of breaking loop and instant resched, don't bother checking
this in first place (the loop calls cond_resched for every bucket anyway).

Suggested-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  • Loading branch information
Florian Westphal authored and Pablo Neira Ayuso committed Jan 19, 2017
1 parent 3fd0b63 commit 524b698
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions net/netfilter/nf_conntrack_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,6 @@ static __read_mostly bool nf_conntrack_locks_all;
#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;

Expand Down Expand Up @@ -979,8 +977,7 @@ static void gc_worker(struct work_struct *work)
*/
rcu_read_unlock();
cond_resched_rcu_qs();
} while (++buckets < goal &&
expired_count < GC_MAX_EVICTS);
} while (++buckets < goal);

if (gc_work->exiting)
return;
Expand All @@ -1005,7 +1002,7 @@ static void gc_worker(struct work_struct *work)
* 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) {
Expand Down

0 comments on commit 524b698

Please sign in to comment.