-
Notifications
You must be signed in to change notification settings - Fork 907
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
F-stack kernel failing to track time properly #701
Comments
Ok, I was able to hack kern_event.c to do "fix" the bug. From my limited understanding of the codebase, it looks like like f-stack modified bsd callouts a good bit to accept 'ticks' as the argument instead of bintime, specifically wanting you to tell it 'run this callout N ticks from now.' i had to make kern_event hold true to that assumption by making all values absolute, rather than relative to |
I will check it. |
…nd timer of F-Stack. Ref F-Stack#701 F-Stack#702.
Steps to reproduce:
Explanation of issue being shown: Very first log value is from me being lazy in the sample code, logs after that are during boot, multiple callouts get delayed and batched so they are very close to each other. something to do with freebsd.expire being too far ahead for first trigger, increasing boot.hz seems to decrease the delay but besides the point that's a small issue.
Next logs show that if callout is registered via EVFILT_TIMER very close to boot time, it is able to trigger every 1 second.
After it updates/adds a timer further away from boot, however, it deviates a lot.
It also for some reason has its units way off - I had to ask it to interpret my argument as 1 nanosecond(s) for it to track 1 second.
Expected behavior: to track time properly regardless of when callout is added, and to correctly interpret the units specified.
I tried to debug a bit, but could not figure out a solution - seems like maybe something to do with sbinuptime() and tick_sbt not matching. I am unsure if this bug is limited to EVFILT_TIMER or how many other subsystems are affected, clearly it can track time under some circumstances.
The text was updated successfully, but these errors were encountered: