kernel打印开关

This blog post outlines the steps to add a custom kernel printing switch for 'weixian_dump' in Linux kernel version 3.0. It involves modifying sysctl.c and sysctl_binary.c files, declaring variables in tcp_output.c and tcp.h, and controlling the printk via /proc/sys/vm/weixian_dump." 82818488,5547489,Android View测量流程解析:从View到ViewGroup,"['Android开发', 'View原理', '进阶知识', '源码解析', 'UI框架']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在linux-3.0/kernel/sysctl.c文件中加入:(可参考block_dump)
 {
  .procname = "weixian_dump",
  .data  = &weixian_dump,
  .maxlen  = sizeof(weixian_dump),
  .mode  = 0644,
  .proc_handler = proc_dointvec,
  .extra1  = &zero,
 },

./kernel/sysctl_binary.c加入:(挂靠到block_dump模块下)
static const struct bin_table bin_vm_table[] = 加入
{ CTL_INT,      VM_BLOCK_DUMP,                  "weixian_dump" },

2、
在vim ./net/ipv4/tcp_output.c开头加入:
int weixian_dump;
EXPORT_SYMBOL(weixian_dump);//允许内核其他模块调用。

在./include/linux/tcp.h中加入以下声明,用于网络函数引用:(可参考block_dump的使用,内核中任何模块使用,只需要extern声明即可)
extern int weixian_dump;

3、在net相关函数内部加入打印信息:(可参考block_dump的使用)
                if (unlikely(weixian_dump))
                        printk("[Weixian] ndo_start_xmit %d\n", skb->len);

4、打开kernel打印开关:echo 1  > /proc/sys/vm/weixian_dump
   关闭kernel打印开关:echo 0  > /proc/sys/vm/weixian_dump

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值