04 2020 档案
摘要:一、OOM处理的基本流程简单描述如下: 1、检查是否配置了/proc/sys/kernel/panic_on_oom,如果是则直接触发panic。 2、检查是否配置了oom_kill_allocating_task,即是否需要kill current进程来回收内存,如果是,且current进程是ki
阅读全文
摘要:1.介绍 Linux kernel中,我们经常需要从uboot传入一些参数给kernel,用来设置driver的行为。 2.方法 kernel已经封装好API了,使用方法非常简单,例子如下: 在bootargs中加入uartp_mode=1,则在driver初始化之前,就会设置uartp_optio
阅读全文
摘要:1.介绍 ARM自带有HW debug功能,作用是在某个内存或者地址被读写时,可以触发异常,然后我们可以在异常中进行一些必要信息的打印,比如stack,这非常有利于debug内存,寄存器越界读写的问题。 aarch32 linux4.9 kernel 有breakpoint的編碼例項data_bre
阅读全文
摘要:1.简介 近期遇到一个uart数据部分丢失的问题,比较怀疑在中断中,寄存器发生异常。 选择使用kernel自带的Trace工具追踪UART IRQ信号。 2.使用方法 追踪IRQirq:irq_handler_exitirq:irq_handler_entry proc/interrupts //查
阅读全文
摘要:1.首先从log分析,可以看到最后挂在mdrv_HDMI_GetSourceSelect + 0x8c处。 <4>[ 5022.810137] [<ffffff8000ffcd74>] mdrv_HDMI_GetSourceSelect+0x8c/0x118 [utpa2k] <4>[ 5022.8
阅读全文
摘要:最近遇到在64bit kernel执行32bit的程序时,ioctl无法操作tty driver。问题是kernel中tty设备没有compat_ioctl回调导致的,最后自己修改uart_ops解决的问题。 在debug此问题时,需要在syscall中加入log,加入之后会导致log过多而影响观察
阅读全文

浙公网安备 33010602011771号