Tegra3 vSMP架构Android运行时CPU热插拔及高低功耗CPU切换
Tegra3采用vSMP(VariableSymmetric Multiprocessing)架构,共5个cortex-a9处理器,其中4个为高性能设计,1个为低功耗设计:
在系统运行过程中,会根据CPU负载切换低功耗处理器和高功耗处理器:
除此之外,4个高性能ARM核心也会根据运行情况,动态借用Linux kernel支持的CPU hotplug进行CPU的UP/DOWN操作。
动态切换主处理器和Companion 处理器借用的是软硬件配套的CPU Governor 和 CPU Management Logic。
我们用华硕EeePad运行高负载,低负载应用,通过dmesg查看内核消息也确实验证了多核的热插拔以及主ARM和LP ARM之间的动态切换。
CPU hotplug记录:
<4>[104626.426957] CPU1: Booted secondary processor
<7>[104627.427412] tegra CPU: force EDP limit 720000 kHz
<4>[104627.427670] CPU2: Booted secondary processor
<4>[104628.537005] stop_machine_cpu_stop cpu=0
<4>[104628.537017] stop_machine_cpu_stop cpu=2
<4>[104628.537059] stop_machine_cpu_stop cpu=1
<4>[104628.537702] __stop_cpus: wait_for_completion_timeout+
<4>[104628.537810] __stop_cpus: smp=0 done.executed=1 done.ret =0-
<5>[104628.537960] CPU1: clean shutdown
<4>[104630.537092] stop_machine_cpu_stop cpu=0
<4>[104630.537172] stop_machine_cpu_stop cpu=2
<4>[104630.537739] __stop_cpus: wait_for_completion_timeout+
<4>[104630.538060] __stop_cpus: smp=0 done.executed=1 done.ret =0-
<5>[104630.538203] CPU2: clean shutdown
<4>[104631.306984] tegra_watchdog_touch
高性能处理器和低功耗处理器切换:
<3>[104666.799152] LP=>G: prolog 22 us, switch 2129 us, epilog 24 us, total 2175 us
<3>[104667.807273] G=>LP: prolog 18 us, switch 157 us, epilog 25 us, total 200 us
<4>[104671.407008] tegra_watchdog_touch
<4>[104671.408816] nct1008_get_temp: ret temp=35C
<3>[104671.939060] LP=>G: prolog 17 us, switch 2127 us, epilog 22 us, total 2166 us
<3>[104672.938091] G=>LP: prolog 18 us, switch 156 us, epilog 24 us, total 198 us
Tegra3 vSMP架构Android运行时CPU热插拔及高低功耗CPU切换相关推荐
- android运行时ART加载OAT文件解析
在前面一文中,我们介绍了Android运行时ART,它的核心是OAT文件.OAT文件是一种Android私有ELF文件格式,它不仅包含有从DEX文件翻译而来的本地机器指令,还包含有原来的DEX文件内容 ...
- Android运行时Crash自动恢复框架-Recovery
转自:http://zhengxiaoyong.me/2016/09/05/Android%E8%BF%90%E8%A1%8C%E6%97%B6Crash%E8%87%AA%E5%8A%A8%E6%8 ...
- 好牛逼的技术——Android运行时Crash自动恢复框架:Recovery
简介 App Crash的恢复,这个想法很早之前就有,目前有些时间就实现了一把,主要是对App运行时发生Crash后,对Activity的堆栈和数据进行恢复,或者重启应用,或者重启并清空缓存,避免因本 ...
- Android运行时Crash自动恢复框架:Recovery
App Crash的恢复,这个想法很早之前就有,目前有些时间就实现了一把,主要是对App运行时发生Crash后,对Activity的堆栈和数据进行恢复,或者重启应用,或者重启并清空缓存,避免因本地的数 ...
- C++ Builder运行时在FireMonkey里使用TLang动态切换界面语言
C++ Builder的FireMonkey框架支持在运行时使用TLang动态切换界面的语言 // 以下Text将动态切换语言 Button1->Text = "Button" ...
- android五层系统架构,Android系统的五层架构、Dalvik与ART、最后有个奇怪的问题请教orz...
Android系统的五层架构 最开始的Android系统框架分为5层(内核层.硬件抽象层.系统运行库层.应用程序框架层.应用程序层) 后来维基百科上搜索到的Android系统框架图为上图,少了一个硬件 ...
- android五层系统架构,Android 系统架构
Android 系统架构分为五层,从上到下依次是:应用层.应用框架层.系统运行库层.硬件抽象层.Linux内核层 1. 应用层(SystemApps) 这层主要是JAVA开发的,负责与用户交互 2.应 ...
- ART运行时Foreground GC和Background GC切换过程分析
通过前面一系列文章的学习,我们知道了ART运行时既支持Mark-Sweep GC,又支持Compacting GC.其中,Mark-Sweep GC执行效率更高,但是存在内存碎片问题:而Compact ...
- android cpu hotplug,[MTK] [CPU DVFS/Hotplug]运行时,把CPU固定在特定频率/特定核数的办法...
[MTK] [CPU DVFS/Hotplug]运行时,把CPU固定在特定频率/特定核数的办法 2020-06-19 阅读:2580 [通过以下sysfs操作就可以把CPU固定在特定的频率上] ech ...
最新文章
- strcpy函数的使用
- 通用四级联动下拉列表
- 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”...
- (五)LESS 规范
- 调用支付jsapi缺少参数package_iOS微信支付(Swift)
- 买电脑主要看什么配置_买笔记本电脑主要看什么? 配置要什么样的才算好?...
- 创建django项目,8月版本
- ant design table column 设置width不生效解决方案
- oracle数据库生成流水号,oracle 中生成流水号 步骤
- 去除win10桌面图标快捷方式小箭头
- Layui form 表单验证lay-verify
- 《指数基金定投指南》读书笔记
- 通过Adb无需ROOT卸载手机内置APP
- 项目经理成功的五个关键因素
- 检查图片是否空白图片
- 云原生(三十三) | Kubernetes篇之平台存储系统部署
- python中init和属性_python类的属性不在\uyu init中__
- Python中print(__doc__)作用的教程
- PC站跳转M站的方法
- 计算机无法选择管理,此电脑右键“管理”无法打开怎么办?