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

Handle TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION in Public Traces #7155

Open
edeiana opened this issue Dec 18, 2024 · 0 comments
Open

Handle TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION in Public Traces #7155

edeiana opened this issue Dec 18, 2024 · 0 comments

Comments

@edeiana
Copy link
Contributor

edeiana commented Dec 18, 2024

In future version of public traces (i.e., Google workload traces destined to public release) we want to preserve TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION markers in the resulting public trace.

This marker has as value the partial encoding of the uncompleted instruction.
Partial encoding does not allow us to generate an instr_t that we can then convert with instr_convert_to_isa_regdeps(), so we first need to retrieve the full encoding of the uncompleted instruction.
If we have the binary, the full encoding should be always be the instruction fetch at next PC, and if prior is branch we should have the target.
Another issue we need to solve is that a marker value can only contain up to 8 byte (in 64 bit arches) or a pointer-size amount of partial encoding, while DR_ISA_REGDEPS instruction encodings can be larger than that.

edeiana added a commit that referenced this issue Dec 18, 2024
)

Public traces should never have TRACE_MARKER_TYPE_SIGNAL_NUMBER markers.
Temporarily, we also disallow TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION
markers until we can handle their partial encoding. Eventually we want
to preserve them (xref: #7155).
We add two invariants in invariant_checker to detect the presence of
these markers in REGDEPS traces and raise an invariant error if necessary.

Updated unit tests and end-to-end tests.

Issue #6662 #7155
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant