kmsg_dump

kmsg_dump提供一种机制在系统挂掉的时候将log转存到其他介质如ramoos或者mtd等.我们以mtd中的使用为例来分析kmsg_dump机制.
使用kmsg_dump之前要先使用kmsg_dump_register来注册一个dumper,用于实际的log写函数.
我们先来看看kmsg_dump_register的定义,只定义了一个dump_list,将系统中所有注册的dump都挂在同一个list下,这就说明系统可以注册多个dumper
kernel/printk/printk.c
2819 int kmsg_dump_register(struct kmsg_dumper *dumper)
2820 {
2821         unsigned long flags;
2822         int err = -EBUSY;
2823 
2824         /* The dump callback needs to be set */
2825         if (!dumper->dump)
2826                 return -EINVAL;
2827 
2828         spin_lock_irqsave(&dump_list_lock, flags);
2829         /* Don't allow registering multiple times */
2830         if (!dumper->registered) {
2831                 dumper->registered = 1;
2832                 list_add_tail_rcu(&dumper->list, &dump_list);
2833                 err = 0;<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值