netfilter: conntrack: Change to deferable work queue
authorsubashab@codeaurora.org <subashab@codeaurora.org>
Fri, 21 Jul 2017 01:42:19 +0000 (19:42 -0600)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 31 Jul 2017 17:03:50 +0000 (19:03 +0200)
Delayed workqueue causes wakeups to idle CPUs. This was
causing a power impact for devices. Use deferable work
queue instead so that gc_worker runs when CPU is active only.

Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_core.c

index 69746928cc0a78eebbc1f512b7e121c4152a2a36..c6f1cf0bff569416f350f15e8d5b2848f2ee29d0 100644 (file)
@@ -1081,7 +1081,7 @@ static void gc_worker(struct work_struct *work)
 
 static void conntrack_gc_work_init(struct conntrack_gc_work *gc_work)
 {
-       INIT_DELAYED_WORK(&gc_work->dwork, gc_worker);
+       INIT_DEFERRABLE_WORK(&gc_work->dwork, gc_worker);
        gc_work->next_gc_run = HZ;
        gc_work->exiting = false;
 }