Bug 1825766
| Summary: | [RFE] [OVN SCALE] ovn-controller : Have a separate thread to program flows | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux Fast Datapath | Reporter: | Numan Siddique <nusiddiq> |
| Component: | OVN | Assignee: | anil venkata <vkommadi> |
| Status: | ASSIGNED --- | QA Contact: | Jianlin Shi <jishi> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | medium | ||
| Version: | FDP 20.A | CC: | ctrautma, mmichels |
| Target Milestone: | --- | Keywords: | FutureFeature |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | Bug | |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Numan Siddique
2020-04-20 08:05:00 UTC
I tried this approach https://github.com/venkataanil/ovn/tree/thread i.e splitting ovn-controller into two threads (similar to produce consumer approach) 1) main thread will continue with generating flows 2) new thread will push these flows to the switch when there are no pending packets but I don't see much performance improvement as scheduling this new thread by kernel when it gets new flows also consumes some time. Enhanced the thread approach here https://github.com/venkataanil/ovn/tree/p10_thread Now trying the below approach Want to avoid thread and instead define the msgs as static so that they will be avialable across engine runs. engine will keep on generating messages according to flow changes without checking if the switch has pending packets. ofctrl put will avoid pushing the packets to switch when it has pending packets and will send them during next engine run. https://github.com/venkataanil/ovn/tree/ofctrl_put_delay |