Description of problem: Backport first 3 incremental processing patches to OVN2.11. The first 3 patches of this series in upstream only adds incremental processing support in quiet mode i.e for any south db changes, full recomputation will be triggered, but for any ofctrl/pinctrl events, there will be no flow computation. This would help OSP15 and other layered products using OVN2.11. Otherwise for these events, OVN2.11 will do full flow recomputation which is not necessary and it would result in high CPU usage. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
Changed the scope of this BZ from first 3 patches to all the I-P patches. OSP13 will be moving to OVN 2.11 and since OSP13 is long time release, it makes sense to backport all the I-P patches.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2019:2943
Hi Numan, Can you help tell how to reproduce and verify this bug? We don't know how to create the ofctrl/pinctrl events in OVN.Thanks!
Hi Haidong Li, One thing to verify is that this should not result in any regressions. This is more of a functional change. Regarding the pinctrl evebts, rrom any VM you can actually flood GARPs, dhcp requests and this should not result in flow recomputation. To verify this you can probably check the CPU usage. Thanks Numan
verified on the latest version:ovn2.11-2.11.1-3.el7fdp steps: 1.run test case "regression_bz1695722" manually to send lots of dhcp packets 2.send GARP packets with scapy: from scapy.all import * ip='172.16.{y}.{x}' mac='00:de:ad:01:00:{z}' for i in range(10,99): for j in range(10,99): sendp(Ether(src=mac.format(z=j),dst="ff:ff:ff:ff:ff:ff")/ARP(op=1,hwsrc=mac. format(z=j),hwdst="00:00:00:00:00:00",psrc=ip.format(x=i,y=j),pdst=ip.format(x=i ,y=j)),iface="eth1") cpu usage is not high: top - 23:39:15 up 1:21, 2 users, load average: 0.73, 0.22, 0.13 Tasks: 501 total, 1 running, 500 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.9 us, 0.5 sy, 0.0 ni, 97.4 id, 0.0 wa, 0.1 hi, 0.1 si, 0.0 st MiB Mem : 64065.8 total, 55505.2 free, 2891.3 used, 5669.3 buff/cache MiB Swap: 28560.0 total, 28560.0 free, 0.0 used. 60568.6 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5256 qemu 20 0 7314724 896164 20960 S 41.4 1.4 2:30.59 qemu-kvm 4999 openvsw+ 10 -10 2327972 122356 33044 S 7.6 0.2 0:38.69 ovs-vswitchd 5066 root 10 -10 267224 8756 3340 S 5.0 0.0 0:05.86 ovn-controller 4289 root 20 0 1826748 47732 31992 S 4.6 0.1 0:07.32 libvirtd 4084 root 20 0 246768 12380 10692 S 3.0 0.0 0:01.21 virsh 2440 root 20 0 151192 5316 4068 S 2.6 0.0 0:02.72 sshd 5413 qemu 20 0 6315264 588956 21216 S 2.6 0.9 1:39.65 qemu-kvm 3760 root 20 0 64268 5276 4016 R 1.0 0.0 0:08.15 top 4165 root 20 0 0 0 0 I 0.7 0.0 0:00.12 kworker/u65:1-events_unbound 4397 root 20 0 0 0 0 I 0.7 0.0 0:00.02 kworker/u65:3-events_unbound