-
Notifications
You must be signed in to change notification settings - Fork 153
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
CI failing due to jemalloc symbol changes #2028
Comments
Yes, it was indeed that PR. I will take a look at how to fix rustc-perf's CI (I didn't understand lqd's comment first, now I get it). |
Yeah, just also bisected/confirmed it was that PR. |
After that PR, jemalloc functions are used directly as malloc/free/etc. function symbols, if I understand it correctly, so this special detection no longer works. I suppose that we can just remove that check from the |
Hm, I thought that was already the case? Or are you saying we removed a layer of indirection where previously there was some kind of malloc stub function between the rustc alloc and the jemalloc alloc, that got removed with LTO? I'd sort of expect that the detection should still work though since presumably not all of jemalloc's code got inlined and we'd expect some of it to be present? Maybe we turned off debuginfo at some point and so that's why we're no longer able to determine that it's jemalloc vs. not? |
I'm generally OK dropping the check, it seems likely that we still get attribution to at least malloc() hopefully? That might be good to check -- otherwise it can be hard to interpret diffs if it's mostly due to allocator traffic increasing. |
Yes, but I'm actually surprised that LTO was what caused it to happen. Because we should have been doing that even before due to usage of
Yes, together with the LTO change, we also started stripping debuginfo from the
I will try to add some extra allocations to the compiler and see what happens in the profiles. |
The symbol names are different than before, and they are no longer unified under the "all-jemalloc-functions" group. But entries like malloc/realloc/... (and other malloc abstraction functions) are still visible in the profile. |
It looks like rust-lang/rust#134690 may have changed the jemalloc symbols (or perhaps a previous PR, haven't bisected yet):
I suspect that also affected valgrind's detection of hitting jemalloc code and as a result we no longer see it in profiles, though it's also in theory possible LTO just optimized the code better...
The text was updated successfully, but these errors were encountered: