From eedf82225b42230496e833419d82b60a1dc06e89 Mon Sep 17 00:00:00 2001 From: andreastaliad Date: Fri, 22 May 2026 21:54:18 +0300 Subject: [PATCH] maybe hopefully fixed cpu fork logging --- fork_bomb/fork_bomb.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/fork_bomb/fork_bomb.c b/fork_bomb/fork_bomb.c index 07899c9..fed2c94 100644 --- a/fork_bomb/fork_bomb.c +++ b/fork_bomb/fork_bomb.c @@ -260,7 +260,7 @@ int main(void) perror("fopen csv"); return 1; } - fprintf(csv, "timestamp,elapsed_s,load1,load5,load15,mem_total_kb,mem_available_kb,mem_used_kb,proc_count,thread_count_total,pid,cpu_pct,sys_cpu_pct,rss_kb,vsz_kb,stack_kb,heap_kb,proc_threads\n"); + fprintf(csv, "timestamp,elapsed_s,load1,load5,load15,mem_total_kb,mem_available_kb,mem_used_kb,proc_count,thread_count_total,pid,cpu_pct,sys_cpu_pct,forks_per_sec,rss_kb,vsz_kb,stack_kb,heap_kb,proc_threads\n"); long count = 0; long prev_proc_count = 0; @@ -273,6 +273,8 @@ int main(void) long prev_ticks = read_self_ticks(); double prev_uptime = read_uptime(); + long prev_count = count; + double prev_sample_uptime = start_uptime; long clk_tck = sysconf(_SC_CLK_TCK); if (clk_tck <= 0) { clk_tck = 100; @@ -341,13 +343,21 @@ int main(void) prev_cpu_total = cpu_total; prev_cpu_idle = cpu_idle; + double sample_dt = now_uptime - prev_sample_uptime; + double forks_per_sec = 0.0; + if (sample_dt > 0.0) { + forks_per_sec = (double)(count - prev_count) / sample_dt; + } + prev_count = count; + prev_sample_uptime = now_uptime; + char ts[64]; format_timestamp(ts, sizeof(ts)); - fprintf(csv, "%s,%.3f,%.2f,%.2f,%.2f,%ld,%ld,%ld,%ld,%ld,%ld,%.2f,%.2f,%ld,%ld,%ld,%ld,%ld\n", + fprintf(csv, "%s,%.3f,%.2f,%.2f,%.2f,%ld,%ld,%ld,%ld,%ld,%ld,%.2f,%.2f,%.2f,%ld,%ld,%ld,%ld,%ld\n", ts, elapsed_s, load1, load5, load15, mem_total, mem_avail, mem_used, proc_count, thread_total, - (long)getpid(), cpu_pct, sys_cpu_pct, rss, vsz, stk, heap, proc_threads); + (long)getpid(), cpu_pct, sys_cpu_pct, forks_per_sec, rss, vsz, stk, heap, proc_threads); fflush(csv); } }