On Wed, Dec 14, 2011 at 4:23 PM, Ben Pfaff <b...@nicira.com> wrote: > On Wed, Dec 14, 2011 at 04:21:21PM -0800, Ethan Jackson wrote: >> > ? ? ? ?4. Have the RCU callback for flow deletion send the Netlink >> > ? ? ? ? ? broadcast message that tells userspace that the flow is gone. >> > ? ? ? ? ? The Netlink client that sent the actual deletion request >> > ? ? ? ? ? would still get a synchronous response, but the broadcast >> > ? ? ? ? ? would be delayed until the flow was really gone. ?I think >> > ? ? ? ? ? this might be practical, but I don't know the exact >> > ? ? ? ? ? restrictions on RCU callbacks. >> >> Assuming this is possible from the kernel's perspective, what do we do >> if the netlink broadcast is dropped for some reason? If we get an >> ENOBUFS, assume that all flows deletions have completed? This isn't >> particularly satisfying, but is probably so rare it may not matter. > > My guess is that it is probably true that all flow deletions have > completed in that case, because RCU causes all of this stuff to happen > in batches: anything queued up to be destroyed before a given grace > period gets destroyed at the same time.
I think that's mostly true but not completely reliable. If you delete multiple flows it's possible for a grace period to end in between them, in which case what you saw as a single set of flow deletions would be broken into multiple baches. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev