适配CXLMesh硬件的全局内存池操作系统内核调度优化方法与流程

摘要: 本发明涉及操作系统内核面向cxlmesh全局内存池的任务与页面联合调度,具体涉及适配cxlmesh硬件的全局内存池操作系统内核调度优化方法。背景技术:1、传统n...
适配CXLMesh硬件的全局内存池操作系统内核调度优化方法与流程

本发明涉及操作系统内核面向cxl mesh全局内存池的任务与页面联合调度,具体涉及适配 cxl mesh 硬件的全局内存池操作系统内核调度优化方法。

背景技术:

1、传统numa调度通常以本地与远端节点距离选择任务位置,并按页面缺失或采样访问执行迁移。cxl mesh中的路径跳数、链路拥塞、地址所有者和故障绕行会动态变化,固定距离表不能反映实际访问代价。

2、仅迁移线程可能使其计算资源不足,仅迁移页面可能产生较高复制和写冻结代价;两种动作由不同内核子系统独立决定时还会出现线程与页面来回迁移。

3、现有内核分层内存调度通常依据页面冷热度、访问延迟或容量水位选择本地内存与cxl内存,线程调度与页面迁移相互独立,可能出现线程和热页反向移动或在阈值附近反复迁移。

4、处理器排队状态、任务页面访问和cxl硬件页映射由不同内核入口采集。若分别执行线程迁移和页面迁移,两个策略可能把任务与其热点页推向相反方向;若在页面部分完成后仍按旧快照提交线程动作,则计算收益和容量预留均会失真。

5、本发明用同一拓扑时期快照建立三方亲和图,并把线程与页面动作放入联合约束选择。页面按独立事务返回实际映射结果,依赖线程动作只在前置页面闭合后提交;异常或部分完成均转为新快照重算。

6、线程放置和页面放置在同一任务—页亲和图中联合选择。硬件拓扑时期决定分层numa距离,读写方向和访问次数决定亲和收益;只有预计节省次数超过以访问下界、路径代价区间和成本上界计算的保守收益及盈亏平衡复用次数且预算允许时才预留动作,完成后的命中率与停顿反馈通过滞回规则限制反复迁移。

技术实现思路

1、本发明要解决cxl池化内存环境中处理器调度与页迁移相互独立造成的反向搬移、旧映射决策和迁移震荡问题,使联合动作以硬件实际时期和保守收益为依据。

2、内核联合调度以同一硬件拓扑时期为处理边界,所述全局内存池调度优化方法包括步骤s101(接收硬件拓扑时期)、s102(构建任务—资源亲和图)、s103(估计动作收益边界)、s104(选择联合调度动作)、s105(预留算力、内存和路径)、s106(按边界分期提交)、s107(执行滞回和预算反馈)。

3、本发明的处理主线为拓扑快照、亲和图、动作收益、联合选择、分期提交和滞回反馈。各采样字段、资源约束及异常回读处理保持如下。

4、由操作系统内核通过cxl硬件驱动读取同一硬件拓扑时期下的全局页所有者、每一全局页的当前映射时期、处理器节点至页所有者的路径代价区间、共享瓶颈标识及可用带宽区间、故障域成员、故障状态和页迁移接口状态,形成只读拓扑时期快照。

5、通过调度器采样入口获取任务在处理器节点上的运行时间和排队时间,并通过页访问采样入口获取任务对全局页的读次数区间、写次数区间、远端停顿和采样质量,按照连续页所有者、访问热度和共享写属性聚合为页区间,建立任务、处理器节点和页区间之间的带权亲和图。

6、针对把任务从当前处理器节点移动至候选处理器节点的线程迁移动作,以及通过硬件页迁移接口把页区间移动至候选内存节点的页面迁移动作,分别根据未来访问次数上下界、迁移前后路径代价区间、处理器排队变化上界和迁移成本上界计算保守收益下界。

7、先固定不可移动任务、锁定页和故障隔离对象,再在处理器可运行容量、目标页框容量、共享瓶颈带宽、任务亲和、故障域隔离和资源组迁移预算约束下,从保持原位置、线程迁移和页面迁移中选择联合动作集合,并禁止同一决策把任务与其高亲和页区间向相反方向移动。

8、把所述联合动作集合的前置关系构造成动作依赖有向图,删除存在依赖环的候选,并对无环依赖图进行拓扑排序。

9、针对所述联合动作集合建立包含预期硬件拓扑时期、各页预期映射时期、资源组、目标处理器容量、目标页框、共享瓶颈预留、预留代次、动作依赖和有效期的预留记录。

10、将每一页区间拆分为携带独立事务标识的逐页迁移请求,记录逐页受理、完成、回退或未知状态,只有作为关联线程动作收益前提的全部页面均返回与各自预期映射时期相符的完成状态时才提交该线程动作,部分页面完成时保留实际完成位图并基于新快照重新求解。

11、当线程迁移能够直接降低访问代价且目标处理器容量预留仍有效时,按所述拓扑顺序提交线程迁移。

12、页位置未知时查询硬件活动映射并禁止依赖动作,页已经迁移而线程迁移失败时释放未使用的处理器预留,以实际页位置形成新快照并重新求解,不假定页面仍在原位置。

13、在动作完成后的观察时期采集实际远端访问、排队时间和迁移耗时,仅当同一方向动作的收益下界在连续预设数量的观察时期超过滞回阈值且资源组剩余预算足够时,允许再次执行自动迁移。

14、进一步地,调度器采样入口为调度周期、上下文切换或性能计数事件中的至少一种,页访问采样入口为页表访问标志扫描、处理器内存访问采样或设备侧页访问计数中的至少一种;采样记录包含任务标识、页区间、采样窗口、硬件拓扑时期和质量区间,采样窗口与动作执行窗口分离,执行期间的访问不回填至生成该动作的样本。

15、进一步地,对任务t与页区间p的亲和边,令路径代价差下界d_tp^-=l_old,tp^--l_new,tp^+;当d_tp^-不小于零时,保守贡献为n_tp^-·d_tp^-,当d_tp^-小于零时,保守贡献为n_tp^+·d_tp^-,其中n_tp^-和n_tp^+分别为未来访问次数下界和上界;线程迁移动作的保守收益下界b_t^-为全部相关页区间的所述保守贡献之和减去上下文迁移成本上界及处理器排队增加上界;页面迁移动作的保守收益下界b_p^-为访问所述页区间的全部任务的所述保守贡献之和减去复制、冻结、缓存失效和写日志回放成本上界;b_t^-或b_p^-不为正时,对应动作不进入自动执行集合,不以max(0,d_tp^-)截去负贡献。

16、进一步地,共享写页区间单独记录写共享节点数和一致性失效成本,并在页面迁移成本中加入所述一致性失效成本;页区间处于固定、写共享密度超过页面迁移接口允许边界或硬件页迁移状态未知时,不选择页面迁移,而重新评估线程迁移或保持原位置。

17、进一步地,内核先按处理器节点标识顺序取得目标处理器容量预留,再按内存节点标识顺序取得目标页框预留和共享瓶颈预留,将预留代次、额度及有效期写入时期化预留表后释放预留锁但保留所述预留记录和资源占用,随后调用可能等待的硬件页迁移接口;页迁移回调只把事务标识、预留代次、硬件拓扑时期、页映射时期和完成状态加入内核工作队列,不在回调中持有运行队列锁等待页面锁;提交依赖线程动作前重新校验处理器预留尚未过期。

18、进一步地,每一资源组保存迁移成本令牌、补充速率、观察时期和反向动作冷却期;动作提交时按成本上界扣减令牌,动作失败或观察收益为负时提高同一页区间反向动作的滞回阈值,硬件拓扑时期变化时立即作废使用旧时期的未提交预留和候选动作。

19、进一步地,所述操作系统内核把页区间分解为逐页请求,并通过硬件页迁移接口为每一请求提交全局页号、目标节点、预留令牌、预期硬件拓扑时期和该页预期映射时期,接收事务标识、受理时生成的候选映射时期以及已受理、已完成、已回退或未知的状态回调;内核分别比较回调硬件拓扑时期与预期硬件拓扑时期、回调活动映射时期与所述候选映射时期,不把二者互相比较;unknown状态将页位置标记为未知并查询硬件活动映射,逐页完成位图未满足关联动作的全成条件时不提交该关联动作;页面复制、写日志、缓存冻结、映射切换和硬件回退由所述操作系统内核之外的池化内存控制硬件完成。

20、与前述方法相对应,本发明还公开一种cxl池化内存的内核联合调度系统,其特征在于,包括cxl硬件驱动、调度器采样器、页访问采样器、任务—页面亲和图存储器、保守收益计算器、约束选择器、动作依赖图处理器、时期化预留表、逐页迁移事务跟踪器、拓扑时期与映射时期校验器、线程迁移接口、硬件页迁移接口、完成回调处理器和资源组滞回控制器,所述各部件被配置为执行权利要求1至7任一项所述的方法。

21、为执行前述处理,本发明还公开一种运行操作系统内核的计算机设备,其特征在于,包括至少一个处理器、连接所述处理器的cxl接口、存储器和存储于所述存储器的内核程序,所述内核程序包括权利要求8所述系统的各功能部件,并在被所述处理器执行时实现权利要求1至7任一项所述的方法。

22、本发明还公开一种非暂态计算机可读存储介质,其上存储有操作系统内核程序,其特征在于,所述操作系统内核程序被处理器执行时实现权利要求1至7任一项所述的方法。

23、任务、处理器和页区间在同一亲和图中计算,联合选择直接禁止高亲和对象反向移动,并将共享瓶颈和故障域纳入同一资源预留。

24、逐页完成状态而非请求返回决定线程动作是否提交;部分完成后依据硬件实际映射重算,配合滞回阈值和迁移预算可减少往返迁移。