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

Hypervisor: drive mtinst/htinst #3624

Merged
merged 1 commit into from
Apr 23, 2024
Merged

Hypervisor: drive mtinst/htinst #3624

merged 1 commit into from
Apr 23, 2024

Conversation

ingallsj
Copy link
Contributor

Related issue:

Doing this feature as required by the architecture:

For guest-page faults, the trap instruction register is written with a special pseudoinstruction value if:
(a) the fault is caused by an implicit memory access for VS-stage address translation, and
(b) a nonzero value (the faulting guest physical address) is written to mtval2 or htval.
If both conditions are met, the value written to mtinst or htinst must be taken from the table below; zero is not allowed.

Paying off this tech debt from #2841

The mtinst and htinst CSRs are hardwired to 0, placing additional onus on hypervisor software to use the HLVX instruction.

Type of change: bug report | feature request

Impact: functional addition

Development Phase: implementation

Release Notes
Guest-page faults caused by an implicit memory access for VS-stage address translation write the architecturally-defined pseudo-instruction to mtinst or htinst because a nonzero value (the faulting guest physical address) is written to mtval2 or htval.

@jerryz123 jerryz123 changed the base branch from master to dev April 23, 2024 18:25
@jerryz123 jerryz123 merged commit 65164f8 into dev Apr 23, 2024
26 checks passed
@jerryz123 jerryz123 deleted the mhtinst branch April 23, 2024 21:13
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