Project homepage Mailing List  Warmcat.com  API Docs  Github Mirror 
    npro  
 Modern all-safe Rust Network Protocol library supporting h1, h2, h3, ws, wt sans-IO and with socket IO + tls
git clone https://npro.rs/repo/npro
Author[]Andy Green <andy@warmcat.com> 2025-08-25 07:11 UTC
Committer[]Andy Green <andy@warmcat.com> 2025-08-25 07:43 UTC
Treeb480678b6145403edcf134124c583f55848a87c1   Raw Patch
 
feat: Log disk usage and timing after each build step
feat: Log disk usage and timing after each build step

Co-developed-by: Gemini 2.5 Pro
diff --git a/src/builder/b-mirror.c b/src/builder/b-mirror.c index 2be2e16..96b33c6 100644 --- a/src/builder/b-mirror.c +++ b/src/builder/b-mirror.c @@ -162,7 +162,7 @@ static const char * const git_helper_bat = "exit /b 1\n"; #endif -static void sai_git_mirror_reap_cb(void *opaque, lws_usec_t *accounting, +static void sai_git_mirror_reap_cb(void *opaque, const struct lws_spawn_resource_us *res, siginfo_t *si, int we_killed_him); static void @@ -174,7 +174,7 @@ saib_start_mirror_cb(lws_sorted_usec_list_t *sul) } static void -sai_git_checkout_reap_cb(void *opaque, lws_usec_t *accounting, siginfo_t *si, +sai_git_checkout_reap_cb(void *opaque, const struct lws_spawn_resource_us *res, siginfo_t *si, int we_killed_him) { struct saib_opaque_spawn *op = (struct saib_opaque_spawn *)opaque; @@ -220,7 +220,7 @@ onward: } static void -sai_git_mirror_reap_cb(void *opaque, lws_usec_t *accounting, siginfo_t *si, +sai_git_mirror_reap_cb(void *opaque, const struct lws_spawn_resource_us *res, siginfo_t *si, int we_killed_him) { struct saib_opaque_spawn *op = (struct saib_opaque_spawn *)opaque; diff --git a/src/builder/b-nspawn.c b/src/builder/b-nspawn.c index e60fbe8..b603b19 100644 --- a/src/builder/b-nspawn.c +++ b/src/builder/b-nspawn.c @@ -152,7 +152,7 @@ struct lws_protocols protocol_stdxxx = static void -sai_lsp_reap_cb(void *opaque, lws_usec_t *accounting, siginfo_t *si, +sai_lsp_reap_cb(void *opaque, const lws_spawn_resource_us_t *res, siginfo_t *si, int we_killed_him) { struct saib_opaque_spawn *op = (struct saib_opaque_spawn *)opaque; @@ -168,9 +168,6 @@ sai_lsp_reap_cb(void *opaque, lws_usec_t *accounting, siginfo_t *si, saib_log_chunk_create(ns, ">saib> Reaping build process\n", 29, 3); #if !defined(WIN32) - lwsl_notice("%s: reaped: timing %dms %dms %dms %dms\n", __func__, - (int)(accounting[0] / 1000), (int)(accounting[1] / 1000), - (int)(accounting[2] / 1000), (int)(accounting[3] / 1000)); if (we_killed_him & 1) { lwsl_notice("%s: Process TIMED OUT by Sai\n", __func__); @@ -215,7 +212,17 @@ sai_lsp_reap_cb(void *opaque, lws_usec_t *accounting, siginfo_t *si, /* step succeeded */ - n = lws_snprintf(s, sizeof(s), "Build step %d OK", ns->build_step + 1); + lws_dir_du_t du; + + memset(&du, 0, sizeof(du)); + lws_dir(ns->inp, &du, lws_dir_du_cb); + + n = lws_snprintf(s, sizeof(s), + ">saib> Step %d OK: cpu %llums + %llums, %llu bytes\n", + ns->build_step + 1, + (unsigned long long)res->us_cpu_user / 1000, + (unsigned long long)res->us_cpu_sys / 1000, + (unsigned long long)du.size_in_bytes); saib_log_chunk_create(ns, s, (size_t)n, 3); ns->build_step++; @@ -450,6 +457,7 @@ saib_spawn_step(struct sai_nspawn *ns) info.max_log_lines = 10000; info.timeout_us = 30 * 60 * LWS_US_PER_SEC; info.reap_cb = sai_lsp_reap_cb; + info.res = &ns->res; #if defined(__linux__) info.cgroup_name_suffix = cgroup; info.p_cgroup_ret = &in_cgroup; diff --git a/src/common/include/private.h b/src/common/include/private.h index 42fe44f..225d983 100644 --- a/src/common/include/private.h +++ b/src/common/include/private.h @@ -165,6 +165,8 @@ struct sai_nspawn { lws_dll2_owner_t artifact_owner; /* struct artifact_path */ + lws_spawn_resource_us_t res; + lws_sorted_usec_list_t sul_cleaner; lws_sorted_usec_list_t sul_mirror; lws_sorted_usec_list_t sul_task_cancel;
Page fetched 0s ago, creation time: 9ms (vhost etag hits: 0%, cache hits: 0%)