-
Notifications
You must be signed in to change notification settings - Fork 86
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
hermit-sys: Network regression #128
Comments
Ah, indeed code related to network changed, in hermit-os/kernel@5f2d3b1...44eaa9f, but GitHub does not show the diff nicely. Edit: Nevermind, I was just confused by the force-push in libhermit and git diff... I have no idea, what could be the cause of this issue. 🤔 |
Bisecting |
I found the cause. Mutable noalias has been enabled by default in rust-lang/rust@39ed643. Reverting to the old behavior via Mutable noalias has enabled further optimizations of the reads and writes in I'll look into proper abstractions for volatile memory access, so we can prevent this from happening in other places as well. |
May be gnoliyil/fuchsia@914bdaf helps to understand the problem. |
Thanks for the Link! I think, we are not facing a miscompilation here though. A fix for that specific issue is in place since In the long term we should make sure to make all memory-mapped I/O accesses volatile, but to get things working again as soon as possible, we might want to disable |
135: Disable `mutable-noalias` r=stlankes a=mkroening Fixes #128. What do you think? Co-authored-by: Martin Kröning <[email protected]>
159: build.rs: Migrate to CARGO_ENCODED_RUSTFLAGS r=stlankes a=mkroening Fixes #158. Cargo introduced `CARGO_ENCODED_RUSTFLAGS` in rust-lang/cargo#9601 to make setting flags less error prone – it encodes arguments separated by `0x1f` (ASCII Unit Separator), instead of white spaces (old `RUSTFLAGS`). `CARGO_ENCODED_RUSTFLAGS` are preferred over the old `RUSTFLAGS` in cargo. For build scripts, cargo converts its `RUSTFLAGS` to `CARGO_ENCODED_RUSTFLAGS`. For unset `RUSTFLAGS` it is set to an empty string. Thus our build script would call cargo for building libhermit-rs with a set – but empty – `CARGO_ENCODED_RUSTFLAGS`, which takes precedence over our prepared `RUSTFLAGS`. Specifically this caused our `-Zmutable-noalias=no` flag to be ignored, causing the same network issue as #128 again. This PR adjusts our build script to make direct use of `CARGO_ENCODED_RUSTFLAGS`, the new and preferred way of handling flags in build scripts. This causes our flags to be correctly handled again. Co-authored-by: Martin Kröning <[email protected]>
I noticed this issue while rebasing #124.
While all updates on master since opening the PR bc3db32...fc6de5c seem to be unrelated to virtio, I can't get the netbench to work anymore.
fc6de5c
In both debug and release I see two ICMPv6 Multicast Listener Report Messages v2 (143) with Wireshark, but no ARP request for
10.0.5.1
.Strange that there are different outputs on debug and release...
debug
release
bc3db32 (debug/release)
The text was updated successfully, but these errors were encountered: