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 56C8E2E6106 for ; Thu, 4 Sep 2025 09:13:23 +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=1756977204; cv=none; b=BidsqfuqV7NFzbN9YvJCMkq0UuM3iRFMS5t0Fvl8Ov3jAXl5nzDa0atcQOhCrWxIG3MPOLDYK5qMS557MckylulFfgy/lfUo2vUG84GP/BL71sr5S/oUp7xYex6zJA0N+xjpaLk7UcHWJrKc1XMeanBLoPOr7FP+45x7V5X0BI8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756977204; c=relaxed/simple; bh=KCVjjdmgl+dAebl+QuTjRmxBUMdoviK17mbNwkk13DA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GzcFm8VnD9pwyGarq29luF59ol74yqkBzKiJ03RPidO/cAidCSjJ5p7rbDxz0osi+slhGwd7P3uGRgDGIsF08tCyh3is8yBKdkyL85mocq4DE0+ojJ2qk78T0Mokrf3JK0kBX1S/H7h6QMkMQl+DOCN7+ooCa1yksTiBTzB13CM= 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=YtO0rc9g; 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="YtO0rc9g" 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=iywJ0y2PE2HOTNdnbITDcyASgW7EbUzcFsSmWQwcf40=; b=YtO0rc9gmSgkxMxVMcSmjzDTjl WLkDGtd4bZDR/UcyNsZ6QwIDtx0Rkmj9uUZ1QZ/1mKccjMYHsUFS0RX0ckNujoaxeqVo1cNmTwNqM Hc8i8ZuVMqxZX/A4ydCnMM7yL0m7hEKslBEIsclxO2IRiLp9mO2INNPh6X4nSgK0xETTWbdz9q6Pq zPgdzaQGVbBfvbq/3G+8tLso439Y5K67S5h0JriAgMRRhCgweu+MVcaR/IMQUYSZTryPom2gKmqez zy1JUoJmwF+9Dyx19VdXUEJ41/5aVUGf5Se7Egt5JMLavMVcqZVLjZZf6J00PqcVAlAx9sUD+k/oI ro1UeIlA==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1uu61y-0000000AU8n-46AM; Thu, 04 Sep 2025 09:13:22 +0000 From: Luis Chamberlain To: Chuck Lever , Daniel Gomez , kdevops@lists.linux.dev Cc: Luis Chamberlain Subject: [PATCH 3/5] sysbench: add monitoring framework integration Date: Thu, 4 Sep 2025 02:13:19 -0700 Message-ID: <20250904091322.2499058-4-mcgrof@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250904091322.2499058-1-mcgrof@kernel.org> References: <20250904091322.2499058-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 Add support for the monitoring framework to sysbench workflow, matching the implementation in other workflows. This allows sysbench to leverage all monitoring capabilities including the new eBPF fragmentation monitoring. Changes: - Import monitor_run tasks before test execution - Import monitor_collect tasks after test completion - Add monitor-results make target for interim data collection - Add sysbench to monitoring results path detection - Install python3-bpfcc/python3-bcc dependency across all distributions With these changes, users can simply enable monitoring options in menuconfig and sysbench will automatically start/stop monitoring during test execution. Generated-by: Claude AI Signed-off-by: Luis Chamberlain --- playbooks/roles/monitoring/tasks/monitor_collect.yml | 2 ++ .../sysbench/tasks/install-deps/debian/main.yml | 2 ++ .../sysbench/tasks/install-deps/redhat/main.yml | 1 + .../roles/sysbench/tasks/install-deps/suse/main.yml | 1 + playbooks/roles/sysbench/tasks/main.yaml | 12 ++++++++++++ workflows/sysbench/Makefile | 8 +++++++- 6 files changed, 25 insertions(+), 1 deletion(-) diff --git a/playbooks/roles/monitoring/tasks/monitor_collect.yml b/playbooks/roles/monitoring/tasks/monitor_collect.yml index 967526b40428..9662f827301f 100644 --- a/playbooks/roles/monitoring/tasks/monitor_collect.yml +++ b/playbooks/roles/monitoring/tasks/monitor_collect.yml @@ -117,6 +117,8 @@ {{ topdir_path }}/workflows/fstests/results/monitoring {%- elif kdevops_workflow_enable_mmtests|default(false)|bool -%} {{ topdir_path }}/workflows/mmtests/results/monitoring + {%- elif kdevops_workflow_enable_sysbench|default(false)|bool -%} + {{ topdir_path }}/workflows/sysbench/results/monitoring {%- else -%} {{ topdir_path }}/results/monitoring {%- endif -%} diff --git a/playbooks/roles/sysbench/tasks/install-deps/debian/main.yml b/playbooks/roles/sysbench/tasks/install-deps/debian/main.yml index bd091389edf8..0a7943640797 100644 --- a/playbooks/roles/sysbench/tasks/install-deps/debian/main.yml +++ b/playbooks/roles/sysbench/tasks/install-deps/debian/main.yml @@ -25,6 +25,7 @@ - docker.io - locales - rsync + - python3-bpfcc state: present update_cache: true tags: ["deps"] @@ -72,6 +73,7 @@ name: - locales - rsync + - python3-bpfcc state: present update_cache: true when: "sysbench_type_postgresql_native|bool" diff --git a/playbooks/roles/sysbench/tasks/install-deps/redhat/main.yml b/playbooks/roles/sysbench/tasks/install-deps/redhat/main.yml index 9b780db2dd13..04e67434fb5b 100644 --- a/playbooks/roles/sysbench/tasks/install-deps/redhat/main.yml +++ b/playbooks/roles/sysbench/tasks/install-deps/redhat/main.yml @@ -22,3 +22,4 @@ vars: packages: - docker + - python3-bcc diff --git a/playbooks/roles/sysbench/tasks/install-deps/suse/main.yml b/playbooks/roles/sysbench/tasks/install-deps/suse/main.yml index f9e78f3881ad..0dfb2f651670 100644 --- a/playbooks/roles/sysbench/tasks/install-deps/suse/main.yml +++ b/playbooks/roles/sysbench/tasks/install-deps/suse/main.yml @@ -62,6 +62,7 @@ ansible.builtin.package: name: - docker + - python3-bcc state: present when: - repos_present|bool diff --git a/playbooks/roles/sysbench/tasks/main.yaml b/playbooks/roles/sysbench/tasks/main.yaml index 77c57d6a9dee..bd550428d8c7 100644 --- a/playbooks/roles/sysbench/tasks/main.yaml +++ b/playbooks/roles/sysbench/tasks/main.yaml @@ -30,6 +30,12 @@ name: create_data_partition tags: ["mkfs"] +# Start monitoring services before running tests +- ansible.builtin.import_tasks: ../../monitoring/tasks/monitor_run.yml + when: + - enable_monitoring|default(false)|bool + tags: ["run_sysbench", "monitoring", "monitor_run"] + - name: MySQL Docker ansible.builtin.import_tasks: mysql-docker/main.yaml when: sysbench_type_mysql_docker | bool @@ -37,3 +43,9 @@ - name: PostgreSQL Native ansible.builtin.import_tasks: postgresql-native/main.yaml when: sysbench_type_postgresql_native | bool + +# Collect monitoring data after tests complete +- ansible.builtin.import_tasks: ../../monitoring/tasks/monitor_collect.yml + when: + - enable_monitoring|default(false)|bool + tags: ["run_sysbench", "monitoring", "monitor_collect"] diff --git a/workflows/sysbench/Makefile b/workflows/sysbench/Makefile index 66e594d34841..45347d79ed1f 100644 --- a/workflows/sysbench/Makefile +++ b/workflows/sysbench/Makefile @@ -1,4 +1,4 @@ -PHONY += sysbench sysbench-test sysbench-telemetry sysbench-help-menu +PHONY += sysbench sysbench-test sysbench-telemetry sysbench-help-menu monitor-results TAGS_SYSBENCH_RUN := db_start @@ -47,6 +47,11 @@ sysbench-results: playbooks/sysbench.yml \ --tags $(subst $(space),$(comma),$(TAGS_SYSBENCH_RESULTS)) +monitor-results: $(KDEVOPS_EXTRA_VARS) + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + playbooks/monitor-results.yml \ + --extra-vars=@./extra_vars.yaml + sysbench-clean: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ playbooks/sysbench.yml \ @@ -65,6 +70,7 @@ sysbench-help-menu: @echo "sysbench-test - Run sysbench tests and collect results (with telemetry)" @echo "sysbench-telemetry - Gather sysbench telemetry data on each node" @echo "sysbench-results - Collect all sysbench results onto local host" + @echo "monitor-results - Collect interim monitoring data without stopping monitoring" @echo "sysbench-clean - Remove any previous results on node and host" @echo "" -- 2.45.2