-
-
Notifications
You must be signed in to change notification settings - Fork 603
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
aarch64: bugs in arm-clock #1091
Comments
Hello, I'm a CS student at UT Austin. I was wondering if me and my classmates could work on this issue as part of our virtualization class? Thank you! |
Sure you can, and we'll be happy to help if we can. If you have general questions on OSv, how to run it, how it works, etc., please subscribe to the OSv mailing list ([email protected]) and ask questions there. On this bug tracker here we should focus on the specific issue. Good luck. |
Hi @anirudh-goyal! Please note that my comment mentioning printing Also to develop/test this issue you will need to be able to build and run aarch64 images. The best Linux distribution for that is Fedora if you want to cross-compile and run the image in the emulated mode on x64 hardware. If you do not like this, you can also run OSv on the latest Raspberry PI 4. I do not think you can build on Raspberry PI 4, but if you want you can help us with that - it would be mostly fiddling with the main Makefile. For more details about the state of our AArch64 port read this wiki page - https://github.com/cloudius-systems/osv/wiki/AArch64 |
Hi. I'm working with @anirudh-goyal on this issue. Is there some documentation or something for me to read to understand the expected behavior for |
Unfortunately, there is no specific documentation of how this method should operate except for the comments in https://github.com/cloudius-systems/osv/blob/master/drivers/clock.hh. You can also compare the existing implementation of it used by kvm and xen paravirtual clocks - see include/osv/pvclock-abi.hh. This commit comments might also help. Ultimately this method is heavily used by bootchart.cc |
@michaelsatanovsky @anirudh-goyal are you still working on this issue? |
This patch provides missing implementation of processor_to_nano() in the arm_clock driver. We simply re-use the formula in the arm_clock::uptime() method and instead of reading the counter, we simply apply the passed in one and convert to nanoseconds. This is enough to make bootchart work properly on aarch64. Partially addresses #1091 Signed-off-by: Waldemar Kozaczuk <[email protected]>
I think to properly implement |
It appears there are bugs in the arm-clock implementation that cause time/clock related "misbehaviors".
Looking at the code, both the
boot_time()
andtime()
delegate touptime()
, which seems to be wrong. Theboot_time()
should return a constant value captured early and represent the point-it-time the boot process started (see at hpet.cc which returns_wall
value). Similarlytime()
should be equal to sum ofuptime()
andboottime()
which does not seem to be the case for arm_clock.The text was updated successfully, but these errors were encountered: