Skip to content
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

metal_dcache_l1_flush() should not issue fence.i by default #217

Open
TacoGrandeTX opened this issue Dec 27, 2019 · 0 comments
Open

metal_dcache_l1_flush() should not issue fence.i by default #217

TacoGrandeTX opened this issue Dec 27, 2019 · 0 comments

Comments

@TacoGrandeTX
Copy link

Our metal_dcache_l1_flush() contains a fence.i instruction that is only needed if one is making code side updates through the data cache - namely pushing out new instructions to memory:

https://github.com/sifive/freedom-metal/blob/v201908-branch/src/cache.c#L135

The fence.i invalidates the I Cache and can negatively impact performance. If a user is pushing out a code update they should call fence.i on their own or there should be a new argument added which specifies if the fence.i should be executed.

Customers don't appreciate having the I Cache invalidated when not necessary.

bsousi5 pushed a commit that referenced this issue Apr 8, 2020
Update the README for targets and commands
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant