There is a typo in "timer2sbintime" (sys/kern/kern_event.c) when converting NOTE_NSECONDS to sbintime_t. For the nanosecond part US_TO_SBT instead of NS_TO_SBT is used. This results in weird timeout values.
Created attachment 221412 [details] reproducer
Created attachment 221413 [details] patch
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=4d0c33be634a929f323117f04e6b1670776f9e37 commit 4d0c33be634a929f323117f04e6b1670776f9e37 Author: Jan Kokemüller <jan.kokemueller@gmail.com> AuthorDate: 2021-01-09 19:00:25 +0000 Commit: Gordon Bergling <gbe@FreeBSD.org> CommitDate: 2021-01-09 19:00:25 +0000 kevent(2): Bugfix for wrong EVFILT_TIMER timeouts When using NOTE_NSECONDS in the kevent(2) API, US_TO_SBT should be used instead of NS_TO_SBT, otherwise the timeout results are misleading. PR: 252539 Reviewed by: kevans, kib Approved by: kevans MFC after: 3 weeks sys/kern/kern_event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Commited in 4d0c33be634a929f323117f04e6b1670776f9e37. A MFC is planned for within 3 weeks. Thanks for the patch!
Thank you :)
A commit in branch stable/12 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=6a3ad2d0a7b633bad2bb33f9c4c426dffcc91633 commit 6a3ad2d0a7b633bad2bb33f9c4c426dffcc91633 Author: Jan Kokemüller <jan.kokemueller@gmail.com> AuthorDate: 2021-01-09 19:00:25 +0000 Commit: Gordon Bergling <gbe@FreeBSD.org> CommitDate: 2021-01-30 10:11:55 +0000 kevent(2): Bugfix for wrong EVFILT_TIMER timeouts When using NOTE_NSECONDS in the kevent(2) API, US_TO_SBT should be used instead of NS_TO_SBT, otherwise the timeout results are misleading. PR: 252539 Reviewed by: kevans, kib Approved by: kevans Differential Revision: https://reviews.freebsd.org/D28067 (cherry picked from commit 4d0c33be634a929f323117f04e6b1670776f9e37) sys/kern/kern_event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Committed to HEAD, stable/12 and stable/13. Thanks for spotting the issue and providing a patch!
A commit in branch stable/11 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=8ce9180c09d93b4ef11859be604ef41173d6dbd1 commit 8ce9180c09d93b4ef11859be604ef41173d6dbd1 Author: Jan Kokemüller <jan.kokemueller@gmail.com> AuthorDate: 2021-01-09 19:00:25 +0000 Commit: Gordon Bergling <gbe@FreeBSD.org> CommitDate: 2021-01-30 23:39:58 +0000 kevent(2): Bugfix for wrong EVFILT_TIMER timeouts When using NOTE_NSECONDS in the kevent(2) API, US_TO_SBT should be used instead of NS_TO_SBT, otherwise the timeout results are misleading. PR: 252539 Reviewed by: kevans, kib Approved by: kevans Differential Revision: https://reviews.freebsd.org/D28067 (cherry picked from commit 4d0c33be634a929f323117f04e6b1670776f9e37) (cherry picked from commit 6a3ad2d0a7b633bad2bb33f9c4c426dffcc91633) sys/kern/kern_event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)