一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

Linux内核低速io增效的方法与流程

2023-02-04 10:10:09 来源:中国专利 TAG:

load及cell start命令进行jailhouse初始化并运行iodemo.bin。
12.本发明提供的linux内核低速io增效的方法,可以通过jailhouse工具独立运行i2c程序(iodemo.bin),并通过共享内存的方式与linux进行数据交互,极大的降低了linux的io密集,并增强cpu密集型,使得内核实时性和效率得到提升。
附图说明
13.图1:本发明的linux内核低速io增效的方法实现逻辑框架图。
具体实施方式
14.为了对本发明的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本发明的技术方案及其产生的有益效果。
15.请配合参阅图1所示,为本发明的linux内核低速io增效的方法实现逻辑框架图,本发明通过让让linux系统的低速i2c设备工作在并行且独立运行的cpu上,以提升linux系统实时性,cpu上运行的二进制程序可以通过共享内存与linux进行交互,支持fifo深度配置,支持高级设置,如数据解析,数据组帧等,进而提升了linux的io效率。
16.其中共享内存分为了配置区域,发送区域和接收区域(即发送队列和接收队列)。通过共享内存配置区域定义i2c的传输时序,并配置是否按照时序信息进行数据组帧等,通过这些信息进一步定义发送和接收区域的字节大小。
17.本发明具体通过jailhouse工具实现,使用jailhouse工具对cpu,运行内存,共享内存和低速io设备(i2c)进行硬件隔离,并在分区中运行二进制裸机程序(iodemo.bin),该程序负责对i2c eeprom的实时读写进行轮询,通过共享内存配置还可以实现i2c的传输时序,并通过共享内存的收发队列方式与linux应用(app-io)进行数据交互;linux端则根据共享内存的地址进行相关驱动和应用开发,根据设置的情况对数据进行批量的传输即可。
18.其中jailhouse是西门子公司开源的静态分区工具,使用基于cell的配置进行硬件资源的划分,在jailhouse初始化过程会根据nonrootcell的配置信息对rootcell的资源进行收缩,进而实现了硬件资源的隔离。硬件划分完毕,会在隔离出来的cpu,内存上运行iodemo.bin,该程序读取共享内存配置区域,对i2c设备的传输时序进行了定义,以及是否进行报文组帧进行数据接收,是否需要解析发送队列的数据帧发送字节流,并根据配置区域限制收发队列的深度。
19.具体的实现方法如下:准备一个aarch64环境,安装centos8.4系统。内核启动参数中预留jailhouse固件的内存空间和iodemo.bin 的内存空间。
20.测试环境具体步骤如下:1、安装jailhouse工具静态分区环境搭建,需要机器配置如下:(1)需要硬件支持虚拟化扩展和两个或者两个以上的cpu核心;(2)4.7 的linux内核,对cpu操作的psci支持等。
21.2、cell配置实际分区信息如下:
(1)隔离最后一个cpu;(2)增加iodemo.bin的链接地址空间及映射;(3)增加i2c,共享内存操作空间等。
22.3、linux应用初始化linux运行elf程序app-io,该程序首先会对共享内存配置区域进行初始化,根据i2c设备的实际情况配置i2c传输时序,并决定是基于数据帧还是字节流的共享内存数据收发,以及定义发送队列和接收队列的深度信息并配置清空收发队列。
23.4、iodemo.bin裸机运行通过jailhouse的jailhouse enable ,cell create,cell load,cell start
ꢀ…
命令进行jailhouse初始化并运行iodemo.bin。该程序首先读取共享内存配置区域,对i2c设备的传输时序进行了定义,并根据配置区域限制收发队列的深度,然后进入while(1)

并行且独立的对共享内存队列进行数据收发。
24.5、数据收发iodemo.bin裸机程序并行且独立于linux下app-io应用运行,负责低速的硬件通讯。同时,linux应用定时收发共享内存数据,将共享内存数据进行日志记录即可。
25.本发明可以通过jailhouse工具独立运行i2c程序(iodemo.bin),并通过共享内存的方式与linux进行数据交互,极大的降低了linux的io密集,并增强cpu密集型,使得内核实时性和效率得到提升。
26.虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。


技术特征:
1.一种linux内核低速io增效的方法,其特征在于,包括如下步骤:步骤s1:安装jailhouse工具;步骤s2:进行cell配置,对虚拟化固件的地址,大小和控制台进行设置;步骤s3:初始化linux应用;步骤s4:运行iodemo.bin裸机;步骤s5:进行数据收发,linux应用通过裸机程序iodemo.bin对i2c设备进行数据发送及接收。2.如权利要求1所述的linux内核低速io增效的方法,其特征在于:在安装jailhouse工具时,进行静态分区的环境搭建,对机器进行如下配置:使硬件支持虚拟化扩展和两个或者两个以上的cpu核心,linux内核4.7版本以上,用以支持arm64虚拟化的控制机制,对cpu操作的psci支持,以固件的方式提供电源状态控制接口,用以支持cpu离线操作。3.如权利要求1所述的linux内核低速io增效的方法,其特征在于:所述步骤s2包括:隔离最后一个cpu,增加iodemo.bin的链接地址空间及映射,增加i2c设备及共享内存操作空间,其中,通过linux内核中的cpumask结构确定所隔离的最后一个cpu,最低bit掩码对应的cpu为最后一个cpu。4.如权利要求1所述的linux内核低速io增效的方法,其特征在于:所述步骤s3包括:linux运行elf程序app-io,该程序首先对共享内存配置区域进行初始化,根据i2c设备的实际情况配置i2c传输时序,并决定是基于数据帧还是字节流的共享内存数据收发,以及定义发送队列和接收队列的深度信息并配置清空收发队列。5.如权利要求1所述的linux内核低速io增效的方法,其特征在于:所述步骤s4包括:通过jailhouse的jailhouse enable 、cell create、cell load及cell start命令进行jailhouse初始化并运行iodemo.bin。

技术总结
本发明涉及Linux内核低速io增效的方法,包括如下步骤:安装jailhouse工具;进行cell配置;初始化Linux应用;运行iodemo.bin裸机;进行数据收发。本发明提供的Linux内核低速io增效的方法,可以通过jailhouse工具独立运行i2c程序(iodemo.bin),并通过共享内存的方式与linux进行数据交互,极大的降低了linux的io密集,并增强cpu密集型,使得内核实时性和效率得到提升。到提升。到提升。


技术研发人员:张有泾 高承博 崔彦召 齐璇 战茅
受保护的技术使用者:麒麟软件有限公司
技术研发日:2022.11.01
技术公布日:2023/2/3
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献