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

Reply via email to