CN110928827A - 一种访问PCIe设备的优化的方法和设备 - Google Patents
一种访问PCIe设备的优化的方法和设备 Download PDFInfo
- Publication number
- CN110928827A CN110928827A CN201911198190.1A CN201911198190A CN110928827A CN 110928827 A CN110928827 A CN 110928827A CN 201911198190 A CN201911198190 A CN 201911198190A CN 110928827 A CN110928827 A CN 110928827A
- Authority
- CN
- China
- Prior art keywords
- duration
- current task
- accessing
- pcie
- access
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种访问PCIe设备的优化的方法和设备,该方法包括以下步骤:将访问PCIE设备的超时时间调整为第一阈值;记录当前任务访问PCIE设备的持续时间;响应于持续时间超过二分之一第一阈值,停止记录持续时间并使当前任务重新访问PCIE设备,记录重新访问的第一持续时间;响应于持续时间与第一持续时间的总和大于第一阈值,停止当前任务的访问以让出处理器资源;响应于下一轮次任务处理,使当前任务重新访问PCIE设备,并返回重新记录当前任务访问PCIE设备的持续时间,直到当前任务访问成功。通过使用本发明的方法,能够保证软件任务访问不会超时,进而不会长期占用CPU而影响其他任务的运行。
Description
技术领域
本领域涉及计算机领域,并且更具体地涉及一种访问PCIe设备的优化的方法和设备。
背景技术
PCIE协议提供多种不同类型的访问请求,比如memory read/write(存储器读/写)以及configuration read/write(配置读/写)等,针对memory read请求类型来说,假如目标设备被移除或者设备系统运行异常会导致memory read请求阻塞至PCIE completiontimeout(完成超时),对于时间约束比较强的应用场景,该机制会导致系统软件运行异常、响应延迟,甚至导致系统的崩溃。
发明内容
有鉴于此,本发明实施例的目的在于提出一种访问PCIe设备的优化的方法,能够保证软件任务访问不会超时,进而不会长期占用CPU而影响其他任务的运行。
基于上述目的,本发明的实施例的一个方面提供了一种访问PCIe设备的优化的方法,包括以下步骤:
将访问PCIE设备的超时时间调整为第一阈值;
记录当前任务访问PCIE设备的持续时间;
响应于持续时间超过二分之一第一阈值,停止记录持续时间并使当前任务重新访问PCIE设备,记录重新访问的第一持续时间;
响应于持续时间与第一持续时间的总和大于第一阈值,停止当前任务的访问以让出处理器资源;
响应于进入下一轮次任务处理,使当前任务重新访问PCIE设备,并返回重新记录当前任务访问PCIE设备的持续时间,直到当前任务访问成功。
根据本发明的一个实施例,第一阈值包括50um至50ms。
根据本发明的一个实施例,当前任务访问PCIE设备包括:对PCIE设备进行读操作和写操作。
根据本发明的一个实施例,将访问PCIE设备的超时时间调整为第一阈值包括:系统启动后进入BIOS可视化配置界面时手动将超时时间调整为第一阈值或将第一阈值写入BIOS软件。
根据本发明的一个实施例,停止当前任务的访问包括:使用schedule()函数主动触发任务调度,使当前任务退出运行。
本发明的实施例的另一个方面,还提供了一种访问PCIe设备的优化的设备,其特征在于,设备包括:
至少一个处理器;和
存储器,存储器存储有处理器可运行的程序代码,程序代码在被处理器运行时执行以下步骤:
将访问PCIE设备的超时时间调整为第一阈值;
记录当前任务访问PCIE设备的持续时间;
响应于持续时间超过二分之一第一阈值,停止记录持续时间并使当前任务重新访问PCIE设备,记录重新访问的第一持续时间;
响应于持续时间与第一持续时间的总和大于第一阈值,停止当前任务的访问以让出处理器资源;
响应于进入下一轮次任务处理,使当前任务重新访问PCIE设备,并返回重新记录当前任务访问PCIE设备的持续时间,直到当前任务访问成功。
根据本发明的一个实施例,第一阈值包括50um至50ms。
根据本发明的一个实施例,当前任务访问PCIE设备包括:对PCIE设备进行读操作和写操作。
根据本发明的一个实施例,将访问PCIE设备的超时时间调整为第一阈值包括:系统启动后进入BIOS可视化配置界面时手动将超时时间调整为第一阈值或将第一阈值写入BIOS软件。
根据本发明的一个实施例,停止当前任务的访问包括:使用schedule()函数主动触发任务调度,使当前任务退出运行。
本发明具有以下有益技术效果:本发明实施例提供的访问PCIe设备的优化的方法,通过将访问PCIE设备的超时时间调整为第一阈值;记录当前任务访问PCIE设备的持续时间;响应于持续时间超过二分之一第一阈值,停止记录持续时间并使当前任务重新访问PCIE设备,记录重新访问的第一持续时间;响应于持续时间与第一持续时间的总和大于第一阈值,停止当前任务的访问以让出处理器资源;响应于进入下一轮次任务处理,使当前任务重新访问PCIE设备,并返回重新记录当前任务访问PCIE设备的持续时间,直到当前任务访问成功的技术方案,能够保证软件任务访问不会超时,进而不会长期占用CPU而影响其他任务的运行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据本发明一个实施例的访问PCIe设备的优化的方法的示意性流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
基于上述目的,本发明的实施例的第一个方面,提出了一种访问PCIe设备的优化的方法的一个实施例。图1示出的是该方法的示意性流程图。
如图1中所示,该方法可以包括以下步骤:
S1将访问PCIE设备的超时时间调整为第一阈值,超时时间默认为260ms至910ms,但是访问PCIE设备的时间一般很短,无需等待这么长时间的超时;
S2记录当前任务访问PCIE设备的持续时间,从任务最初开始访问时计时,检查任务访问PCIE设备需要用多少时间,正常情况下时间很短,一般为几微秒;
S3响应于持续时间超过二分之一第一阈值,停止记录持续时间并使当前任务重新访问PCIE设备,记录重新访问的第一持续时间,当访问时间超过了二分之一阈值时说明该任务没有正常的进行访问,需要让该任务进行重试;
S4响应于持续时间与第一持续时间的总和大于第一阈值,停止当前任务的访问以让出处理器资源,总时间大于了第一阈值说明任务访问阻塞,持续访问下去会造成系统崩溃;
S5响应于进入下一轮次任务处理,使当前任务重新访问PCIE设备,并返回重新记录当前任务访问PCIE设备的持续时间,直到当前任务访问成功,下一轮任务处理的过程中跟上面的步骤一样,但是将上面没有完成访问的任务也加入到这轮任务中进行重新访问。
本发明提供了一种时间约束场景下的访问PCIe设备CSR的优化方法,实现了一种处理PCIe设备异常时系统软件访问设备CSR时间较长的方法,为时间约束的软件场景提供一种优化参考,保证了系统软件的正常运行。
通过以上技术方案,能够保证软件任务访问不会超时,进而不会长期占用CPU而影响其他任务的运行。
在本发明的一个优选实施例中,第一阈值包括50um至50ms。将第一阈值调整为50um至50ms包括:a)通过BIOS调整,BIOS可以调整所有root port、非root port的行为及规格配置,系统启动进入BIOS可视化配置界面手动选择配置或者直接固定写入BIOSsoftware两种方式;b)通过设备驱动调整,设备驱动加载后可以直接操作设备配置空间寄存器来调整配置,系统启动后,驱动程序加载,通过驱动程序直接访问设备寄存器然后修改其默认值即可。
在本发明的一个优选实施例中,当前任务访问PCIE设备包括:对PCIE设备进行读操作和写操作。PCIE设备两种memory访问策略,针对read操作而言,为同步操作即需要等待设备返回请求执行结果方可认为完成,否则会一直阻塞;对于write操作而言是非同步操作即写完即可返回,无需等待设备响应。也就是因为read操作这种阻塞特性所以带来了时间的不可控,此专利便主要针对此场景进行优化。
在本发明的一个优选实施例中,将访问PCIE设备的超时时间调整为第一阈值包括:系统启动后进入BIOS可视化配置界面时手动将超时时间调整为第一阈值或将第一阈值写入BIOS软件。
在本发明的一个优选实施例中,停止当前任务的访问包括:使用schedule()函数主动触发任务调度,使当前任务退出运行。针对有多轮循环执行的任务直接break即可。
该方法将访问PCIE设备CSR中嵌入超时约束,每一轮处理均进行timeout check,保证在触发超时前让出处理器资源。这里的超时约束是指软件任务持续运行时间限制,比如某个任务从12点开始执行,若要求1min运行时间约束,那么就需要在任务运行过程中阶段性检查运行时间,在超过1min之前跳出本轮执行,等待下一轮调度,从而保证任务时间的可控,类似于运行一个子任务检查一次之类的实现方式。
通过以上技术方案,能够保证软件任务访问不会超时,进而不会长期占用CPU而影响其他任务的运行。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
此外,根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。
基于上述目的,本发明的实施例的第二个方面,提出了一种访问PCIe设备的优化的设备,其特征在于,设备包括:
至少一个处理器;和
存储器,存储器存储有处理器可运行的程序代码,程序代码在被处理器运行时执行以下步骤:
将访问PCIE设备的超时时间调整为第一阈值;
记录当前任务访问PCIE设备的持续时间;
响应于持续时间超过二分之一第一阈值,停止记录持续时间并使当前任务重新访问PCIE设备,记录重新访问的第一持续时间;
响应于持续时间与第一持续时间的总和大于第一阈值,停止当前任务的访问以让出处理器资源。
响应于进入下一轮次任务处理,使当前任务重新访问PCIE设备,并返回重新记录当前任务访问PCIE设备的持续时间,直到当前任务访问成功。
在本发明的一个优选实施例中,第一阈值包括50um至50ms。
在本发明的一个优选实施例中,当前任务访问PCIE设备包括:对PCIE设备进行读操作和写操作。
在本发明的一个优选实施例中,将访问PCIE设备的超时时间调整为第一阈值包括:系统启动后进入BIOS可视化配置界面时手动将超时时间调整为第一阈值或将第一阈值写入BIOS软件。
在本发明的一个优选实施例中,停止当前任务的访问包括:使用schedule()函数主动触发任务调度,使当前任务退出运行。
通过以上技术方案,能够保证软件任务访问不会超时,进而不会长期占用CPU而影响其他任务的运行。
需要特别指出的是,上述系统的实施例采用了上述方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到上述方法的其他实施例中。
此外,上述方法步骤以及系统单元或模块也可以利用控制器以及用于存储使得控制器实现上述步骤或单元或模块功能的计算机程序的计算机可读存储介质实现。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
上述实施例,特别是任何“优选”实施例是实现的可能示例,并且仅为了清楚地理解本发明的原理而提出。可以在不脱离本文所描述的技术的精神和原理的情况下对上述实施例进行许多变化和修改。所有修改旨在被包括在本公开的范围内并且由所附权利要求保护。
Claims (10)
1.一种访问PCIe设备的优化的方法,其特征在于,包括以下步骤:
将访问所述PCIE设备的超时时间调整为第一阈值;
记录当前任务访问所述PCIE设备的持续时间;
响应于所述持续时间超过二分之一所述第一阈值,停止记录所述持续时间并使所述当前任务重新访问所述PCIE设备,记录所述重新访问的第一持续时间;
响应于所述持续时间与所述第一持续时间的总和大于所述第一阈值,停止所述当前任务的访问以让出处理器资源;
响应于进入下一轮次任务处理,使所述当前任务重新访问所述PCIE设备,并返回重新记录当前任务访问所述PCIE设备的持续时间,直到所述当前任务访问成功。
2.根据权利要求1所述的方法,其特征在于,所述第一阈值包括50um至50ms。
3.根据权利要求1所述的方法,其特征在于,当前任务访问所述PCIE设备包括:对所述PCIE设备进行读操作和写操作。
4.根据权利要求1所述的方法,其特征在于,将访问所述PCIE设备的超时时间调整为第一阈值包括:系统启动后进入BIOS可视化配置界面时手动将超时时间调整为第一阈值或将所述第一阈值写入BIOS软件。
5.根据权利要求1所述的方法,其特征在于,停止所述当前任务的访问包括:使用schedule()函数主动触发任务调度,使所述当前任务退出运行。
6.一种访问PCIe设备的优化的设备,其特征在于,所述设备包括:
至少一个处理器;和
存储器,所述存储器存储有处理器可运行的程序代码,所述程序代码在被处理器运行时执行以下步骤:
将访问所述PCIE设备的超时时间调整为第一阈值;
记录当前任务访问所述PCIE设备的持续时间;
响应于所述持续时间超过二分之一所述第一阈值,停止记录所述持续时间并使所述当前任务重新访问所述PCIE设备,记录所述重新访问的第一持续时间;
响应于所述持续时间与所述第一持续时间的总和大于所述第一阈值,停止所述当前任务的访问以让出处理器资源;
响应于进入下一轮次任务处理,使所述当前任务重新访问所述PCIE设备,并返回重新记录当前任务访问所述PCIE设备的持续时间,直到所述当前任务访问成功。
7.根据权利要求6所述的设备,其特征在于,所述第一阈值包括50um至50ms。
8.根据权利要求6所述的设备,其特征在于,当前任务访问所述PCIE设备包括:对所述PCIE设备进行读操作和写操作。
9.根据权利要求6所述的设备,其特征在于,将访问所述PCIE设备的超时时间调整为第一阈值包括:系统启动后进入BIOS可视化配置界面时手动将超时时间调整为第一阈值或将所述第一阈值写入BIOS软件。
10.根据权利要求6所述的设备,其特征在于,停止所述当前任务的访问包括:使用schedule()函数主动触发任务调度,使所述当前任务退出运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911198190.1A CN110928827B (zh) | 2019-11-29 | 2019-11-29 | 一种访问PCIe设备的优化的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911198190.1A CN110928827B (zh) | 2019-11-29 | 2019-11-29 | 一种访问PCIe设备的优化的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928827A true CN110928827A (zh) | 2020-03-27 |
CN110928827B CN110928827B (zh) | 2021-06-22 |
Family
ID=69847657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911198190.1A Active CN110928827B (zh) | 2019-11-29 | 2019-11-29 | 一种访问PCIe设备的优化的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928827B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114253683A (zh) * | 2021-11-26 | 2022-03-29 | 北京百度网讯科技有限公司 | 任务处理方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102171643A (zh) * | 2008-10-15 | 2011-08-31 | 三菱电机株式会社 | 信息存储装置 |
CN103797469A (zh) * | 2013-05-20 | 2014-05-14 | 华为技术有限公司 | 一种计算机系统、高速外围组件互联端点设备的访问方法和装置 |
US20140258766A1 (en) * | 2013-03-08 | 2014-09-11 | NovaSparks. S.A. | Technique For Sub-Microsecond Latency Measurement Across A Bus |
US20150193360A1 (en) * | 2012-06-16 | 2015-07-09 | Memblaze Technology (Beijing) Co., Ltd. | Method for controlling interruption in data transmission process |
CN107102822A (zh) * | 2017-04-27 | 2017-08-29 | 杭州迪普科技股份有限公司 | 一种数据回写方法及装置 |
CN109407981A (zh) * | 2018-09-28 | 2019-03-01 | 深圳市茁壮网络股份有限公司 | 一种数据处理方法及装置 |
CN109710560A (zh) * | 2018-12-25 | 2019-05-03 | 杭州迪普科技股份有限公司 | 一种cpu与fpga交互确认的方法和装置 |
-
2019
- 2019-11-29 CN CN201911198190.1A patent/CN110928827B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102171643A (zh) * | 2008-10-15 | 2011-08-31 | 三菱电机株式会社 | 信息存储装置 |
US20150193360A1 (en) * | 2012-06-16 | 2015-07-09 | Memblaze Technology (Beijing) Co., Ltd. | Method for controlling interruption in data transmission process |
US20140258766A1 (en) * | 2013-03-08 | 2014-09-11 | NovaSparks. S.A. | Technique For Sub-Microsecond Latency Measurement Across A Bus |
CN103797469A (zh) * | 2013-05-20 | 2014-05-14 | 华为技术有限公司 | 一种计算机系统、高速外围组件互联端点设备的访问方法和装置 |
CN107102822A (zh) * | 2017-04-27 | 2017-08-29 | 杭州迪普科技股份有限公司 | 一种数据回写方法及装置 |
CN109407981A (zh) * | 2018-09-28 | 2019-03-01 | 深圳市茁壮网络股份有限公司 | 一种数据处理方法及装置 |
CN109710560A (zh) * | 2018-12-25 | 2019-05-03 | 杭州迪普科技股份有限公司 | 一种cpu与fpga交互确认的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114253683A (zh) * | 2021-11-26 | 2022-03-29 | 北京百度网讯科技有限公司 | 任务处理方法、装置、电子设备及存储介质 |
CN114253683B (zh) * | 2021-11-26 | 2022-11-01 | 北京百度网讯科技有限公司 | 任务处理方法、装置、电子设备及存储介质 |
US11640319B1 (en) | 2021-11-26 | 2023-05-02 | Beijing Baidu Netcom Science Technology Co., Ltd. | Task processing method and apparatus, electronic device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN110928827B (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9218222B2 (en) | Physical manager of synchronization barrier between multiple processes | |
US9495199B2 (en) | Management of bottlenecks in database systems | |
CN109542645A (zh) | 一种调用服务的方法、装置、电子设备及存储介质 | |
US20070118838A1 (en) | Task execution controller, task execution control method, and program | |
CN110737534A (zh) | 任务的处理方法、装置和服务器 | |
CN108874324B (zh) | 一种访问请求处理方法、装置、设备及可读存储介质 | |
US7076583B2 (en) | Multiprocessor system, shared-memory controlling method, recording medium and data signal embedded in a carrier wave | |
JP4516999B2 (ja) | データ通信制御装置、データ通信制御方法およびそのためのプログラム | |
CN111723058B (zh) | 一种预读数据缓存方法、装置、设备及存储介质 | |
JP2018508886A (ja) | マルチプロセッサシステムにおける揮発性メモリ保守イベントのスケジューリング | |
CN110928827B (zh) | 一种访问PCIe设备的优化的方法和设备 | |
CN114721493B (zh) | 芯片启动方法、计算机设备及可读存储介质 | |
JP2007122663A (ja) | 情報処理方法および情報処理装置 | |
US9135064B2 (en) | Fine grained adaptive throttling of background processes | |
CN115543643A (zh) | 分布式锁的重入执行方法、装置、设备及可读存储介质 | |
US9940128B2 (en) | Conditional access with timeout | |
CN111400087B (zh) | 一种操作系统的控制方法、终端以及存储介质 | |
CN117056054A (zh) | 中断控制方法、中断控制器、计算机设备及存储介质 | |
CN112540933A (zh) | 缓存读写方法、装置及电子设备 | |
CN109491785B (zh) | 内存访问调度方法、装置及设备 | |
JP2002149480A (ja) | 排他制御方法 | |
CN111124622A (zh) | 一种多线程访问临界资源的方法、存储介质及智能终端 | |
CN116431358A (zh) | 一种资源访问方法、装置、电子设备及存储介质 | |
CN107402892B (zh) | 半导体器件及其存储器访问控制方法 | |
JP6729430B2 (ja) | 電子制御装置 |
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 |