Add volatile keyword to asm block in rdtsc #2759
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've created a fork of this repo so that I can compile it directly into a golang project so that there is no libsrt dependency. Whilst doing this, I came across a bug where the cpu_frequency was being set to 0 resulting in a floating point exception.
for some reason I never saw this bug when building using the cmake build system, so I assume there must be a workaround for this or something, but I figured you'd want to see this.
My changes are:
to
I suggest this because I assume that you're trying to do some sort of processor interrupt here, but haven't marked the registers as volatile so that cpu can't write into them for the response, this results in
rdtsc
always returning undefined (but usually 0).Note
I only ever saw this occur on Centos7, when I ran this on Ubuntu everything worked just fine
The compile flags I'm using are: