CN113900849A - 一种Linux操作系统下GMAC网卡故障解决方法 - Google Patents

一种Linux操作系统下GMAC网卡故障解决方法 Download PDF

Info

Publication number
CN113900849A
CN113900849A CN202111234450.3A CN202111234450A CN113900849A CN 113900849 A CN113900849 A CN 113900849A CN 202111234450 A CN202111234450 A CN 202111234450A CN 113900849 A CN113900849 A CN 113900849A
Authority
CN
China
Prior art keywords
state
phy
mac
gmac
link
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111234450.3A
Other languages
English (en)
Other versions
CN113900849B (zh
Inventor
王栋
谭一鸣
崔蕾蕾
孙艺臻
唐甜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kirin Software Co Ltd
Original Assignee
Kirin Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202111234450.3A priority Critical patent/CN113900849B/zh
Publication of CN113900849A publication Critical patent/CN113900849A/zh
Application granted granted Critical
Publication of CN113900849B publication Critical patent/CN113900849B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种Linux操作系统下GMAC网卡故障解决方法,在读PHY状态过程中,读取MAC状态,可以确保PHY和MAC同时处于1000/Full的状态,即可确保ping无异常,能够解决开机过程中遇到的开机偶发ping不通异常现象,即在ping异常且提示“没有可用的缓冲区空间”。

Description

一种Linux操作系统下GMAC网卡故障解决方法
技术领域
本申请涉及网卡故障解决方案技术领域,尤其涉及Linux操作系统下GMAC网卡故障解决方法。
背景技术
当今时代,没有网络是不可想象的。网卡作为现代计算机系统中最重要的输出设备之一,网卡出现异常直接导致计算机无法联网。因此对于需要连接局域网或互联网的设备,网络出现异常是属于急需解决的故障。龙芯GMAC网卡(PID/VID=0x0014/0x7a03)作为龙芯3A4000+7a1000台式机主板自带国产网卡,在国产中标麒麟操作系统下得到广泛应用。近几年,由于国际贸易摩擦,由此引发的国家科技之争,给WTO规则之下的世界分工带了巨大冲击,导致在更大范围的国产替代似乎已经成为政府、市场以及公众的共识。目前,国产GMAC网卡在开机时,偶尔会出现ping不通异常现象,即在ping异常且提示“没有可用的缓冲区空间”,引发网卡故障。
发明内容
本申请提供一种Linux操作系统下GMAC网卡故障解决方法,能够解决开机过程中遇到的开机偶发ping不通异常现象。
有鉴于此,本申请提供了一种Linux操作系统下GMAC网卡故障解决方法,包括以下步骤:
步骤1、初始化MAC状态时打开RGMII中断;
步骤2、在网卡驱动中注册软中断stmmac_interrupt时,若接收到RGMII中断,则调用phy_mac_interrupt触发状态机,实时监测PHY与MAC之间的链路状态并将链路状态同步至状态机。
其中,所述调用phy_mac_interrupt触发状态机,实时监测PHY与MAC之间的链路状态并将链路状态同步至状态机包括:
调用phy_mac_interrupt函数执行状态机,在phy_mac_interrupt调用中,读取SGMII/RGMII状态寄存器GMAC_S_R_GMII的值,根据SGMII/RGMII状态寄存器GMAC_S_R_GMII的值得到MAC和PHY之间的链路状态,将MAC和PHY之间的链路状态放入工作队列,使PHY状态和MAC状态同步。
其中,打开RGMII中断的方法为向中断掩码寄存器写入值0x207,对应二进制100000 0111。
其中,所述PHY与MAC之间的链路状态包括10/Half、Link Down和1000/Full。
其中,当检测到PHY与MAC之间的链路状态为10/Half时,状态机进入PHY_UP状态;当检测到PHY与MAC之间的链路状态为Link Down时,状态机进入PHY_NOLINK状态;当检测到PHY与MAC之间的链路状态为1000/Full时,状态机进入PHY_CHANGELINK状态。
从以上技术方案可以看出,本申请具有以下优点:
本发明的一种Linux操作系统下GMAC网卡故障解决方法,在读PHY状态过程中读取MAC状态,可以确保PHY和MAC同时处于1000/Full的状态,即可确保ping无异常,能够解决开机过程中遇到的开机偶发ping不通异常现象,即在ping异常且提示“没有可用的缓冲区空间”。
附图说明
为了更清楚地表达说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为未使用实施例方案前状态机的变化示意图;
图2为使用实施例方案后状态机的变化示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例的一种Linux操作系统下GMAC网卡故障解决方法,包括以下步骤:
步骤1、初始化MAC状态时打开RGMII(Reduced Gigabit Media IndependantInterface,精简的千兆介质无关接口)中断。RGMII全称为Reduced Gigabit MediaIndependant Interface,中文名称为精简的千兆介质无关接口,RGMII中断属于GMAC中断状态寄存器保存的一种中断状态,与MAC与PHY之间的链路相关。
步骤2、在网卡驱动中注册软中断stmmac_interrupt时,若接收到RGMII中断,则调用phy_mac_interrupt触发状态机,实时监测PHY与MAC之间的链路状态并将链路状态同步至状态机。
下面结合实际调试过程详细介绍本申请方案。
参见图1,在不使用本申请实施例解决方法之前,开机时网口状态机变化过程为:PHY_UP--PHY_AN--PHY_NOLINK--PHY_RUNNING。
实际调试过程:开始状态机默认处于PHY_READY,当open网卡,由PHY_READY状态进入PHY_UP状态,此后自动进入PHY_AN自动协商状态,此时读取MII_BMSR基本模式状态寄存器值判断phydev->link=0,进入PHY_NOLINK状态,此后三次读取MII_BMSR模式状态寄存器值均为0,第四次读取时phydev->link=1,打印PHY状态为”Link is Up-1000/Full”,并进入PHY_RUNNING状态;
在此后某个时间触发stmmac_interrupt中断,读取GMAC_INT_STATUS中断状态寄存器值(0x1),其次读取SGMII/RGMII状态寄存器GMAC_S_R_GMII值(0xd),设pcs_link=1,即MAC状态为“Link is Up-1000/Full”。
即原方案为先读取PHY的状态,再读取MAC状态。经多次测试,PHY为Up的情况下,当触发中断读取SGMII/RGMII状态寄存器时,MAC的状态一般为Up,但实际情况是MAC状态会有一个Up-Down-Up的过程(千兆MAC或万兆MAC不会一上电就直接到一千兆或者一万兆速度,都有有一个从低速到高速的过程,且在这种转换过程中通过链路状态寄存器读取到的值为0,外在表现是MAC处于DOWN状态),当PHY处于UP,MAC处于DOWN时就会导致ping异常。
参见图2,在使用本申请实施例方案后,网口状态机变化过程:PHY_UP--PHY_AN--PHY_NOLINK--PHY_CHANGELINK--PHY_RUNNING。
实际调试过程:网卡DMA发送完数据后第一次触发stmmac_interrupt中断,读取中断状态寄存器GMAC_INT_STATUS值(0x1,触发phy_mac_interrupt)。其次,读取SGMII/RGMII状态寄存器GMAC_S_R_GMII值为0x8,读取MII_BMSR基本模式状态寄存器值判断phydev->link=1,speed_value=0,此时链路状态为10/Half;在phy_mac_interrupt调用中,phydev->link=1,放入工作队列,此时状态机Phy状态为PHY_UP。
网卡DMA发送完数据后第二次触发stmmac_interrupt中断,读取中断状态寄存器GMAC_INT_STATUS值(0x1,触发phy_mac_interrupt),其次,读取SGMII/RGMII状态寄存器GMAC_S_R_GMII值为0,读取MII_BMSR基本模式状态寄存器值判断phydev->link=0,链路进入Link Down。在phy_mac_interrupt调用中,phy->link=0,放入工作队列,此时状态机Phy状态为PHY_AN,进入自动协商状态,phy->link=0,状态先切换为PHY_NOLINK,并调节链路速度。
网卡DMA发送完数据后第三次触发stmmac_interrupt中断,读取中断状态寄存器GMAC_INT_STATUS值(0x1,触发phy_mac_interrupt),其次,读取SGMII/RGMII状态寄存器GMAC_S_R_GMII值为0xd,读取MII_BMSR基本模式状态寄存器值判断phydev->link=1,链路设为1000/Full。当phy->link由0变为1时,状态机进入CHANGELINK,读取MII_BMSR基本模式状态寄存器值判断phydev->link=1,将状态设为PHY_RUNNING,并调节链路速度,此后状态机状态一直为PHY_RUNNING状态。
由于MAC状态有一个从10/Half到Link Down(读取的链路状态寄存器值为0)再到1000/Full的过程,本方案中在读PHY状态过程中读取MAC状态,即先读取SGMII/RGMII状态寄存器GMAC_S_R_GMII值,保证PHY处于1000/Full状态时MAC已经处于1000/Full状态,从而可以确保PHY和MAC同时处于1000/Full的状态,确保ping无异常。在应用本申请方案后,经上百次测试,偶发ping故障问题不再出现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述方法实施例中的对应过程,可以参考前述系统实施例中的具体工作过程,作用和效果也相同,在此不再赘述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (5)

1.一种Linux操作系统下GMAC网卡故障解决方法,其特征在于,包括以下步骤:
步骤1、初始化MAC状态时打开RGMII中断;
步骤2、在网卡驱动中注册软中断stmmac_interrupt时,若接收到RGMII中断,则调用phy_mac_interrupt触发状态机,实时监测PHY与MAC之间的链路状态并将链路状态同步至状态机。
2.根据权利要求1所述的Linux操作系统下GMAC网卡故障解决方法,其特征在于,所述调用phy_mac_interrupt触发状态机,实时监测PHY与MAC之间的链路状态并将链路状态同步至状态机包括:
调用phy_mac_interrupt函数执行状态机,在phy_mac_interrupt调用中,读取SGMII/RGMII状态寄存器GMAC_S_R_GMII的值,根据SGMII/RGMII状态寄存器GMAC_S_R_GMII的值得到MAC和PHY之间的链路状态,将MAC和PHY之间的链路状态放入工作队列,使PHY状态和MAC状态同步。
3.根据权利要求1所述的Linux操作系统下GMAC网卡故障解决方法,其特征在于,打开RGMII中断的方法为向中断掩码寄存器写入值0x207,对应二进制10 0000 0111。
4.根据权利要求1所述的Linux操作系统下GMAC网卡故障解决方法,其特征在于,所述PHY与MAC之间的链路状态包括10/Half、Link Down和1000/Full。
5.根据权利要求4所述的Linux操作系统下GMAC网卡故障解决方法,其特征在于,当检测到PHY与MAC之间的链路状态为10/Half时,状态机进入PHY_UP状态;当检测到PHY与MAC之间的链路状态为Link Down时,状态机进入PHY_NOLINK状态;当检测到PHY与MAC之间的链路状态为1000/Full时,状态机进入PHY_CHANGELINK状态。
CN202111234450.3A 2021-10-22 2021-10-22 一种Linux操作系统下GMAC网卡故障解决方法 Active CN113900849B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111234450.3A CN113900849B (zh) 2021-10-22 2021-10-22 一种Linux操作系统下GMAC网卡故障解决方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111234450.3A CN113900849B (zh) 2021-10-22 2021-10-22 一种Linux操作系统下GMAC网卡故障解决方法

Publications (2)

Publication Number Publication Date
CN113900849A true CN113900849A (zh) 2022-01-07
CN113900849B CN113900849B (zh) 2023-06-27

Family

ID=79026030

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111234450.3A Active CN113900849B (zh) 2021-10-22 2021-10-22 一种Linux操作系统下GMAC网卡故障解决方法

Country Status (1)

Country Link
CN (1) CN113900849B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6065073A (en) * 1998-08-17 2000-05-16 Jato Technologies, Inc. Auto-polling unit for interrupt generation in a network interface device
CN102064964A (zh) * 2010-12-13 2011-05-18 中国人民解放军国防科学技术大学 一种千兆交换环境下千兆网卡的快速切换方法
US20120170591A1 (en) * 2010-12-30 2012-07-05 Broadcom Corporation Advanced and Dynamic Physical Layer Device Capabilities Utilizing a Link Interruption Signal
CN108173756A (zh) * 2017-12-18 2018-06-15 天津津航计算技术研究所 一种双冗余以太网mac状态健康管理方法
CN108632084A (zh) * 2018-03-30 2018-10-09 天津麒麟信息技术有限公司 一种基于飞腾处理器内置gmac网络控制器的网口状态更新方法
CN110535715A (zh) * 2018-05-25 2019-12-03 北京东土科技股份有限公司 基于Linux的端口状态实时检测方法、电路和交换机
CN113348633A (zh) * 2019-02-01 2021-09-03 联想(新加坡)私人有限公司 侧链故障检测和恢复

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6065073A (en) * 1998-08-17 2000-05-16 Jato Technologies, Inc. Auto-polling unit for interrupt generation in a network interface device
CN102064964A (zh) * 2010-12-13 2011-05-18 中国人民解放军国防科学技术大学 一种千兆交换环境下千兆网卡的快速切换方法
US20120170591A1 (en) * 2010-12-30 2012-07-05 Broadcom Corporation Advanced and Dynamic Physical Layer Device Capabilities Utilizing a Link Interruption Signal
CN108173756A (zh) * 2017-12-18 2018-06-15 天津津航计算技术研究所 一种双冗余以太网mac状态健康管理方法
CN108632084A (zh) * 2018-03-30 2018-10-09 天津麒麟信息技术有限公司 一种基于飞腾处理器内置gmac网络控制器的网口状态更新方法
CN110535715A (zh) * 2018-05-25 2019-12-03 北京东土科技股份有限公司 基于Linux的端口状态实时检测方法、电路和交换机
CN113348633A (zh) * 2019-02-01 2021-09-03 联想(新加坡)私人有限公司 侧链故障检测和恢复

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FIREFLYCJD: "PHY寄存器", Retrieved from the Internet <URL:https://www.cnblogs.com/Fireflycjd/p/14650413.html> *
JERRY_CHG: "Linux Mii management/mdio子系统分析之五 PHY状态机分析及其与net_device的关联", Retrieved from the Internet <URL:https://blog.csdn.net/lickylin/article/details/104718409/> *
大不列颠小小咸鱼: "MAC/PHY传输协议", Retrieved from the Internet <URL:https://blog.csdn.net/weixin_40877615/article/details/94208978> *

Also Published As

Publication number Publication date
CN113900849B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
AU2014399227B2 (en) Fault Processing Method, Related Apparatus and Computer
CN110471831B (zh) 一种兼容测试的自动化方法及装置
CN107678994B (zh) PCIe设备热拔方法及装置
CN105589772A (zh) 检测fpga芯片逻辑挂死的方法和装置
EP1640865A2 (en) Process management system
CN112965908A (zh) 通信测试方法、装置、通信设备及存储介质
CN104734904B (zh) 旁路设备的自动测试方法及系统
CN106559288A (zh) 一种基于icmp报文的快速故障检测方法
JP2003122599A (ja) 計算機システムおよび計算機システムにおけるプログラム実行監視方法
EP2980697B1 (en) System and method for altering a functionality of an application
US6499113B1 (en) Method and apparatus for extracting first failure and attendant operating information from computer system devices
CN113900849A (zh) 一种Linux操作系统下GMAC网卡故障解决方法
CN101136756B (zh) 网络远程控制主机上电自检的方法、系统和bmc芯片
CN101989936B (zh) 单板故障的测试方法及系统
CN116137603A (zh) 链路故障的检测方法和装置、存储介质及电子装置
CN108984377B (zh) 一种统计bios登录日志的方法、系统及介质
CN115373916A (zh) 异常检测方法、装置、电子设备及计算机可读存储介质
CN112148537A (zh) 总线监控装置及方法、存储介质、电子装置
Cisco Troubleshooting and Fault Management
Cisco Troubleshooting the Router
Cisco Troubleshooting the Router
CN111857689A (zh) 一种框架、框架的功能配置方法、终端及存储介质
CN111966599A (zh) 一种虚拟化平台可靠性测试方法、系统、终端及存储介质
CN111752736A (zh) 一种Linux系统宕机信息的远程收集方法及系统
CN112114992B (zh) 一种i2c防挂死设计方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant