On Wed, Sep 11, 2013 at 06:41:40PM +0500, Junaid Rao wrote: > I have developed a custom netdev provider and running OVS-1.10.0 in > userspace mode. it works fine but the packet processing rate is quite slow. > Packet transmission rate is about 500packets/sec but OVS is only able to > forward 1/5th of this.
Sounds very slow. Even userspace OVS should be much faster than this. > The arrival of incoming packet at the switch is indicated by a call back > function, and this call back works fine for the actual packet transmission > rate i.e. 500p/s. > > What I understand is the problem in use of poll_block() which is called in > the main loop. Currently I use poll_immediate_wake to signal the polling > thread to stop as soon as a packet is received in my call back function, > however I see that multiple packets arrive before a single packet is > received by the netdev-provider. It sounds like you have a thread separate from the main thread doing packet handling. That's fine, but you have to understand that each thread has its own poll_loop, so that calling poll_immediate_wake() in one thread does not affect other threads in any way. You might want to look at lib/seq.[ch] for another way to wake up the main thread when packets are received. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev