On Thu, Jun 20, 2013 at 04:20:16PM -0700, Justin Pettit wrote: > On Jun 20, 2013, at 4:06 PM, Ben Pfaff <b...@nicira.com> wrote: > > On Thu, Jun 20, 2013 at 03:16:43PM -0700, Justin Pettit wrote: > > The following is a little worrisome because EINVAL is very generic and > > can indicate many kinds of errors. If we always suppress logging > > EINVAL, then we could miss important problems. I am surprised that we > > do not use EEXIST or another error that is less overloaded: > > Agreed. Andy's going to change the kernel to return EEXIST instead. > Are you okay with the patch with EINVAL references replaced with > EEXIST?
The other thing that worries me is that you mentioned that you saw multiple installations of a single subfacet in a single batch. If so, that worries me because it seems like this could happen: handle_flow_miss_with_facet() queues up subfacet sf for installation into fast path, and sets sf->path to SF_FAST_PATH. handle_flow_miss_with_facet() queues up subfacet sf for installation into fast path, again, and sets sf->path to SF_FAST_PATH. ... The first installation succeeds. OK. The second installation fails (EINVAL, EEXIST, whatever), so we set sf->path back to SF_NOT_INSTALLED. But it was installed by the first "put". But I don't understand how we'd get multiple installations to begin with, since the first handle_flow_miss_with_facet() call would set sf->path to SF_FAST_PATH and the second one would see that sf->path was already SF_FAST_PATH and not try to install it again. Do you have any idea what was going on there? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev