时间子系统17_hard lockup机制

本文详细介绍了Linux内核中硬锁up(hard lockup)的检测机制,包括初始化hard lockup事件,设置10秒的检测阈值,通过performance monitoring子系统进行监测,并在检测到hard lockup时触发回调函数进行信息打印或警告。同时,还讨论了关闭hard lockup检测的流程。
摘要由CSDN通过智能技术生成
//	使能hard lockup探测
//	调用路径:watchdog_enable->watchdog_nmi_enable
//	函数任务:
//		1.初始化hard lockup检测事件
//			2.hard lockup阈值为10s
//		2.向performance monitoring子系统注册hard lockup检测事件
//		3.使能hard lockup检测事件
//	注:
//		performance monitoring,x86中的硬件设备,当cpu clock经过了指定个周期后发出一个NMI中断。
1.1 static int watchdog_nmi_enable(unsigned int cpu)
{
	//hard lockup事件
	struct perf_event_attr *wd_attr;
	struct perf_event *event = per_cpu(watchdog_ev, cpu);
	....
	wd_attr = &wd_hw_attr;
	//hard lockup检测周期,10s
	wd_attr->sample_period = hw_nmi_get_sample_period(watchdog_thresh);
	//向performance monitoring注册hard lockup检测事件
	event = perf_event_create_kernel_counter(wd_attr, cpu, NULL, watchdog_overflow_callback, NULL);
	....
	//使能hard lockup的检测
	per_cpu(watchdog_ev, cpu) = event;
	perf_event_enable(per_cpu(watchdog_ev, cpu));
	return 0;
}

//	换算hard lockup检测周期到cpu频率
1.2 u64 hw_nmi_get_sample_period(int watchdog_thresh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值