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

Fix block size calculation in dczid_el0_block_size() #3732

Merged
merged 1 commit into from
Apr 28, 2024

Conversation

pcc
Copy link
Contributor

@pcc pcc commented Apr 24, 2024

DCZID_EL0.BS contains the the log2 of the DC ZVA block size in words (defined as 32 bits), not bytes, so the block size calculation in dczid_el0_block_size() was incorrect. As a result we would sometimes fail to trigger watchpoints. Fix it.

@Keno
Copy link
Member

Keno commented Apr 24, 2024

This definitely needs a test case. Could you add an appropriate test in src/test/watchpoint_unaligned.{c,py}? LGTM otherwise.

DCZID_EL0.BS contains the the log2 of the DC ZVA block size in words
(defined as 32 bits), not bytes, so the block size calculation in
dczid_el0_block_size() was incorrect. As a result we would sometimes
fail to trigger watchpoints. Fix it.
@pcc
Copy link
Contributor Author

pcc commented Apr 24, 2024

Done, but in the process of writing the test I discovered that it looks like there are more arm64-specific watchpoint bugs.

@pcc
Copy link
Contributor Author

pcc commented Apr 24, 2024

(Filed #3736 for the watchpoint bug I found.)

@rocallahan rocallahan merged commit 822863c into rr-debugger:master Apr 28, 2024
4 checks passed
@rocallahan
Copy link
Collaborator

Thanks!

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

Successfully merging this pull request may close these issues.

3 participants