]> git.proxmox.com Git - mirror_frr.git/commit - zebra/zebra_dplane.c
zebra: resched dp thread if output queue limit hit
authorDuncan Eastoe <duncan.eastoe@att.com>
Tue, 22 Dec 2020 18:35:40 +0000 (18:35 +0000)
committerDuncan Eastoe <duncan.eastoe@att.com>
Tue, 22 Dec 2020 21:14:03 +0000 (21:14 +0000)
commitf1595ce43940e9cc6f5052b77b6f5152bc251f8b
tree9742c8938bcefac06ba8f22bb0381b5893f199a2
parentfb1e95488052255d9c476ed2357c0cc17950e0c5
zebra: resched dp thread if output queue limit hit

If the dataplane thread hits the work limit while processing the
output queue for any given provider, we now explicitly reschedule
the thread.

Otherwise, if the number of items in the output queue is greater than
the work limit, draining of that output queue is dependent on new
dataplane work.

Routes which are not drained from the output queue are stuck with
the 'q' flag, so this is a similar issue to that observed in
164d8e86081fdf33992b6c45af446bac6103e20c.

Signed-off-by: Duncan Eastoe <duncan.eastoe@att.com>
zebra/zebra_dplane.c