当前位置: 首页 > news >正文

Xen-cpu@100->cpu@1:Failed to bring up CPU 1 (error -2)

问题描述:

        在使用mtk2715平台的原生态的dts中cpu@100\reg=0x100,这种格式会造成一个Xen可以启动8个cpu,但dom0的kernel只能启动一个的情况如果修改成cpu@0_0的格式,则是Xen无法启动cpu,在浏览Xen源码时有创建cpu节点的操作,并且处理节点的时候会默认跳过cpu节点的处理,Xen自行创建cpu节点信息

问题解决及其原因分析: 

        将dts中cpu节点的格式由cpu@100__100修改成cpu@1_1的格式,其他1-7个cpu节点格式同步。

        将Xen中处理cpu节点默认跳过的操作关闭 --接口:handle_node

        重新编译刷机就会出现问题描述中Xen的cpu启动失败,dom0的kernel虽然失败,但能正常读取到8cpus

        结合日志和Xen的源码追踪,Xen启动cpu的条件依赖于设备树中的reg参数,可以理解为cpu编号,找到Xen通过dts获取cpu编号的接口,并在关键数组赋值将其左移8位即可(dts原生态的cpu编号:cpu@100/reg=0x100)

 static void __init dt_smp_init_cpus(void):

   fixbug之后的日志呈现:

        

        总结: Xen启动cpu必须使用物理cpu的编号,但是dom0的cpu是虚拟cpu。例如cpu@100的编号是256,这个只能用于物理cpu,虚拟cpu的编号应该是1,根据这个结论去灵活修改Xen的源码(如果修改dom0的kernel可能无效,这边尝试从dts读出来的256右移8位,crash依然存在)

相关文章:

  • Warm-Flow过去、现在和未来都不会有商业版
  • 搭建FTP环境且通过Kali Linux破解FTP用户名密码例子
  • 双指针---《复写零》
  • 使用keepalived结合tomcat和nginx搭建三主热备架构
  • 【零基础学python】python高级语法(四)
  • Java 大视界 -- Java 大数据在智能政务数字身份认证与数据安全共享中的应用(156)
  • Flutter TabBar 右侧渐变遮罩实现中的事件处理问题
  • LeetCode热题100|128.最长连续序列,283.移动零
  • unity 做一个圆形分比图
  • RAG技术的进化:RQ-RAG查询优化/化繁为简Adaptive-RAG智能分类/精准出击
  • 力扣HOT100之普通数组:189. 轮转数组
  • 算法250327题目
  • C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷五)
  • 如何快速对比两个不同的excel文件中的单元格的数据是否完全相同 并把不同的单元格的背景颜色更改为红色?
  • MySQL索引优化与应用指南
  • 【电子通识】铅笔硬度简史:从石墨到工业标准
  • 香港QILSTE/旗光 H6-108QLB高亮LED灯珠
  • AnimateCC技术教学:使用后台JavaScript修改ballObj实例的填充色为径向渐变色-由DeepSeek产生
  • 【踩坑系列】使用httpclient调用第三方接口返回javax.net.ssl.SSLHandshakeException异常
  • 【位运算】268. 丢失的数字
  • 进入网站前如何做环境检测/网站排名点击工具
  • 网络营销培训课程/关键词优化难度分析
  • 织梦个人网站模板/在线磁力搜索神器
  • 哪个公司做网站好 知乎/百度搜索的优势
  • 哪个网站可以做批发/什么是外链
  • 个体户能否从事网站建设/国内b站不收费网站有哪些