Patchwork [BUG] via-rhine: NOHZ: local_softirq_pending 08

login
register
mail settings
Submitter fran├žois romieu
Date Jan. 30, 2013, 12:04 a.m.
Message ID <20130130000432.GA28621@electric-eye.fr.zoreil.com>
Download mbox | patch
Permalink /patch/216737/
State RFC
Delegated to: David Miller
Headers show

Comments

fran├žois romieu - Jan. 30, 2013, 12:04 a.m.
David Miller <davem@davemloft.net> :
[...]
> I don't think you can't keep using dev_kfree_skb_irq() there.
> 
> Francois any objections to this patch?

None.

I have almost surely broken via-rhine with NOHZ as I broke the r8169
driver before 7dbb491878a2c51d372a8890fa45a8ff80358af1. Something like
the patch below could be needed as well (quick shot before bed time
and ~24h delay if Jamie wants to try something now).

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jamie Gloudon - Jan. 30, 2013, 3:54 a.m.
On Wed, Jan 30, 2013 at 01:04:32AM +0100, Francois Romieu wrote:
> David Miller <davem@davemloft.net> :
> [...]
> > I don't think you can't keep using dev_kfree_skb_irq() there.
> > 
> > Francois any objections to this patch?
> 
> None.
> 
> I have almost surely broken via-rhine with NOHZ as I broke the r8169
> driver before 7dbb491878a2c51d372a8890fa45a8ff80358af1. Something like
> the patch below could be needed as well (quick shot before bed time
> and ~24h delay if Jamie wants to try something now).
> 
> diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
> index 7992b3e..5c7e900 100644
> --- a/drivers/net/ethernet/via/via-rhine.c
> +++ b/drivers/net/ethernet/via/via-rhine.c
> @@ -2010,11 +2010,7 @@ static void rhine_slow_event_task(struct work_struct *work)
>  	if (intr_status & IntrPCIErr)
>  		netif_warn(rp, hw, dev, "PCI error\n");
>  
> -	napi_disable(&rp->napi);
> -	rhine_irq_disable(rp);
> -	/* Slow and safe. Consider __napi_schedule as a replacement ? */
> -	napi_enable(&rp->napi);
> -	napi_schedule(&rp->napi);
> +	iowrite16(RHINE_EVENT & 0xffff, rp->base + IntrEnable);
>  
>  out_unlock:
>  	mutex_unlock(&rp->task_lock);

Francois's patch fixed the issue for me. thanks!

Regards,
Jamie Gloudon
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
index 7992b3e..5c7e900 100644
--- a/drivers/net/ethernet/via/via-rhine.c
+++ b/drivers/net/ethernet/via/via-rhine.c
@@ -2010,11 +2010,7 @@  static void rhine_slow_event_task(struct work_struct *work)
 	if (intr_status & IntrPCIErr)
 		netif_warn(rp, hw, dev, "PCI error\n");
 
-	napi_disable(&rp->napi);
-	rhine_irq_disable(rp);
-	/* Slow and safe. Consider __napi_schedule as a replacement ? */
-	napi_enable(&rp->napi);
-	napi_schedule(&rp->napi);
+	iowrite16(RHINE_EVENT & 0xffff, rp->base + IntrEnable);
 
 out_unlock:
 	mutex_unlock(&rp->task_lock);