CN111444119B - 一种基于内核参数的飞腾平台非易失内存注册方法 - Google Patents

一种基于内核参数的飞腾平台非易失内存注册方法 Download PDF

Info

Publication number
CN111444119B
CN111444119B CN202010216441.0A CN202010216441A CN111444119B CN 111444119 B CN111444119 B CN 111444119B CN 202010216441 A CN202010216441 A CN 202010216441A CN 111444119 B CN111444119 B CN 111444119B
Authority
CN
China
Prior art keywords
nonvolatile memory
platform
kernel
memory
character string
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.)
Active
Application number
CN202010216441.0A
Other languages
English (en)
Other versions
CN111444119A (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.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
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 Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN202010216441.0A priority Critical patent/CN111444119B/zh
Publication of CN111444119A publication Critical patent/CN111444119A/zh
Application granted granted Critical
Publication of CN111444119B publication Critical patent/CN111444119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种基于内核参数的飞腾平台非易失内存注册方法,包括:内核启动时解析固件传递的非易失内存配置参数;比较cmdline字符串中是否包含pmemmap=字符串来判断内核参数中是否有非易失内存的配置字段,如果不包含pmemmap=字符,则结束非易失内存注册;读取pmemmap配置字段内容到字符串变量p中,从p开始到p+offset结束的字符串记为nn,从offset开始到字符串结束的字符串记为ss,表示非易失内存的大小;遍历物理地址空间资源列表,将物理内存地址nn到nn+ss之间的内存从内核的物理内存地址空间中移除;申请并注册非易失内存平台设备。本发明能够方便非易失内存的配置,验证操作系统的非易失内存相关驱动功能,便于调试。

Description

一种基于内核参数的飞腾平台非易失内存注册方法
技术领域
本发明涉及飞腾平台内存注册技术,特别涉及一种基于内核参数的飞腾平台非易失内存注册方法。
背景技术
非易失内存作为一种具有非易失、字节寻址、高速读写特性的新型存储介质,为提高现有飞腾自主可控服务器的存储性能,满足海量数据存储处理的需求提供了新的选择。为了能够在操作系统内正常识别非易失内存,需要将非易失内存的起始地址和空间大小等信息向操作系统进行注册。由于飞腾平台上的固件暂不支持高级配置和电源接口(ACPI,Advanced Configuration and Power Interface)规范中的非易失内存固件接口表(NFIT,NVDIMM Firmware Interface Table)的配置方法,目前只能通过平台设备树文件的方式向操作系统注册非易失内存。在X86平台上提供了基于E820表的注册方式。
目前飞腾操作系统下调试和验证非易失内存驱动及其配套工具只能在具有非易失内存条的平台上开展,对于驱动及上层应用的调试不方便。
平台设备树文件的方式更改非易失内存的起始地址或者空间大小时需要修改设备树文件,然后重新编译成操作系统可识别的文件格式,在实际的操作过程中不够灵活。特别是固件将设备树文件固化在固件中后,用户如果修改设备树文件则需要重新生成固件,然后烧录到主板上,可操作性差。
发明内容
本发明的目的在于提供一种基于内核参数的飞腾平台非易失内存注册方法,用于解决上述现有技术的问题。
本发明一种基于内核参数的飞腾平台非易失内存注册方法,其中,包括:内核启动时解析固件传递的非易失内存配置参数;非易失内存配置参数格式为pmemmap=nn!ss,其中pmemmap为非易失内存的配置参数名称,nn!ss表示字段的内容,比较cmdline字符串中是否包含pmemmap=字符串来判断内核参数中是否有非易失内存的配置字段,如果不包含pmemmap=字符,则结束非易失内存注册;读取pmemmap配置字段内容到字符串变量p中,在变量p中查找字符’!’的偏移地址,记为offset,从p开始到p+offset结束的字符串记为nn,表示非易失内存的起始地址,从offset开始到字符串结束的字符串记为ss,表示非易失内存的大小;遍历物理地址空间资源列表,将物理内存地址nn到nn+ss之间的内存从内核的物理内存地址空间中移除;申请并注册非易失内存平台设备。
根据本发明的基于内核参数的飞腾平台非易失内存注册方法的一实施例,其中,还包括:飞腾平台的服务器上电后,固件加载操作系统内核并引导操作系统。
根据本发明的基于内核参数的飞腾平台非易失内存注册方法的一实施例,其中,通过读取内核的cmdline字符串,检查是否存在非易失内存配置参数,并按照约定的参数格式读取非易失内存的地址和大小信息。
根据本发明的基于内核参数的飞腾平台非易失内存注册方法的一实施例,其中,通过memblock_remove函数将物理内存地址nn到nn+ss之间的内存从内核的物理内存地址空间中移除。
根据本发明的基于内核参数的飞腾平台非易失内存注册方法的一实施例,其中,申请并注册非易失内存平台设备包括:首先向系统分配平台设备资源,平台设备的起始地址为非易失内存起始地址nn,平台设备的大小为非易失内存大小ss,平台设备的类型为非易失内存,通过platform_device_add函数将非易失内存设备挂载到系统的平台设备总线上,使得非易失内存驱动能够正确识别设备。
本发明一种内核参数的飞腾平台非易失内存注册方法,利用系统启动时内核参数传递非易失内存的地址空间信息,然后由操作系统内核完成非易失内存的注册。实现一种与固件无关的非易失内存注册方法,方便非易失内存的配置,且可以用于在服务器上没有物理非易失内存条的情况下使用普通内存模拟非易失内存,验证操作系统的非易失内存相关驱动功能,便于调试。
附图说明
图1为本发明的非易失内存注册方法的处理流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1为本发明的非易失内存注册方法的处理流程图,参考图1所示,本发明的非易失内存注册方法的处理流程包括以下步骤:
步骤1:飞腾平台的服务器上电,固件加载操作系统内核并引导操作系统;
步骤2:内核启动时解析固件传递的非易失内存配置参数。参数解析主要通过读取内核的cmdline字符串,检查是否存在非易失内存配置参数,并按照约定的参数格式读取非易失内存的地址、大小信息。本发明的非易失内存配置参数格式为pmemmap=nn!ss,其中pmemmap为非易失内存的配置参数名称,nn!ss表示字段的内容。解析函数通过比较cmdline字符串中是否包含”pmemmap=”字符串来判断内核参数中是否有非易失内存的配置字段。如果不包含”pmemmap=”字符则跳转到步骤6;
步骤3:读取’pmemmap’配置字段内容到字符串变量p中。在变量p中查找字符’!’的偏移地址,记为offset,从p开始到p+offset结束的字符串记为nn,表示非易失内存的起始地址,从offset开始到字符串结束的字符串记为ss,表示非易失内存的大小;
步骤4:遍历物理地址空间资源列表,通过memblock_remove将物理内存地址nn到nn+ss之间的内存从内核的物理内存地址空间中移除。在X86平台上主要是基于E820表进行物理内存地址空间的初始化,E820表能够对不同的物理地址空间用途进行区分,而且内核启动参数的解析在系统构造E820表之前完成,因此在X86平台上可以通过修改E820表来完成非易失内存物理地址空间的配置。但是在飞腾平台上不支持类似X86平台的E820内存布局表,而且物理内存地址空间的用途划分在启动参数解析之前已经完成,非易失内存启动配置参数对应的地址空间被当作物理内存进行管理,无法在被非易失内存驱动访问,因此需要将其从物理内存空间中移除,以避免非易失内存驱动访问时出现资源被占用的错误。
步骤5:申请并注册非易失内存平台设备。X86平台可以利用E820表自动完成非易失内存注册,在飞腾平台上则需要利用平台设备总线完成非易失内存设备的注册。首先向系统分配平台设备资源,设置平台设备的名称为”memmap_pmem”,平台设备的起始地址为步骤3解析的非易失内存起始地址nn,平台设备的大小为步骤3解析的非易失内存大小ss,平台设备的类型为非易失内存,然后通过platform_device_add将非易失内存设备挂载到系统的平台设备总线上,使得非易失内存驱动能够正确识别设备;
步骤6:非易失内存注册结束。
本发明为飞腾系统用户提供了基于内核参数的非易失内存注册方法,可以在操作系统启动过程中对非易失内存的地址空间进行配置,启动后立即生效,方便灵活。其次将非易失内存内核配置参数表示的地址空间从系统的物理内存空间中移除,能够实现以普通内存模拟非易失内存设备的功能,方便非易失内存驱动调试验证。
与现有技术相比,本发明提出的技术方法不需要对固件进行更改,能够实时生效,更加灵活;在不具有非易失内存的硬件平台上能够将普通内存从内核物理空间中移除,注册成为非易失内存设备,为非易失内存驱动的调试提供验证环境。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (5)

1.一种基于内核参数的飞腾平台非易失内存注册方法,其特征在于,包括:
内核启动时解析固件传递的非易失内存配置参数;
非易失内存配置参数格式为pmemmap=nn!ss,其中pmemmap为非易失内存的配置参数名称,nn!ss表示字段的内容,比较cmdline字符串中是否包含pmemmap=字符串来判断内核参数中是否有非易失内存的配置字段,如果不包含pmemmap=字符,则结束非易失内存注册;
读取pmemmap配置字段内容到字符串变量p中,在变量p中查找字符’!’的偏移地址,记为offset,从p开始到p+offset结束的字符串记为nn,表示非易失内存的起始地址,从offset开始到字符串结束的字符串记为ss,表示非易失内存的大小;
遍历物理地址空间资源列表,将物理内存地址nn到nn+ss之间的内存从内核的物理内存地址空间中移除;
申请并注册非易失内存平台设备。
2.如权利要求1所述的基于内核参数的飞腾平台非易失内存注册方法,其特征在于,还包括:飞腾平台的服务器上电后,固件加载操作系统内核并引导操作系统。
3.如权利要求1所述的基于内核参数的飞腾平台非易失内存注册方法,其特征在于,通过读取内核的cmdline字符串,检查是否存在非易失内存配置参数,并按照约定的参数格式读取非易失内存的地址和大小信息。
4.如权利要求1所述的基于内核参数的飞腾平台非易失内存注册方法,其特征在于,通过memblock_remove函数将物理内存地址nn到nn+ss之间的内存从内核的物理内存地址空间中移除。
5.如权利要求1所述的基于内核参数的飞腾平台非易失内存注册方法,其特征在于,申请并注册非易失内存平台设备包括:向系统分配平台设备资源,平台设备的起始地址为非易失内存起始地址nn,平台设备的大小为非易失内存大小ss,平台设备的类型为非易失内存,通过platform_device_add函数将非易失内存设备挂载到系统的平台设备总线上,使得非易失内存驱动能够正确识别设备。
CN202010216441.0A 2020-03-25 2020-03-25 一种基于内核参数的飞腾平台非易失内存注册方法 Active CN111444119B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010216441.0A CN111444119B (zh) 2020-03-25 2020-03-25 一种基于内核参数的飞腾平台非易失内存注册方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010216441.0A CN111444119B (zh) 2020-03-25 2020-03-25 一种基于内核参数的飞腾平台非易失内存注册方法

Publications (2)

Publication Number Publication Date
CN111444119A CN111444119A (zh) 2020-07-24
CN111444119B true CN111444119B (zh) 2023-06-02

Family

ID=71629493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010216441.0A Active CN111444119B (zh) 2020-03-25 2020-03-25 一种基于内核参数的飞腾平台非易失内存注册方法

Country Status (1)

Country Link
CN (1) CN111444119B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947863B (zh) * 2021-03-25 2024-01-30 北京计算机技术及应用研究所 一种飞腾服务器平台下存储空间合并成的方法
CN113326213B (zh) * 2021-05-24 2023-07-28 北京计算机技术及应用研究所 一种飞腾服务器平台下在驱动程序中实现地址映射的方法
CN113326072B (zh) * 2021-05-24 2023-11-24 北京计算机技术及应用研究所 一种飞腾服务器平台下基于非易失内存的实时监控方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176915A (zh) * 2013-03-28 2013-06-26 华为技术有限公司 一种管理内存的方法及装置
CN105094997A (zh) * 2015-09-10 2015-11-25 重庆邮电大学 一种云计算主机节点间物理内存共享方法和系统
CN108062253A (zh) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 一种内核态与用户态的通信方法、装置及终端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104375841B (zh) * 2014-12-03 2018-04-20 广州广电运通金融电子股份有限公司 一种基于linux系统的CEN/XFS标准的架构以及实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176915A (zh) * 2013-03-28 2013-06-26 华为技术有限公司 一种管理内存的方法及装置
CN105094997A (zh) * 2015-09-10 2015-11-25 重庆邮电大学 一种云计算主机节点间物理内存共享方法和系统
CN108062253A (zh) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 一种内核态与用户态的通信方法、装置及终端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种面向虚拟化云计算平台的内存优化技术;李亚琼;宋莹;黄永兵;;计算机学报(第04期);全文 *

Also Published As

Publication number Publication date
CN111444119A (zh) 2020-07-24

Similar Documents

Publication Publication Date Title
CN111444119B (zh) 一种基于内核参数的飞腾平台非易失内存注册方法
US7552044B2 (en) Simulated storage area network
US20060282653A1 (en) Method for updating frimware of memory card
US20080021693A1 (en) Storage Device Simulator
CN111857840B (zh) 基本输入输出系统bios启动方法及装置
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
CN103150188B (zh) 非x86指令集计算机的x86兼容显卡快速初始化方法
WO2016150098A1 (zh) PCIe设备和PCIe总线的管理方法及装置
CN106789363A (zh) 一种向虚拟机配置网卡的方法及装置
US11841398B2 (en) Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (SSD) device
US7921230B2 (en) USB devices pre-configuration for KVM switch
CN110618822B (zh) 无盘工作站启动阶段预安装网卡驱动的方法
CN114765051A (zh) 内存测试方法及装置、可读存储介质、电子设备
CN105573913B (zh) 一种onu系统中的程序调试方法及系统
CN112231005A (zh) 一种基于uboot管理fpga版本的方法
US11933847B2 (en) Apparatus and system for debugging solid-state disk (SSD) device
US7246038B2 (en) Method, system, and article of manufacture for running diagnostics related to a device
CN116627472A (zh) 高速外围组件设备的固件程序升级方法及服务器
US20220413766A1 (en) Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (ssd) device
CN115617479A (zh) Bios日志存储方法及计算设备
US8595418B2 (en) Memory configuring method, memory controller and memory storage apparatus
US20180032351A1 (en) Information processing method and storage device
US11226775B2 (en) Extracting drive letters for partitions in an offline virtual disk
CN114510375A (zh) 一种Flash芯片数据区域动态共享系统及方法
CN113849269A (zh) 在虚拟机中添加gpu资源的方法及装置

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