时间子系统二——clockevent之tick

本文介绍了Linux内核中clockevent设备和tick设备的注册过程,以及clockevent的处理流程。clockevent设备的核心成员包括event_handler和set_next_event,而tick设备则包含evtdev和mode。在注册过程中,系统会比较设备的模式和精度来选择最佳的tick device。处理流程始于timer中断,经过tick_handle_periodic、hrtimer_interrupt,并在特定条件下切换到one shot模式。one shot模式下,周期性tick通过高精度定时器实现。
摘要由CSDN通过智能技术生成

简述


clockevent的一个重要应用场景就是用于处理tick事件,在clockevent device之上,抽象出了一个tick device,分别用于维护clockevent的上下文和tick device上下文。

clockevent和tick device的注册


clockevent device

struct clock_event_device {
	void			(*event_handler)(struct clock_event_device *);
	int			(*set_next_event)(unsigned long evt, struct clock_event_device *);
	int			(*set_next_ktime)(ktime_t expires, struct clock_event_device *);
	ktime_t			next_event;
	u64			max_delta_ns;
	u64			min_delta_ns;
	u32			mult;
	u32			shift;
	enum clock_event_state	state_use_accessors;
	unsigned int		features;
	unsigned long		retries;

	int			(*set_state_periodic)(struct clock_event_device *);
	int			(*set_state_oneshot)(struct clock_event_device *);
	int			(*set_state_oneshot_stopped)(struct clock_event_device *);
	int			(*set_state_shutdown)(struct clock_event_device *);
	int			(*tick_res
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值