Subject: Re: [net PATCH 1/1] drivers: net: cpsw: fix disabling of tx interrupt in rx isr

From: Felipe Balbi <[email-masked]>
Date: Wed, 8 Jul 2015 11:10:22 -0500

Hi,

On Wed, Jul 08, 2015 at 02:21:27PM +0530, Mugunthan V N wrote:
> On Wednesday 08 July 2015 01:08 PM, Felipe Balbi wrote:
> > Hi,
> > 
> > On Wed, Jul 08, 2015 at 12:17:46PM +0530, Mugunthan V N wrote:
> >> With the below commit, common isr is split into tx and rx, but in
> >> rx isr tx interrupt is also disabled. So tx packets are not handled
> >> during rx interrupts and rx napi completion. Fixing by disabling on
> >> rx interrupt in rx isr.
> >>
> >> Fixes: c03abd84634d ("net: ethernet: cpsw: don't requests IRQs we don't use")
> > 
> > why does this fix that commit ? What was the regression ? So RX IRQ fire
> > and both RX and TX are disabled, sure that's bad. But it should cause
> > lower throughput. At a minimum, I think your commit log needs some work.
> 
> Agreed, will change the commit and resubmit the patch as it affects
> performance only and not a regression.

thanks

> > Also, disable_irq_nosync() shouldn't really be needed, you could just
> > mask the IRQ in the IRQ Enable register, but I guess that'd be v4.3
> > material.
> 
> This was needed because there is a latch inbetween CPSW interrupt line
> and Interrupt Controller (to convert from pulse interrupt to level
> interrupt), because of this even though interrupt is disabled from the
> IP, CPU is held up in isr as it is not cleared or masked to Interrupt
> controller. Because of disable_irq_nosync() was added initially. I will
> revisit this but as you said it will be for 4.3

still, that shouldn't be needed. Just mask and clear the IRQ straight
away, then handle it.

> With this patch I am able to see +3 Mbps with omap2plus_defconfig and
> +40Mbps with having AM43xx SoC only and removing some kernel debugging
> options.

looks like this should be in commit log in some shape or form.

-- 
balbi