ac8257 android 9 chatty

kernel

mtk_agpsd

[ccci1/chr]write error done on ttyC2, l=26 r=-19

 /vendor/etc/init/mtk_agpsd.rc

on post-fs-data
    mkdir /data/agps_supl 0771 gps system

service agpsd /vendor/bin/mtk_agpsd
    class main
    socket agpsd stream 660 gps system
    socket agpsd2 stream 660 gps inet
    socket agpsd3 stream 660 gps inet
    user gps
    group gps radio inet sdcard_r sdcard_rw misc system

stop agpsd 

wdtk

每隔20秒1次。

[wdk-c] cpu=1,lbit=0x2,cbit=0xf,0,1,771100078,[1271090987183]
[thread:247][RT:1271091038491] 2025-03-26 10:29:17.603658 UTC;android time 2025-03-26 18    :29:17.603658
[wdk-c] cpu=0,lbit=0x3,cbit=0xf,0,1,771100078,[1271094292568]
[wdk-c] cpu=2,lbit=0x7,cbit=0xf,0,1,771100078,[1271094302799]
[wdk-k] cpu=3,lbit=0xf,cbit=0xf,0,1,771100078,[1271094308799]

drivers/watchdog/mediatek/wdk/wd_common_drv.c 

481 static void kwdt_process_kick(int local_bit, int cpu, char msg_buf[])
482 {
483     local_bit = kick_bit;
484     if ((local_bit & (1 << cpu)) == 0) {
485         /* pr_debug("[wdk] set kick_bit\n"); */
486         local_bit |= (1 << cpu);
487         /* aee_rr_rec_wdk_kick_jiffies(jiffies); */
488     }
489
490     /*
491      * do not print message with spinlock held to
492      *  avoid bulk of delayed printk happens here
493      */
494     snprintf(msg_buf, WK_MAX_MSG_SIZE,
495         "[wdk-c] cpu=%d,lbit=0x%x,cbit=0x%x,%d,%d,%lld,[%lld]\n",
496         cpu, local_bit, wk_check_kick_bit(), lasthpg_cpu, lasthpg_act,
497         lasthpg_t, sched_clock());
498
499     if (local_bit == wk_check_kick_bit()) {
500         msg_buf[5] = 'k';
501         mtk_wdt_restart(WD_TYPE_NORMAL);/* for KICK external wdt */
502         local_bit = 0;
503     }
504
505     kick_bit = local_bit;
506     spin_unlock(&lock);
507
508     /*
509      * [wdt-c]: mark local bit only.
510      * [wdt-k]: kick watchdog actaully, this log is more important thus
511      *      using printk_deferred to ensure being printed.
512      */
513     if (msg_buf[5] != 'k')
514         pr_info("%s", msg_buf);
515     else
516         printk_deferred("%s", msg_buf);
517
518 #ifdef CONFIG_LOCAL_WDT
519     printk_deferred("[wdk] cpu:%d, kick local wdt,RT[%lld]\n",
520             cpu, sched_clock());
521     /* kick local wdt */
522     mpcore_wdt_restart(WD_TYPE_NORMAL);
523 #endif
524 }

 /proc/wdk

# cat /proc/wdk
mode interval timeout enable
2    20        -1       1

 write

%d %d %d %d %d
mode, kinterval, timeout, debug_sleep, en

MIN_KICK_INTERVAL 1
MAX_KICK_INTERVAL 30

 36 enum ext_wdt_mode {
 37     WDT_IRQ_ONLY_MODE,
 38     WDT_HW_REBOOT_ONLY_MODE,
 39     WDT_DUAL_MODE,
 40 };

/proc/mrdump_rst 

write

%d %d %d
mrdump_rst_source, mode, en

mrdump_rst_source(%d) value need smaller than 2
mrdump_rst_mode(%d) value should be smaller than 2

 61 #define MRDUMP_SYSRESETB    0
 62 #define MRDUMP_EINTRST      1

watchdog 

每隔30秒1次。system_server进程中有个watchdog线程每30秒喂一次狗,持续5分钟没喂狗,内核hang_detect线程检测到系统挂起,创建dump_last_thread线程,打印backtrace。busybox pstree -p `pidof system_server`。

AEEIOCTL_RT_MON_Kick ( 300)
[Hang_Detect] hang_detect enabled 10

ioctl

 265     /* QHQ RT Monitor */
 266     if (cmd == AEEIOCTL_RT_MON_Kick) {
 267         pr_info("AEEIOCTL_RT_MON_Kick ( %d)\n", (int)arg);
 268         aee_kernel_RT_Monitor_api((int)arg);
 269         return ret;
 270     }
 271     /* QHQ RT Monitor end */

 api

HD_INTER 30,检测间隔30秒。

lParam hd_detect_enabled hang_detect_counter hd_timeout
0 0 = hd_timeout
& 0x1000 </
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值