ARMv8-A编程指导之big.LITTLE技术(3)

3 big.LITTLE多进程

        对于LINUX内核的big.LITTLE多处理中,对调度器最基本的要求是决定什么时候软件线程运行在LITTLE core或big core。调度器通过比较跟踪的软件线程与负载门限来做上述调度。迁移上限和迁移下限如下图所示:

        当分配给LITTLE core的线程的跟踪负载均值超出迁移上限时,线程可以考虑迁移到big core上。相反当分配给big core的线程的跟踪负载均值低于迁移下限时,线程将考虑迁移到LITTLE core上。在big.LITTLE多处理器中,这些基本规则支配着big和LITTLE core之间进行任务迁移。在cluster中,标准linux调度器负载均衡被应用。这会在一个cluster中多个core中进行负载均衡。

        通过调整基于core的当前频率的跟踪负载度量,可以改进模型。当core以半速运行任务时,任务以全速运行的一半速率来累积跟踪负载。这使big.LITTLE MP和DVFS管理一起和谐工作。

        Big.LITTLE MP使用多个机制来决定什么时候在big和LITTLE core进行迁移。

3.1 Fork迁移

        当fork系统调用被用来创建一个新的软件线程这将起作用。在这点上,显然没有历史负载信息可用。系统默认用big core用于新线程假定轻线程快速迁移到LITTLE core因为wake迁移。

        Fork迁移的好处是不需要增加成本的情况下完成高要求的任务。低密度和持久的线程比如andriod系统服务,将创建时仅被移动到big core,在之后也很快速移到一个合适的LITTLE core。明确要求吞吐量的线程不会被惩罚而被放到LITTLE core。偶尔运行的线程,但倾向于要求性能,将其运行在big cluster更有得,并继续在其上运行。

3.2 Wake迁移

        当一个之前为idle的任务变为准备运行状态时,调度器必须决定那个cluster执行任务。为了在big和LITTLE之间选择,big.LITTLE MP使用任务的跟踪负载历史。通常假定任务会在相同的cluster上唤醒。对于睡眠的任务,负载衡量不会更新。因此,当调度器在唤醒时检查一个任务的负载衡量,在选择一个cluster来执行时,衡量存在任务最后一次执行的值。这个属性意味着经常繁忙的任务倾向于在big core上被唤醒。一个音频播放任务,比如,会周期性的繁忙。但是通常它是一项要求不高的任务,因此整个负载可以适合little core上。任务必须修改行为来修改cluster。

        如果一个任务修改了它的行为,负载衡量超过迁移门限上限或下限,任务可以被分配到一个不同的cluster上。上图描述了这个过程。定义的规则保证了big core通常仅运行在单个密度线程上并一直运行到完成,因此向上迁移仅发生在idle big core。当往下迁移时,规则不适用并多个软件线程被分配到little core上。

3.3 强制迁移

        强制迁移用于处理一些不睡眠的或不经常睡眠的软件的问题。调度器周期性的检查每个LITTLE core上当前运行的线程。如果跟踪负载超过了任务转化到big core的迁移上限,如图所示。

 3.4 idle pull migration

        Idle pull migration设计用于充分利用有效big core。当一个big core没有任务跑时,检查所有LITTLE core来看是否一个当前运行的任务可以运行在更高负载衡量的LITTLE core上而不是迁移上限。这种任务可以直接迁移到idle big core。如果没有合适的任务,big core可以被下电。这个技术保证big core运行时,通常使用系统中最高密度的任务并一直运行到完成。

3.5 offload迁移

        offload迁移要求正常的调度器负载均衡禁用。这样做的缺点是,长期运行的线程可以集中在big core上,让LITTLE core空闲或不适用。整个系统的性能在这种情况下可以通过使用所有的core而被改善。

        offload迁移用于周期性的将线程往下迁移到LITTLE core来充分利用不使用的计算容量。如果他们超过在下一次调度的门限,向下迁移的线程仍可能进行向上迁移。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值