关于在linux用户态调试linux内核的一些方法

在调试linux过程中,其实在linux用户态有很多方法可以查看linux内核的相关信息,这里记录一下,持续更新

一、内核cpu相关

1、查看linux中的cpu是否上线

/sys/devices/system/cpu/offline
lscpu | grep -i "off"

2、查看cpu频率

cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq

3、隔离cpu的方法-isolcpus

在x86以及arm中,isolcpus的方法可以将我们想要的cpu单独隔离处理。

3-1、在x86中,具体为修改/boot/grubs/grub.cfg中的配置。

比如现在要隔离cpu2,那就是在/boot/grubs/grub.cfg文件中修改isolcpus=2

3-2、在arm中,具体为修改uboot中cmd的配置

在arm中是不会有/boot/grubs/grub.cfg这个文件的,但是一般linux内核都支持isolcpus对应的驱动。

比如现在要隔离cpu2,uboot的cmd中可以添加“isolcpus=2 nohz_full=2”。

4、隔离cpu的方法-taskset

taskset与isolcpus不同,isolcpus可以隔离cpu在内核中的调度,taskset不能。

taskset只能隔离cpu在应用层方面的调度,具体为进程方面的调度。

二、内核配置相关

1、查看linux内核config

将/proc/config.gz拷贝出来,然后解压,就是编译linux内核时候的config文件

2、查看linux内存分配

cat /proc/iomem

3、查看gpio相关

(4-1)查看当前应用层IO口调用:
cat /sys/kernel/debug/gpio
(4-2)设置51引脚IO给应用层使用:
echo 51 > /sys/class/gpio/export
(4-3)设置51引脚IO为输出状态:
echo "out" > /sys/class/gpio/gpio51/direction
(4-4)设置51引脚IO输出状态为1,这里可设置1和0:
echo 1 > /sys/class/gpio/gpio51/value

4、查看uboot引导kenrel cmd配置

cat /proc/cmdline 

5、查看一些系统信息指令

cat /etc/os-release

6、查看设备树中的相关描述定义

查看设备树的描述定义,同时linux fdt可以通过/proc/devices-tree/model看看是否被覆盖。

如果被覆盖的话,model里面的内容会异常

cat /proc/device-tree/model

其实在 /proc/device-tree/中,有很多设备树中相关定义,可以进入到更深层的目录,通过cat可查看name还有uevent文件,查看当前是外设驱动配置以及是否开启。

三、内核中断相关

1、查看linux系统中断分布

cat /proc/interrupts

2、查看linux系统中断次数

以下指令可以看到linux中断次数,包括到各个cpu中的统计

cat /proc/softirqs

3、x86中隔离cpu中断

irqbalance是x86 linux用来做中断负载均衡的一种手段。

在x86中,如果要单独隔离一个cpu,需要让irqbalance中的中断均衡策略不要影响到我们想隔离的cpu,那就需要修改/etc/sysconfig/irqbalance文件中IRQBALANCE_BANNED_CPUS的值。

比如要隔离cpu2,那需要配置为04。这里的04实际上表达的十六进制的0x04,转为二进制就是0b00000100,表示从下标为0开始的cpu2。

IRQBALANCE_BANNED_CPUS=“04”

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值