# Re: \[patch 01/24\] timekeeping: Provide ktime\_get\_snapshot\_id()

- From: Jacob Keller \<jacob.e.keller@intel.com\>
- Date: 2026-05-26 21:41:42 
- List: netdev
- Page: https://ratatoskr.run/netdev/2026/05/17033445
- Thread: https://ratatoskr.run/kvmarm/2026/05/17032577/t.md

```text
On 5/26/2026 10:13 AM, Thomas Gleixner wrote:

>  /**
> - * ktime_get_snapshot - snapshots the realtime/monotonic raw clocks with counter
> - * @systime_snapshot:	pointer to struct receiving the system time snapshot
> + * ktime_get_snapshot_id -  Simultaneously snapshot a given clock ID with
> + *			    CLOCK_MONOTONIC_RAW and the underlying
> + *			    clocksource counter value.
> + * @systime_snapshot:	Pointer to struct receiving the system time snapshot
> + * @clock_id:		The clock ID to snapshot
>   */
> -void ktime_get_snapshot(struct system_time_snapshot *systime_snapshot)
> +bool ktime_get_snapshot_id(struct system_time_snapshot *systime_snapshot, clockid_t clock_id)
>  {

Since this function now returns a bool would it make sense to add a
"Return:" comment to the kdoc to help explain what the return value means?

I saw that you have a WARN_ON with the ktime_get_snapshot wrapper. I
guess it returns false if timekeeping_suspended.

> -	struct timekeeper *tk = &tk_core.timekeeper;
> +	ktime_t base_raw, base_sys, offs_sys, *offs, offs_zero = 0;
> +	u64 nsec_raw, nsec_sys, now;
> +	struct timekeeper *tk;
> +	struct tk_data *tkd;
>  	unsigned int seq;
> -	ktime_t base_raw;
>  	ktime_t base_real;
>  	ktime_t base_boot;
> -	u64 nsec_raw;
> -	u64 nsec_real;
> -	u64 now;
>  
> -	WARN_ON_ONCE(timekeeping_suspended);
> +	/* Invalidate the snapshot for all failure cases */
> +	systime_snapshot->valid = false;
> +
> +	if (WARN_ON_ONCE(timekeeping_suspended))
> +		return false;
> +

This warns here, and the wrapper ktime_get_snapshot also warns. Does
that make sense? I guess eventually the ktime_get_snapshot will be removed?
```
