HomeFreeBSD

kqueue: don't arbitrarily restrict long-past values for NOTE_ABSTIME

Description

kqueue: don't arbitrarily restrict long-past values for NOTE_ABSTIME

NOTE_ABSTIME values are converted to values relative to boottime in
filt_timervalidate(), and negative values are currently rejected. We
don't reject times in the past in general, so clamp this up to 0 as
needed such that the timer fires immediately rather than imposing what
looks like an arbitrary restriction.

Another possible scenario is that the system clock had to be adjusted
by ~minutes or ~hours and we have less than that in terms of uptime,
making a reasonable short-timeout suddenly invalid. Firing it is still
a valid choice in this scenario so that applications can at least
expect a consistent behavior.

Reviewed by: kib, markj
Discussed with: allanjude
Differential Revision: https://reviews.freebsd.org/D32230

Details

Provenance
kevansAuthored on Sep 29 2021, 7:55 PM
Reviewer
kib
Differential Revision
D32230: kqueue: don't arbitrarily restrict long-past values for NOTE_ABSTIME
Parents
rG1b7a2680fba5: Import ACPICA 20210930
Branches
Unknown
Tags
Unknown