On Thu, Nov 24, 2011 at 11:05:40AM -0800, Justin Pettit wrote:
> On Nov 22, 2011, at 3:27 PM, Ben Pfaff wrote:
> 
> > +/* Performs periodic activity required by 'ofproto' that needs to be done
> > + * with the least possible latency.
> > + *
> > + * It makes sense to call this function a couple of times per poll loop, to
> > + * provide a significant performance boost on some benchmarks with the
> > + * ofproto-dpif implementation. */
> > +void
> > +ofproto_run_fast(struct ofproto *p)
> > +{
> > +    if (p->ofproto_class->run_fast) {
> > +        p->ofproto_class->run_fast(p);
> > +    }
> > +}
> 
> I think the only interesting return value from ofproto_run() was
> ENODEV.  I believe that's now detected in handle_upcalls(), which is
> now called through the run_fast() "method".  So, I think the ENODEV
> handling in ofproto_run() belongs in ofproto_run_fast(), and the
> run_fast() "method" should have a return value.  Then, I think
> bridge_run() and bridge_run_fast() need to be updated.

The ENODEV special case was introduced a long time ago when the kernel
module design forced it to be handled specially (otherwise
ovs-vswitchd would go to 100% CPU if "ovs-dpctl del-dp" got run).  The
kernel module design doesn't have that problem, so I decided to just
delete the special case.

I did add a return value to ofproto_run_fast() and adjust
ofproto_run() and ofproto_run_fast() to log errors returned by the
implementations.

I'll push this soon.

Thanks,

Ben.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to