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

Reply via email to