Skip to content

Commit

Permalink
Add more high level traces
Browse files Browse the repository at this point in the history
This accounts for more time when running rustc (which turns out to be a
significant amount of time).

I'm less sure about the start/wait calls but I'm seeing very different
results from different builds of `cargo` and some have some large
amounts of unaccounted time that I want to dig into (and callgrind and
and samply haven't helped).
  • Loading branch information
epage committed May 22, 2024
1 parent 145b225 commit 8cfcceb
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/cargo/core/compiler/build_context/target_info.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ impl TargetInfo {
/// invocation is cached by [`Rustc::cached_output`].
///
/// Search `Tricky` to learn why querying `rustc` several times is needed.
#[tracing::instrument(skip_all)]
pub fn new(
gctx: &GlobalContext,
requested_kinds: &[CompileKind],
Expand Down Expand Up @@ -878,6 +879,7 @@ pub struct RustcTargetData<'gctx> {
}

impl<'gctx> RustcTargetData<'gctx> {
#[tracing::instrument(skip_all)]
pub fn new(
ws: &Workspace<'gctx>,
requested_kinds: &[CompileKind],
Expand Down
2 changes: 2 additions & 0 deletions src/cargo/core/package.rs
Original file line number Diff line number Diff line change
Expand Up @@ -654,6 +654,7 @@ impl<'a, 'gctx> Downloads<'a, 'gctx> {
/// Returns `None` if the package is queued up for download and will
/// eventually be returned from `wait_for_download`. Returns `Some(pkg)` if
/// the package is ready and doesn't need to be downloaded.
#[tracing::instrument(skip_all)]
pub fn start(&mut self, id: PackageId) -> CargoResult<Option<&'a Package>> {
self.start_inner(id)
.with_context(|| format!("failed to download `{}`", id))
Expand Down Expand Up @@ -793,6 +794,7 @@ impl<'a, 'gctx> Downloads<'a, 'gctx> {
/// # Panics
///
/// This function will panic if there are no remaining downloads.
#[tracing::instrument(skip_all)]
pub fn wait(&mut self) -> CargoResult<&'a Package> {
let (dl, data) = loop {
assert_eq!(self.pending.len(), self.pending_ids.len());
Expand Down

0 comments on commit 8cfcceb

Please sign in to comment.