Hi Mattias, 

Please see the pktgen.c module for how to correctly call driver ops directly 
(well, almost, as you should pretty much never call driver ops directly, and 
certainly not ignore the return code or the state changes)
http://lxr.free-electrons.com/source/net/core/pktgen.c#L3366

What you're doing is completely outside the expectation of the design of the 
driver and the stack.

I don't believe what you've found is a driver bug, you're just not adhering to 
the rules (as opaque as they may be, if you're writing a kernel module you're 
on your own)



-----Original Message-----
From: Mattias Barthel [mailto:mbart...@accedian.com] 
Sent: Wednesday, April 6, 2016 10:52 AM
To: Fujinaka, Todd <todd.fujin...@intel.com>
Cc: e1000-devel@lists.sourceforge.net
Subject: Re: [E1000-devel] igb reset adapter I350

Hey Todd.

Sorry if I am using terminology that is non-standard according to you,
Todd. Maybe you can be more precise and point out what you dont understand?

Anyways, Ill be as specific as can be through pointing out calls from my
module to the netdev subsystem in linux kernel:

*Before workaround:* (Calling ndo_start_xmit with high enough frequency
will make the NIC enter the reset loop)
(void)dev->netdev_ops->ndo_start_xmit(skb, dev);


*After workaround:* (Not sending when link is down):
if (netif_carrier_ok(dev)) {
       (void)dev->netdev_ops->ndo_start_xmit(skb, dev);
}
else {
        dev_kfree_skb_any(skb);
}


So the issue seems to be reproduced when sending without respecting that
the interface link is down.

I tried the 3.0.6-k2, 4.2.16 and 5.1.2 version of the driver. All of them
presented the same issue.

Regards,

Mattias

On Wed, Apr 6, 2016 at 7:02 PM, Fujinaka, Todd <todd.fujin...@intel.com>
wrote:

> You didn’t provide enough information to debug your problem. You’re also
> using non-standard terminology which makes it even more difficult to debug.
>
>
>
> I only looked at two of your links, but I think you’re talking about what
> people call “transmit hangs”. A transmit hang and reset occurs when the
> transmit queue can’t be emptied. This can happen for many reasons including
> unplugging an Ethernet cable at the wrong time. A transmit hang is a
> symptom, not the cause of the error.
>
>
>
> If you’re somehow filling the transmit queue when there’s no link you’re
> going to see these. Without more information that’s about all I can tell
> you.
>
>
>
> *Todd Fujinaka*
>
> Software Application Engineer
>
> Networking Division (ND)
>
> Intel Corporation
>
> *todd.fujin...@intel.com <todd.fujin...@intel.com>*
>
> (503) 712-4565
>
>
>
> *From:* Mattias Barthel [mailto:mbart...@accedian.com]
> *Sent:* Wednesday, April 06, 2016 6:36 AM
> *To:* Fujinaka, Todd <todd.fujin...@intel.com>
> *Cc:* e1000-devel@lists.sourceforge.net
> *Subject:* Re: [E1000-devel] igb reset adapter I350
>
>
>
> Hello,
>
> After testing the 5.1.2. driver I get the exact same behavior.
>
> It goes into a reset loop.
>
>
>
> I will refrain from sending if the netif_carrrier_ok(dev) is false as a
> workaround. Maybe its illegal to try and send if the device is down.
>
> But it would be nice to know if this is expected behavior.
>
>
>
> Regards,
>
>
>
> Mattias
>
>
>
> On Wed, Apr 6, 2016 at 10:22 AM, Mattias Barthel <mbart...@accedian.com>
> wrote:
>
> Hello Todd,
>
>
>
> Thanks for your answer!
>
> Although, Im not sure what the distro means here.
>
> I believe its only kernel version and driver version that are significant?
>
> In any case, my system is based on some embedded small distro. Maybe it
> was busybox. Since then we have swapped kernels.
>
>
>
> It seems ( after a quick google search of "igb reset adapter") like a
> common problem in various releases.
>
>
>
> Some examples:
>
> http://www.spinics.net/lists/netdev/msg231442.html
>
> http://serverfault.com/questions/559663/issue-with-intel-i350-nic
>
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1493753
>
> https://sourceforge.net/p/e1000/bugs/395/
>
> http://www.linuxhow.tk/igb-eth0-reset-adapter/
>
>
>
> If fixed in later versions of the driver, I figured that someone here knew
> what was patched.
>
>
>
> I will test unpacking/compiling version 5.1.2 in my kernel tree.
>
>
>
> Regards,
>
>
>
> Mattias
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> On Tue, Apr 5, 2016 at 6:39 PM, Fujinaka, Todd <todd.fujin...@intel.com>
> wrote:
>
> I don't think there's enough information there. I have no idea about what
> your distro is from what you sent, and you'll need to send a whole lot more
> info.
>
> Do you have a factory representative you can go through to get this filed
> with Intel Premier Support? That would probably be the best way to get
> support.
>
> If not, you can file a bug on sourceforge and attach the whole dmesg and
> lspci -vvv as a first step.
>
> Todd Fujinaka
> Software Application Engineer
> Networking Division (ND)
> Intel Corporation
> todd.fujin...@intel.com
> (503) 712-4565
>
>
>
> -----Original Message-----
> From: Mattias Barthel [mailto:mbart...@accedian.com]
> Sent: Tuesday, April 05, 2016 6:58 AM
> To: e1000-devel@lists.sourceforge.net
> Subject: [E1000-devel] igb reset adapter I350
>
> Hello,
>
>
> I am trying to get around the igb reset adapter error.
>
> I am using:
> root@C077-0024:root# uname -a
> Linux C077-0024 3.0.8 #1 SMP Mon Apr 4 09:17:08 EDT 2016 x86_64 GNU/Linux
>
> root@C077-0024:root# ethtool --driver eth1
> driver: igb
> version: 3.0.6-k2
> firmware-version: 0.147-0
>
>
>
> The error is reproduced when setting remote end to down and transmitting
> at the same time. Setup is back-to-back.
>
> [ 8603.660150] igb: eth1 NIC Link is Down [ 8605.824275] igb
> 0000:00:0a.0: eth1: Reset adapter [ 8607.820167] igb 0000:00:0a.0: eth1:
> Reset adapter [ 8609.820164] igb 0000:00:0a.0: eth1: Reset adapter [
> 8611.820192] igb 0000:00:0a.0: eth1: Reset adapter
>
> It goes into a reset loop.
> When remote end comes back up, it continues to loop in reset.
> When limiting the TX the link comes back up.
>
> Is there a known way of getting around this?
> I would prefer not to backport the driver.
>
> --
>
>
> Avis de confidentialité
>
> Les informations contenues dans le présent message et dans toute pièce qui
> lui est jointe sont confidentielles et peuvent être protégées par le secret
> professionnel. Ces informations sont à l’usage exclusif de son ou de ses
> destinataires. Si vous recevez ce message par erreur, veuillez s’il vous
> plait communiquer immédiatement avec l’expéditeur et en détruire tout
> exemplaire. De plus, il vous est strictement interdit de le divulguer, de
> le distribuer ou de le reproduire sans l’autorisation de l’expéditeur.
> Merci.
>
> Confidentiality notice
>
> This e-mail message and any attachment hereto contain confidential
> information which may be privileged and which is intended for the exclusive
> use of its addressee(s). If you receive this message in error, please
> inform sender immediately and destroy any copy thereof. Furthermore, any
> disclosure, distribution or copying of this message and/or any attachment
> hereto without the consent of the sender is strictly prohibited. Thank you.
>
>
>
>
>
>
>
> Avis de confidentialité
>
> Les informations contenues dans le présent message et dans toute pièce qui
> lui est jointe sont confidentielles et peuvent être protégées par le secret
> professionnel. Ces informations sont à l’usage exclusif de son ou de ses
> destinataires. Si vous recevez ce message par erreur, veuillez s’il vous
> plait communiquer immédiatement avec l’expéditeur et en détruire tout
> exemplaire. De plus, il vous est strictement interdit de le divulguer, de
> le distribuer ou de le reproduire sans l’autorisation de l’expéditeur.
> Merci.
>
> Confidentiality notice
>
> This e-mail message and any attachment hereto contain confidential
> information which may be privileged and which is intended for the exclusive
> use of its addressee(s). If you receive this message in error, please
> inform sender immediately and destroy any copy thereof. Furthermore, any
> disclosure, distribution or copying of this message and/or any attachment
> hereto without the consent of the sender is strictly prohibited. Thank you.
>

-- 


Avis de confidentialité

Les informations contenues dans le présent message et dans toute pièce qui 
lui est jointe sont confidentielles et peuvent être protégées par le secret 
professionnel. Ces informations sont à l’usage exclusif de son ou de ses 
destinataires. Si vous recevez ce message par erreur, veuillez s’il vous 
plait communiquer immédiatement avec l’expéditeur et en détruire tout 
exemplaire. De plus, il vous est strictement interdit de le divulguer, de 
le distribuer ou de le reproduire sans l’autorisation de l’expéditeur. 
Merci.

Confidentiality notice

This e-mail message and any attachment hereto contain confidential 
information which may be privileged and which is intended for the exclusive 
use of its addressee(s). If you receive this message in error, please 
inform sender immediately and destroy any copy thereof. Furthermore, any 
disclosure, distribution or copying of this message and/or any attachment 
hereto without the consent of the sender is strictly prohibited. Thank you.
------------------------------------------------------------------------------
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to