Page MenuHomeFreeBSD

linux_timerfd_settime set expirations count to zero
ClosedPublic

Authored by ankohuu_outlook.com on Jan 19 2021, 6:48 AM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Nov 7, 5:53 AM
Unknown Object (File)
Thu, Nov 7, 5:53 AM
Unknown Object (File)
Thu, Nov 7, 2:20 AM
Unknown Object (File)
Tue, Nov 5, 9:55 AM
Unknown Object (File)
Thu, Oct 17, 11:53 PM
Unknown Object (File)
Thu, Oct 17, 1:06 PM
Unknown Object (File)
Wed, Oct 16, 6:01 AM
Unknown Object (File)
Tue, Oct 15, 5:05 AM

Details

Summary

On Linux, read(2) timerfd returns an unsigned 8-byte integer (uint64_t) containing the number of expirations that have occurred, if the timer has already expired one or more times since its settings were last modified using timerfd_settime(), or since the last successful read(2).That's to say, once do a read or timerfd_settime operation, timer fd's expiration count should be zero.
Some Linux applications create timerfd and add it to epoll with LT mode, when event comes, they do timerfd_settime instead of read to stop event source from trigger, On FreeBSD timerfd_settime don't set count to zero, so cause CPU high.
Add set count to zero On FreeBSD emulation linux_timerfd_settime.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

I don't have experience with that code, and neither with timerfd, but your patch makes sense. Can you tell me which apps use the behaviour you're describing?

I don't have experience with that code, and neither with timerfd, but your patch makes sense. Can you tell me which apps use the behaviour you're describing?

Sorry, according to the git-log record, I made this modification on March 30th 2020 for some Linux desktop related programs, but I did not record which program it was.

Thanks! Can you commit it yourself, or should I?

Thanks! Can you commit it yourself, or should I?

Could you help me? I don't have permission to commit it.
I also have another review about timerfd ready to land
https://reviews.freebsd.org/D28148.
If possible please help me to commit it also, thank you.

This revision was not accepted when it landed; it landed in state Needs Review.Feb 3 2021, 7:09 PM
This revision was automatically updated to reflect the committed changes.

Done. Thank you, and let me know when you have any more linuxulator fixes :-)