State what emulation cannot show, because it looks exactly like a defect - #29
Merged
Merged
Conversation
An aarch64 build measured on an x86_64 machine through qemu-user holds every observation except the ones that START a program of the same foreign architecture. The kernel runs a native binary directly and the emulated process stops being emulated; a foreign one has to be re-entered through binfmt_misc from inside an already-emulated process, which qemu-user does not do.⚠️ Recorded because the shape is indistinguishable from a real failure: `execveat` answers ENOENT for a path that exists, while the same call in the same run starts /bin/sh correctly. Two things establish that it is the emulator: the release BEFORE this one fails identically, and a consumer's 108 tests --- which start helper programs rather than copies of themselves --- pass on both architectures.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
An aarch64 build measured on an x86_64 machine through qemu-user holds every
observation except the ones that START a program of the same foreign
architecture. The kernel runs a native binary directly and the emulated process
stops being emulated; a foreign one has to be re-entered through binfmt_misc
from inside an already-emulated process, which qemu-user does not do.
execveatanswers ENOENT for a path that exists, while the same call in thesame run starts /bin/sh correctly. Two things establish that it is the emulator:
the release BEFORE this one fails identically, and a consumer's 108 tests ---
which start helper programs rather than copies of themselves --- pass on both
architectures.