Hi Mugunthan, On Fri, Jul 31, 2015 at 2:22 PM, Yegor Yefremov <yegorsli...@googlemail.com> wrote: > We experience massive problems, when putting am335x based devices into > high broadcast load environment (customer reports). To reproduce the > issue we've written following Python script > > #!/usr/bin/python > # Send UDP broadcast packets > > myport = 50000 > > import sys, time > from socket import * > > if len(sys.argv) == 2: > myport = int(sys.argv[1]) > > s = socket(AF_INET, SOCK_DGRAM) > s.bind(('192.168.254.36', 0)) > s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) > > while 1: > #data = repr(time.time()) + '\n' > data = "a" > s.sendto(data, ('<broadcast>', myport)) > time.sleep(0.0001) > > Just running this script on a host machine and invoking "top" on the > am335x machine results in sirq showing about 90% for 600MHz CPU and > 3.18.x kernel. Below example of idle "top" output for the reference: > > Mem: 13432K used, 217844K free, 64K shrd, 652K buff, 4956K cached > CPU: 0% usr 0% sys 0% nic 99% idle 0% io 0% irq 0% sirq > > Then I tried 4.2.0-rc4 and sirq was about 80%, then I applied both > > drivers: net: cpsw: remove disable_irq/enable_irq as irq can be > masked from cpsw itself > drivers: net: cpsw: add separate napi for tx packet handling for > performance improvment > > and sirq lowered to about 50%, but I have also tried evil vendor tree > 3.2.0+ and sirq was about 2%. Am I missing some kernel option/setting? > Any idea, how one can make am335x with a recent kernel to keep sirq as > low as possible, when no service listens to these broadcasts? > > All am335x kernels used dual_emac mode. > > I have similar situation with am3517. Kernel 2.6.37 (latest official > TI kernel) shows sirq 24% and upstream 4.1.2 about 90%.
Could you please look at this issue. It is still valid for 4.5 and am335x. Thanks. Yegor