-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
Task accounting statistics #2931
Comments
It'd also be nice to be able to give tasks names. |
oh, yeah, there's a hole for that already in the runtime code, just no way to do it. |
Yeah, ideally we'd have |
|
I think that's basically it. |
hey @eholk, what do you think of this scary comment in rust_task.h?
EDIT: it's ok as is, because the only args are ever "main" or NULL. it's just hinting that it needs a strdup. |
Yeah, I was thinking maybe just allocate a fixed sized char buffer and copy the string into it. |
still valid, and I think important enough for production use (accounting / profiling of tasks in general) that I'm going to nominate for production ready. |
Some stats relevant to the new scheduler:
|
accepted for well-covered milestone |
See also #6810 |
Re-nominating in order to de-milestone this; we're trying to cut back the milestones to a more manageable size and this doesn't seem like a blocker to me. |
Just a bug, de-milestoning |
Triage bump, fixed according to #2891 |
#17325 means this isn't relevant to the standard libraries anymore. The usual profiling tools can be used with native threads and the libraries themselves won't have the necessary information. |
Treat thread-local statics on main thread as static roots for leakage analysis Miri currently treats allocations as leaked if they're only referenced in thread-local statics. For threads other than the main thread, this is correct, since the thread can terminate before the program does, but references in the main thread's locals should be treated as living for the duration of the program since the thread lives for the duration of the program. This PR adds thread-local statics and TLS keys as "static roots" for leakage analysis, but does not yet bless the example program from rust-lang#2881. See rust-lang/miri#2881 (comment) Closes rust-lang#2881
…eMIR (rust-lang#2931) Migrate most of the operand code generation to use StableMIR APIs, and static handling. This change is so far the one that required some re-work, since constants in StableMIR differ a bit from internal APIs. In the Rust compiler internal APIs, constant values can be using either: Scalar, Slice, Indirect (represented by an Allocation), and ZST. In the StableAPIs, a constant value is always represented with an Allocation. To avoid making changes to the final gotoc, we generate code for allocations in two steps, we first try to generate just a regular constant literal if the constant is small (similar logic to handling the Scalar internal type). For more complex cases, we create an allocation and read from it, similar to how Indirect / Slice internal handling used to work. --------- Co-authored-by: Zyad Hassan <[email protected]>
It would be cool if the scheduler exposed statistics about tasks. Currently all I have in mind is time alive / time on CPU / time blocked.
The text was updated successfully, but these errors were encountered: