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 598992E62A4 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=1756977206; cv=none; b=syU6FgALXTcdF8NdIK4VNyYZkVt8YA+KgY7NSbyfsopr3xW05+HSnxFg5WquJF3ANUom9JmT3Clj7qwlicVSeoX5y+2rq5aEl+25W4qQjw6sLm44UGE9gc45mB04yyiPk3oUov7RHqRGBfGp6DNWEuKbxLAOFeKK1RssKNrpv4k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756977206; c=relaxed/simple; bh=LCQCDvTTg6TsARLGISATsQ/kxzcMm1+iW4lKAbCcSAE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Hus2UCCgn5Y6792+qsKtdIrB9Ijg71e2HfOxItVlUun4bDv77GcidBbSO6AKH2PWlhNACMTU48Ez9Xf5UBYa561eukTIjeXUA2j7Quru2SRWqmkmYXcn2GAQuNyEk9yNW/eS+ro62fnKKPlOWQrfirILpGmiZuWi53XypLPR/EI= 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=3EKc4+q1; 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="3EKc4+q1" 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=YOYMdo5cnnnUGFEJ9mu4zR++igVUwz5HqlcQExQb4vc=; b=3EKc4+q1IBx+zCIHaXR3vugEuR qQ2GlR9AxHvp4tMld5f3371ZQcwzu2VezLhACr9+sszpWn/70k8Fu3iATdbGKWQQCGpS852esaNwg o8khPOjALv5e+nk0ALeX4nNftw1jMwiqO6xtXQgKi12oNVMbeIzjRqZ2/92K8GrGxdaID1u/WK91v 3J1lsDnq77P2MpP8TYYgoO8GaFiDcf9eHjQz6uXtzF4Mrg59aTvZCJ2KMl4HG3PdV/37BumtlzluB IoTl23qcF/IMqtVhIGr0ODrDRb0o9UpdglEMR5cXXFgtyUZlUSpYL1BXdjUDAg61mKtEMNj0odIpu i4UX86/Q==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1uu61y-0000000AU8g-3xqy; 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 2/5] mmtests: add monitoring framework integration Date: Thu, 4 Sep 2025 02:13:18 -0700 Message-ID: <20250904091322.2499058-3-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 mmtests workflow, matching the implementation in fstests. This allows mmtests 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 - Make monitoring results path workflow-aware (fstests vs mmtests) With these changes, users can simply enable monitoring options in menuconfig and mmtests will automatically start/stop monitoring during test execution. Generated-by: Claude AI Signed-off-by: Luis Chamberlain --- .../roles/mmtests/tasks/install-deps/debian/main.yml | 1 + .../roles/mmtests/tasks/install-deps/redhat/main.yml | 1 + .../roles/mmtests/tasks/install-deps/suse/main.yml | 1 + playbooks/roles/mmtests/tasks/main.yaml | 12 ++++++++++++ playbooks/roles/monitoring/tasks/monitor_collect.yml | 11 ++++++++++- workflows/mmtests/Makefile | 8 ++++++++ 6 files changed, 33 insertions(+), 1 deletion(-) diff --git a/playbooks/roles/mmtests/tasks/install-deps/debian/main.yml b/playbooks/roles/mmtests/tasks/install-deps/debian/main.yml index 62de1e2a0c3e..7195ea527256 100644 --- a/playbooks/roles/mmtests/tasks/install-deps/debian/main.yml +++ b/playbooks/roles/mmtests/tasks/install-deps/debian/main.yml @@ -60,6 +60,7 @@ name: - trace-cmd - perf-tools-unstable + - python3-bpfcc state: present update_cache: true tags: ["deps"] diff --git a/playbooks/roles/mmtests/tasks/install-deps/redhat/main.yml b/playbooks/roles/mmtests/tasks/install-deps/redhat/main.yml index debfb577c906..c62ff09fdde5 100644 --- a/playbooks/roles/mmtests/tasks/install-deps/redhat/main.yml +++ b/playbooks/roles/mmtests/tasks/install-deps/redhat/main.yml @@ -52,6 +52,7 @@ - kernel-tools - trace-cmd - perf + - python3-bcc state: present tags: ["deps"] ignore_errors: true diff --git a/playbooks/roles/mmtests/tasks/install-deps/suse/main.yml b/playbooks/roles/mmtests/tasks/install-deps/suse/main.yml index 5a6c2b54c332..e357232d11a2 100644 --- a/playbooks/roles/mmtests/tasks/install-deps/suse/main.yml +++ b/playbooks/roles/mmtests/tasks/install-deps/suse/main.yml @@ -52,6 +52,7 @@ - kernel-default-devel - trace-cmd - perf + - python3-bcc state: present tags: ["deps"] ignore_errors: true diff --git a/playbooks/roles/mmtests/tasks/main.yaml b/playbooks/roles/mmtests/tasks/main.yaml index 6e9593662a6b..fd05843f8b2c 100644 --- a/playbooks/roles/mmtests/tasks/main.yaml +++ b/playbooks/roles/mmtests/tasks/main.yaml @@ -217,6 +217,12 @@ ansible.builtin.debug: msg: "Kernel version on {{ inventory_hostname }} : {{ kernel_version.stdout }}" +# Start monitoring services before running tests +- ansible.builtin.import_tasks: ../../monitoring/tasks/monitor_run.yml + when: + - enable_monitoring|default(false)|bool + tags: ["run_tests", "monitoring", "monitor_run"] + - name: Run mmtests in background tags: ["run_tests"] become: true @@ -239,6 +245,12 @@ retries: 1440 # 12 hours delay: 60 # check every 60 seconds +# Collect monitoring data after tests complete +- ansible.builtin.import_tasks: ../../monitoring/tasks/monitor_collect.yml + when: + - enable_monitoring|default(false)|bool + tags: ["run_tests", "monitoring", "monitor_collect"] + - name: Create local results directory delegate_to: localhost ansible.builtin.file: diff --git a/playbooks/roles/monitoring/tasks/monitor_collect.yml b/playbooks/roles/monitoring/tasks/monitor_collect.yml index f57a4e9d8106..967526b40428 100644 --- a/playbooks/roles/monitoring/tasks/monitor_collect.yml +++ b/playbooks/roles/monitoring/tasks/monitor_collect.yml @@ -110,7 +110,16 @@ - name: Set monitoring results path ansible.builtin.set_fact: - monitoring_results_path: "{{ monitoring_results_base_path | default(topdir_path + '/workflows/fstests/results/monitoring') }}" + monitoring_results_path: >- + {%- if monitoring_results_base_path is defined -%} + {{ monitoring_results_base_path }} + {%- elif kdevops_run_fstests|default(false)|bool -%} + {{ topdir_path }}/workflows/fstests/results/monitoring + {%- elif kdevops_workflow_enable_mmtests|default(false)|bool -%} + {{ topdir_path }}/workflows/mmtests/results/monitoring + {%- else -%} + {{ topdir_path }}/results/monitoring + {%- endif -%} - name: Create local monitoring results directory ansible.builtin.file: diff --git a/workflows/mmtests/Makefile b/workflows/mmtests/Makefile index 69db9505284d..c6248b95c05c 100644 --- a/workflows/mmtests/Makefile +++ b/workflows/mmtests/Makefile @@ -43,6 +43,12 @@ mmtests-compare: --tags deps,compare \ $(MMTESTS_ARGS) +monitor-results: $(KDEVOPS_EXTRA_VARS) + $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ + playbooks/monitor-results.yml \ + --extra-vars=@./extra_vars.yaml \ + $(MMTESTS_ARGS) + mmtests-clean: $(Q)ansible-playbook $(ANSIBLE_VERBOSE) \ playbooks/mmtests.yml \ @@ -58,6 +64,7 @@ mmtests-help: @echo "mmtests-tests : Run mmtests tests" @echo "mmtests-results : Copy results from guests" @echo "mmtests-compare : Compare baseline and dev results (AB testing)" + @echo "monitor-results : Collect interim monitoring data without stopping monitoring" @echo "mmtests-clean : Clean up mmtests installation" @echo "" @@ -69,6 +76,7 @@ PHONY +: mmtests-dev PHONY +: mmtests-tests PHONY +: mmtests-results PHONY +: mmtests-compare +PHONY +: monitor-results PHONY +: mmtests-clean PHONY +: mmtests-help .PHONY: $(PHONY) -- 2.45.2