导航:首页 > 源码编译 > qemu启动编译的内核出现卡顿

qemu启动编译的内核出现卡顿

发布时间:2024-08-27 22:36:27

① 实例演示 | 用Kmp分析内核崩溃原因

本文将通过实例展示如何在linux系统中利用kmp分析内核崩溃的原因,以aarch64架构的4.19内核为例。


kmp服务与内核崩溃转储


kmp是Linux内核中一个基于kexec的高级崩溃转储机制,当系统发生内核崩溃时,它会捕获内存状态并保存为vmcore文件。通过kernel command line参数crashkernel指定预留内存大小,可通过cat /proc/meminfo检查预留情况。


启用kmp服务

首先,确保安装了kexec-tools,可通过RPM包管理器安装。启动kmp服务并检查其状态,然后通过发送sysrq-trigger信号触发内核崩溃,系统会自动重启并在/var/crash目录生成coremp文件。


qemu中使用kmp

在qemu中模拟内核崩溃,通过设置panic选项和使用mp-guest-memory命令,可以生成coremp文件。接着,可以利用crash工具对vmcore文件进行分析,确保crash工具版本与内核版本匹配。


crash工具分析vmcore


内核崩溃后,分析crash转储文件,首先需要使用crash工具与对应的vmlinux文件结合。通过编译并安装arm64版本的crash工具,执行crash命令进行深度分析,定位问题具体代码位置。


内核panic实例

以内核访问空指针导致的panic为例,通过编写驱动模块并插入内核,我们可以看到call trace。反汇编代码和crash分析可以帮助我们确认是哪个分支出错,如head成员的值指向0导致的崩溃。


总结,kmp和crash工具是强大的内核崩溃分析工具,通过实际操作和分析,我们可以更有效地诊断和修复内核崩溃问题。

② virtualbox里的linux在启动的时候提示说memory for crash kernel(0*0 to 0*0)notwithin permissible range

解决办法:
这个信息由于没有配置kmp服务的原因,并没有什么危害可以忽略。
kmp是一个新的,而且非常可信赖的内核崩溃转储机制。崩溃转储数据可以从一个新启动的内核的上下文中获取,而不是从已经崩溃的内核的上下文。当系统崩溃时,kmp使用kexec启动到第二个内核。第二个内核通常叫做捕获内核(capture kernel),以很小内存启动,并且捕获转储镜像。

方法一,在图形模式下配置:
我们可以采用下面的图形界面进行配置和启用,步骤如下:
----配置kmp。
选择菜单“Applications”——“system tools”——“kmp”,弹出“Kernel Dump Configuration”窗口,选中Enable kmp,设置New kmp Memory(MB): 128MB(推荐大小)
----重新启动系统。

方法二: 编辑/etc/grub.conf,在内核行的末尾添加 crashkernel=128@16M。
举例:
kernel /boot/vmlinuz-2.6.17-1.2519.4.21.el5 ro root=LABEL=/ rhgb quiet crashkernel=128M@16M
修改之后,重启系统。128M内存(从16M开始)不被正常的系统使用,为捕获内核保留。
现在,保留内存已经设置了,打开kmp初始脚本,启动服务:
# chkconfig kmp on
# service kmp start

试试以上的方法,不行的话,再跟问!!!

③ KVM、QEMU和KQemu有什么区别

1、KVM是一套虚拟机管理系统,包括内核虚拟构架和处理器相关模块,其借用了 QEMU其它一些组件,KVM的非内核部分是由QEMU实现的;加载了模块后,才能进一步通过其他工具创建虚拟机。

2、QEMU是另外的一套虚拟机管理系统,Kqemu是QEMU的加速器,可以认为是QEMU的一个插件;QEMU可以虚拟出不同架构的虚拟机,如在x86平台上可以虚拟出power机器。

3、KVM负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但KVM不能模拟其他设备。QEMU是模拟IO设备(网卡,磁盘),KVM加上QEMU之后就能实现真正意义上服务器虚拟化。因为用到了上面两个东西,所以一般都称之为QEMU-KVM。

(3)qemu启动编译的内核出现卡顿扩展阅读:

1、KVM 技术已经从最初的基础SOHO办公型,发展成为企业 IT 基础机房设施管理系统。可以从kvm 客户端管理软件轻松的直接访问位于多个远程位置的服务器和设备。

2、QEMU在GNU/Linux平台上使用广泛。具有高速度及跨平台的特性,通过KQEMU这个闭源的加速器,QEMU能模拟至接近真实电脑的速度。

3、KQEMU现可运行在基于x86或x86_64的Linux2.4或Linux 2.6主机上。

④ qemu如何使用

qemu常用网络模式是user、tap。
user使用有局限性,
1) 由于其在QEMU内部实现所有网络协议栈,因此其性能较差。
2) 不支持部分网络功能(如ICMP),所以不能在客户机中使用ping命令测试外网连通性。
3) 不能从宿主机或外部网络直接访问客户机。需要作地址重定向。
tap方式网络没有这些限制。
通过tap又可以实现bridge和nat方式的网络连接。

阅读全文

与qemu启动编译的内核出现卡顿相关的资料

热点内容
农业银行app学生缴费怎么切换 浏览:468
福建在哪个app上有安康码 浏览:545
用友商贸宝t1登录找不到加密狗 浏览:555
区间测速算法不正确 浏览:331
appstore转到哪个国家比较好 浏览:924
程序员为什么被公司埋炸弹 浏览:941
linuxds18b20驱动 浏览:137
集群大数据编译命令 浏览:536
什么狼人杀app好 浏览:303
hadoop压缩命令 浏览:655
croe壳命令 浏览:77
抽干文件夹图片 浏览:950
android光感 浏览:968
php业务流 浏览:971
devc编译错了怎么办 浏览:300
编译系统都有哪些部分 浏览:707
数据库技术pdf 浏览:232
如何把网页部署到服务器上 浏览:634
php用户组 浏览:785
抚顺自动数控编程软件 浏览:747