/linux-6.6.21/include/linux/ |
D | hrtimer.h | 118 struct hrtimer { struct 121 enum hrtimer_restart (*function)(struct hrtimer *); argument 137 struct hrtimer timer; argument 164 struct hrtimer *running; 236 struct hrtimer *next_timer; 238 struct hrtimer *softirq_next_timer; 242 static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time) in hrtimer_set_expires() 248 static inline void hrtimer_set_expires_range(struct hrtimer *timer, ktime_t time, ktime_t delta) in hrtimer_set_expires_range() 254 static inline void hrtimer_set_expires_range_ns(struct hrtimer *timer, ktime_t time, u64 delta) in hrtimer_set_expires_range_ns() 260 static inline void hrtimer_set_expires_tv64(struct hrtimer *timer, s64 tv64) in hrtimer_set_expires_tv64() [all …]
|
/linux-6.6.21/include/trace/events/ |
D | timer.h | 175 TP_PROTO(struct hrtimer *hrtimer, clockid_t clockid, 178 TP_ARGS(hrtimer, clockid, mode), 181 __field( void *, hrtimer ) 187 __entry->hrtimer = hrtimer; 192 TP_printk("hrtimer=%p clockid=%s mode=%s", __entry->hrtimer, 204 TP_PROTO(struct hrtimer *hrtimer, enum hrtimer_mode mode), 206 TP_ARGS(hrtimer, mode), 209 __field( void *, hrtimer ) 217 __entry->hrtimer = hrtimer; 218 __entry->function = hrtimer->function; [all …]
|
/linux-6.6.21/Documentation/translations/zh_CN/iio/ |
D | iio_configfs.rst | 86 * hrtimer,使用高分辨率定时器作为中断源 91 加载iio-trig-hrtimer模块将注册hrtimer触发器类型,从而允许用户在 92 /config/iio/triggers/hrtimer下创建hrtimer触发器。 96 $ mkdir /config/iio/triggers/hrtimer/instance1 97 $ rmdir /config/iio/triggers/hrtimer/instance1 101 3.2 "hrtimer" 触发器类型属性 104 "hrtimer”触发器类型没有来自/config dir的任何可配置属性。
|
/linux-6.6.21/drivers/hwtracing/stm/ |
D | heartbeat.c | 26 struct hrtimer hrtimer; member 32 static enum hrtimer_restart stm_heartbeat_hrtimer_handler(struct hrtimer *hr) in stm_heartbeat_hrtimer_handler() 35 hrtimer); in stm_heartbeat_hrtimer_handler() 50 hrtimer_start(&heartbeat->hrtimer, ms_to_ktime(interval_ms), in stm_heartbeat_link() 62 hrtimer_cancel(&heartbeat->hrtimer); in stm_heartbeat_unlink() 83 hrtimer_init(&stm_heartbeat[i].hrtimer, CLOCK_MONOTONIC, in stm_heartbeat_init() 85 stm_heartbeat[i].hrtimer.function = in stm_heartbeat_init()
|
/linux-6.6.21/kernel/time/ |
D | hrtimer.c | 165 struct hrtimer_clock_base *lock_hrtimer_base(const struct hrtimer *timer, in lock_hrtimer_base() 194 hrtimer_check_target(struct hrtimer *timer, struct hrtimer_clock_base *new_base) in hrtimer_check_target() 226 switch_hrtimer_base(struct hrtimer *timer, struct hrtimer_clock_base *base, in switch_hrtimer_base() 283 lock_hrtimer_base(const struct hrtimer *timer, unsigned long *flags) in lock_hrtimer_base() 351 return ((struct hrtimer *) addr)->function; in hrtimer_debug_hint() 360 struct hrtimer *timer = addr; in hrtimer_fixup_init() 394 struct hrtimer *timer = addr; in hrtimer_fixup_free() 414 static inline void debug_hrtimer_init(struct hrtimer *timer) in debug_hrtimer_init() 419 static inline void debug_hrtimer_activate(struct hrtimer *timer, in debug_hrtimer_activate() 425 static inline void debug_hrtimer_deactivate(struct hrtimer *timer) in debug_hrtimer_deactivate() [all …]
|
D | tick-broadcast-hrtimer.c | 18 static struct hrtimer bctimer; 94 static enum hrtimer_restart bc_handler(struct hrtimer *t) in bc_handler()
|
/linux-6.6.21/arch/powerpc/kernel/ |
D | watchdog.c | 83 static DEFINE_PER_CPU(struct hrtimer, wd_hrtimer); 437 static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer) in watchdog_timer_fn() argument 449 hrtimer_forward_now(hrtimer, ms_to_ktime(wd_timer_period_ms)); in watchdog_timer_fn() 473 struct hrtimer *hrtimer = this_cpu_ptr(&wd_hrtimer); in start_watchdog() local 498 hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); in start_watchdog() 499 hrtimer->function = watchdog_timer_fn; in start_watchdog() 500 hrtimer_start(hrtimer, ms_to_ktime(wd_timer_period_ms), in start_watchdog() 511 struct hrtimer *hrtimer = this_cpu_ptr(&wd_hrtimer); in stop_watchdog() local 518 hrtimer_cancel(hrtimer); in stop_watchdog()
|
/linux-6.6.21/Documentation/iio/ |
D | iio_configfs.rst | 82 * hrtimer, uses high resolution timers as interrupt source 87 Loading iio-trig-hrtimer module will register hrtimer trigger types allowing 88 users to create hrtimer triggers under /config/iio/triggers/hrtimer. 92 $ mkdir /config/iio/triggers/hrtimer/instance1 93 $ rmdir /config/iio/triggers/hrtimer/instance1 97 3.2 "hrtimer" trigger types attributes 100 "hrtimer" trigger type doesn't have any configurable attribute from /config dir.
|
/linux-6.6.21/Documentation/translations/zh_CN/admin-guide/ |
D | lockup-watchdogs.rst | 34 Softlockup和hardlockup分别建立在hrtimer(高精度定时器)和perf两个子系统上而实现。 39 为间隔周期产生以检测 hardlockups。如果一个CPU在这个时间段内没有检测到hrtimer中 45 "softlocup 检测器"(内部hrtimer定时器回调函数)会将相关的调试信息打印到系统日志中, 48 Hrtimer定时器的周期是2*watchdog_thresh/5,也就是说在hardlockup被触发前hrtimer有 51 如上所述,内核相当于为系统管理员提供了一个可调节hrtimer定时器和perf事件周期长度
|
/linux-6.6.21/sound/sh/ |
D | sh_dac_audio.c | 41 struct hrtimer hrtimer; member 55 hrtimer_start(&chip->hrtimer, chip->wakeups_per_second, in dac_audio_start_timer() 61 hrtimer_cancel(&chip->hrtimer); in dac_audio_stop_timer() 263 static enum hrtimer_restart sh_dac_audio_timer(struct hrtimer *handle) in sh_dac_audio_timer() 266 hrtimer); in sh_dac_audio_timer() 290 hrtimer_start(&chip->hrtimer, chip->wakeups_per_second, in sh_dac_audio_timer() 316 hrtimer_init(&chip->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); in snd_sh_dac_create() 317 chip->hrtimer.function = sh_dac_audio_timer; in snd_sh_dac_create()
|
/linux-6.6.21/drivers/net/wwan/iosm/ |
D | iosm_ipc_imem.h | 351 struct hrtimer startup_timer; 353 struct hrtimer tdupdate_timer; 354 struct hrtimer fast_update_timer; 355 struct hrtimer td_alloc_timer; 356 struct hrtimer adb_timer; 516 void ipc_imem_hrtimer_stop(struct hrtimer *hr_timer);
|
/linux-6.6.21/kernel/ |
D | watchdog.c | 282 static DEFINE_PER_CPU(struct hrtimer, watchdog_hrtimer); 445 static enum hrtimer_restart watchdog_timer_fn(struct hrtimer *hrtimer) in watchdog_timer_fn() argument 466 hrtimer_forward_now(hrtimer, ns_to_ktime(sample_period)); in watchdog_timer_fn() 542 struct hrtimer *hrtimer = this_cpu_ptr(&watchdog_hrtimer); in watchdog_enable() local 554 hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD); in watchdog_enable() 555 hrtimer->function = watchdog_timer_fn; in watchdog_enable() 556 hrtimer_start(hrtimer, ns_to_ktime(sample_period), in watchdog_enable() 568 struct hrtimer *hrtimer = this_cpu_ptr(&watchdog_hrtimer); in watchdog_disable() local 578 hrtimer_cancel(hrtimer); in watchdog_disable()
|
/linux-6.6.21/arch/arm/mach-imx/ |
D | mmdc.c | 100 struct hrtimer hrtimer; member 338 hrtimer_start(&pmu_mmdc->hrtimer, mmdc_pmu_timer_period(), in mmdc_pmu_event_start() 406 hrtimer_cancel(&pmu_mmdc->hrtimer); in mmdc_pmu_event_del() 423 static enum hrtimer_restart mmdc_pmu_timer_handler(struct hrtimer *hrtimer) in mmdc_pmu_timer_handler() argument 425 struct mmdc_pmu *pmu_mmdc = container_of(hrtimer, struct mmdc_pmu, in mmdc_pmu_timer_handler() 426 hrtimer); in mmdc_pmu_timer_handler() 429 hrtimer_forward_now(hrtimer, mmdc_pmu_timer_period()); in mmdc_pmu_timer_handler() 512 hrtimer_init(&pmu_mmdc->hrtimer, CLOCK_MONOTONIC, in imx_mmdc_perf_init() 514 pmu_mmdc->hrtimer.function = mmdc_pmu_timer_handler; in imx_mmdc_perf_init() 531 hrtimer_cancel(&pmu_mmdc->hrtimer); in imx_mmdc_perf_init()
|
/linux-6.6.21/drivers/misc/ |
D | vcpu_stall_detector.c | 42 struct hrtimer vcpu_hrtimer; 58 vcpu_stall_detect_timer_fn(struct hrtimer *hrtimer) in vcpu_stall_detect_timer_fn() argument 74 hrtimer_forward_now(hrtimer, in vcpu_stall_detect_timer_fn() 85 struct hrtimer *vcpu_hrtimer = &vcpu_stall_detector->vcpu_hrtimer; in start_stall_detector_cpu()
|
/linux-6.6.21/drivers/net/ethernet/marvell/octeontx2/af/ |
D | ptp.c | 115 static enum hrtimer_restart ptp_reset_thresh(struct hrtimer *hrtimer) in ptp_reset_thresh() argument 117 struct ptp *ptp = container_of(hrtimer, struct ptp, hrtimer); in ptp_reset_thresh() 137 hrtimer_forward_now(hrtimer, period_ns); in ptp_reset_thresh() 148 hrtimer_start(&ptp->hrtimer, period_ns, HRTIMER_MODE_REL); in ptp_hrtimer_start() 477 if (hrtimer_active(&ptp->hrtimer)) in ptp_extts_on() 478 hrtimer_cancel(&ptp->hrtimer); in ptp_extts_on() 516 hrtimer_init(&ptp->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); in ptp_probe() 517 ptp->hrtimer.function = ptp_reset_thresh; in ptp_probe() 548 if (cn10k_ptp_errata(ptp) && hrtimer_active(&ptp->hrtimer)) in ptp_remove() 549 hrtimer_cancel(&ptp->hrtimer); in ptp_remove()
|
D | ptp.h | 20 struct hrtimer hrtimer; member
|
/linux-6.6.21/drivers/watchdog/ |
D | softdog.c | 64 static struct hrtimer softdog_ticktock; 65 static struct hrtimer softdog_preticktock; 78 static enum hrtimer_restart softdog_fire(struct hrtimer *timer) in softdog_fire() 126 static enum hrtimer_restart softdog_pretimeout(struct hrtimer *timer) in softdog_pretimeout()
|
D | watchdog_core.h | 48 struct hrtimer timer; 51 struct hrtimer pretimeout_timer;
|
/linux-6.6.21/drivers/perf/ |
D | marvell_cn10k_ddr_pmu.c | 131 struct hrtimer hrtimer; member 452 hrtimer_start(&pmu->hrtimer, cn10k_ddr_pmu_timer_period(), in cn10k_ddr_perf_event_add() 509 hrtimer_cancel(&pmu->hrtimer); in cn10k_ddr_perf_event_del() 600 static enum hrtimer_restart cn10k_ddr_pmu_timer_handler(struct hrtimer *hrtimer) in cn10k_ddr_pmu_timer_handler() argument 602 struct cn10k_ddr_pmu *pmu = container_of(hrtimer, struct cn10k_ddr_pmu, in cn10k_ddr_pmu_timer_handler() 603 hrtimer); in cn10k_ddr_pmu_timer_handler() 610 hrtimer_forward_now(hrtimer, cn10k_ddr_pmu_timer_period()); in cn10k_ddr_pmu_timer_handler() 680 hrtimer_init(&ddr_pmu->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); in cn10k_ddr_perf_probe() 681 ddr_pmu->hrtimer.function = cn10k_ddr_pmu_timer_handler; in cn10k_ddr_perf_probe()
|
/linux-6.6.21/arch/x86/events/ |
D | rapl.c | 112 struct hrtimer hrtimer; member 212 hrtimer_start(&pmu->hrtimer, pmu->timer_interval, in rapl_start_hrtimer() 216 static enum hrtimer_restart rapl_hrtimer_handle(struct hrtimer *hrtimer) in rapl_hrtimer_handle() argument 218 struct rapl_pmu *pmu = container_of(hrtimer, struct rapl_pmu, hrtimer); in rapl_hrtimer_handle() 232 hrtimer_forward_now(hrtimer, pmu->timer_interval); in rapl_hrtimer_handle() 239 struct hrtimer *hr = &pmu->hrtimer; in rapl_hrtimer_init() 285 hrtimer_cancel(&pmu->hrtimer); in rapl_pmu_event_stop()
|
/linux-6.6.21/drivers/infiniband/sw/rdmavt/ |
D | trace_qp.h | 53 __field(void *, hrtimer) 60 __entry->hrtimer = &qp->s_rnr_timer; 68 __entry->hrtimer,
|
/linux-6.6.21/drivers/power/reset/ |
D | ltc2952-poweroff.c | 62 struct hrtimer timer_trigger; 63 struct hrtimer timer_wde; 95 static enum hrtimer_restart ltc2952_poweroff_timer_wde(struct hrtimer *timer) in ltc2952_poweroff_timer_wde() 117 ltc2952_poweroff_timer_trigger(struct hrtimer *timer) in ltc2952_poweroff_timer_trigger()
|
/linux-6.6.21/sound/core/ |
D | Makefile | 34 snd-hrtimer-objs := hrtimer.o 44 obj-$(CONFIG_SND_HRTIMER) += snd-hrtimer.o
|
/linux-6.6.21/Documentation/admin-guide/ |
D | lockup-watchdogs.rst | 36 The soft and hard lockup detectors are built on top of the hrtimer and 41 A periodic hrtimer runs to generate interrupts and kick the watchdog 45 does not receive any hrtimer interrupt during that time the 53 'softlockup detector' (coded inside the hrtimer callback function) 58 The period of the hrtimer is 2*watchdog_thresh/5, which means it has 63 administrators to configure the period of the hrtimer and the perf
|
/linux-6.6.21/drivers/net/ethernet/qualcomm/rmnet/ |
D | rmnet_map_data.c | 571 static enum hrtimer_restart rmnet_map_flush_tx_packet_queue(struct hrtimer *t) in rmnet_map_flush_tx_packet_queue() 575 port = container_of(t, struct rmnet_port, hrtimer); in rmnet_map_flush_tx_packet_queue() 630 hrtimer_cancel(&port->hrtimer); in rmnet_map_tx_aggregate() 653 hrtimer_cancel(&port->hrtimer); in rmnet_map_tx_aggregate() 659 if (!hrtimer_active(&port->hrtimer) && port->agg_state != -EINPROGRESS) { in rmnet_map_tx_aggregate() 661 hrtimer_start(&port->hrtimer, in rmnet_map_tx_aggregate() 689 hrtimer_init(&port->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); in rmnet_map_tx_aggregate_init() 690 port->hrtimer.function = rmnet_map_flush_tx_packet_queue; in rmnet_map_tx_aggregate_init() 698 hrtimer_cancel(&port->hrtimer); in rmnet_map_tx_aggregate_exit()
|