From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3C8BE2E2F09 for ; Mon, 11 Aug 2025 22:24:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.137.202.133 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754951096; cv=none; b=awpHaKBV4QsJYHWh9DBiW2O9xnFjasyE4QpmYMnQfHa4bWoX13epQh/c8bys2HgFk9xUAQMkVsvobDm3Nq/cJ03gF79/PZZG4Qc61OjIg6UQwdsr6vBD2BaoAw9beVLLSwWJuolEYsa0mOaGSINYuFjc7x3PchXzADDmjKezTLk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754951096; c=relaxed/simple; bh=BHnil2WGpp6Z6h73KC19aEww6nPG4Fb+NpGTqvdd1vQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=drAhH+YRwwnlJOeJ2IoC1jZ6ZQFiTp5YOwZW7uGNqcTeYTymeJnHaSWoSCqoN8C4o8BbxGfuIWGqJjmBZUqCdmIqJ4TNDnJhaoag+2RMbosK77VcOZ0aVy6xiU9er13iibDAi0iAfeC+jnDTi5b9OPaptm0zAGVFUZsynVnEJi4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org; spf=none smtp.mailfrom=infradead.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b=DIZzYBQ+; arc=none smtp.client-ip=198.137.202.133 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=infradead.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="DIZzYBQ+" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=e0qOhRHXfrlONb4DzH6pV8h97rhYkPPD7mQCLe6kkkA=; b=DIZzYBQ+VZ6e2OdoeX9sjpftFo 78BjnGe8y4lLfn4p0uo8TqWMW2SRDxrjI7E/qPL00ime+p9bmBm+uE30/GXT/JzrhrN+HmoTxAU4M cYLqsacYEXpeF4abIPPZ6UKRR3t/NBSaIpUbZRtjB7Ubtxe2Wk66SytGr6aqptjdXm+4TynuGVqdR F9yF5bUPb+38LGZBMg2308SEmTdvBMkFLyLblq+FkfT3prAZWsXk/icLsXH3xk6QDMOn3reJvw3RE y+G8H2cbBEXzHm+OrBrMO4TNY2GlJgTrK7PJ/R+7md537B9+oHXmjJRLm5YvyHEwCBVSEGAeTV7vc zg7h1YqQ==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1ulawn-00000009Hjs-2LIh; Mon, 11 Aug 2025 22:24:53 +0000 From: Luis Chamberlain To: Chuck Lever , Daniel Gomez , kdevops@lists.linux.dev Cc: Luis Chamberlain Subject: [PATCH 13/23] reboot-limit: save graphs in organized results/graphs directory Date: Mon, 11 Aug 2025 15:24:40 -0700 Message-ID: <20250811222452.2213071-14-mcgrof@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250811222452.2213071-1-mcgrof@kernel.org> References: <20250811222452.2213071-1-mcgrof@kernel.org> Precedence: bulk X-Mailing-List: kdevops@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: Luis Chamberlain Update the graph visualization to save output files in a more organized location under workflows/demos/reboot-limit/results/graphs/. This keeps the results directory better organized by separating raw data from generated visualizations. The analyze_results.py script now automatically creates the graphs subdirectory if it doesn't exist, ensuring a clean directory structure for the workflow results. Generated-by: Claude AI Signed-off-by: Luis Chamberlain --- scripts/workflows/demos/reboot-limit/analyze_results.py | 9 +++++++-- workflows/demos/reboot-limit/Makefile | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/workflows/demos/reboot-limit/analyze_results.py b/scripts/workflows/demos/reboot-limit/analyze_results.py index 8842b409..bfd6f41a 100755 --- a/scripts/workflows/demos/reboot-limit/analyze_results.py +++ b/scripts/workflows/demos/reboot-limit/analyze_results.py @@ -112,6 +112,11 @@ class RebootLimitAnalyzer: print("No data to plot") return + # Ensure the output directory exists + output_path = Path(output_file) + if output_path.parent != Path("."): + output_path.parent.mkdir(parents=True, exist_ok=True) + # Create figure with subplots num_hosts = len(self.hosts_data) fig, axes = plt.subplots(num_hosts, 2, figsize=(14, 6 * num_hosts)) @@ -264,8 +269,8 @@ def main(): parser.add_argument( "-o", "--output", - default="reboot_limit_analysis.png", - help="Output filename for plot (default: reboot_limit_analysis.png)", + default="workflows/demos/reboot-limit/results/graphs/reboot_limit_analysis.png", + help="Output filename for plot (default: workflows/demos/reboot-limit/results/graphs/reboot_limit_analysis.png)", ) parser.add_argument( "--no-plot", action="store_true", help="Skip plotting, only show summary" diff --git a/workflows/demos/reboot-limit/Makefile b/workflows/demos/reboot-limit/Makefile index f1411daf..abc5b3d0 100644 --- a/workflows/demos/reboot-limit/Makefile +++ b/workflows/demos/reboot-limit/Makefile @@ -194,7 +194,7 @@ reboot-limit-results: $(Q)python3 scripts/workflows/demos/reboot-limit/analyze_results.py reboot-limit-graph: reboot-limit-results - $(Q)echo "Graph saved to reboot_limit_analysis.png" + $(Q)echo "Graph saved to workflows/demos/reboot-limit/results/graphs/reboot_limit_analysis.png" reboot-limit-help-menu: @echo "reboot-limit options:" -- 2.47.2