All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ira Weiny <ira.weiny@intel.com>
To: Vishal Verma <vishal.l.verma@intel.com>
Cc: "Jiang, Dave" <dave.jiang@intel.com>,
	 "Schofield, Alison" <alison.schofield@intel.com>,
	 "Williams, Dan J" <dan.j.williams@intel.com>,
	linux-cxl@vger.kernel.org,  nvdimm@lists.linux.dev,
	Ira Weiny <ira.weiny@intel.com>
Subject: [PATCH ndctl v2] ndctl/cxl/test: Add CXL event test
Date: Mon, 31 Jul 2023 16:53:56 -0700	[thread overview]
Message-ID: <20230726-cxl-event-v2-1-550f5625d22f@intel.com> (raw)

Previously CXL event testing was run by hand.  This reduces testing
coverage including a lack of regression testing.

Add a CXL event test as part of the meson test infrastructure.  Passing
is predicated on receiving the appropriate number of errors in each log.
Individual event values are not checked.

Signed-off-by: Ira Weiny <ira.weiny@intel.com>
---
Changes in v2:
[djiang] run shellcheck and fix as needed                                                                             
[vishal] quote variables                                                                                              
[vishal] skip test if event_trigger is not available                                                                  
[vishal] remove dead code                                                                                             
[vishal] explicitly use the first memdev returned from cxl-cli                                                        
[vishal] store trace output in a variable                                                                             
[vishal] simplify grep statement looking for results                                                                  
[vishal] use variables for expected values                                                                            
- Link to v1: https://lore.kernel.org/r/20230726-cxl-event-v1-1-1cf8cb02b211@intel.com
---
 test/cxl-events.sh | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 test/meson.build   |  2 ++
 2 files changed, 78 insertions(+)

diff --git a/test/cxl-events.sh b/test/cxl-events.sh
new file mode 100644
index 000000000000..33b68daa6ade
--- /dev/null
+++ b/test/cxl-events.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2023 Intel Corporation. All rights reserved.
+
+. "$(dirname "$0")/common"
+
+# Results expected
+num_overflow_expected=1
+num_fatal_expected=2
+num_failure_expected=16
+num_info_expected=3
+
+set -ex
+
+trap 'err $LINENO' ERR
+
+check_prereq "jq"
+
+modprobe -r cxl_test
+modprobe cxl_test
+
+dev_path="/sys/bus/platform/devices"
+
+test_cxl_events()
+{
+	memdev="$1"
+
+	if [ ! -f "${dev_path}/${memdev}/event_trigger" ]; then
+		echo "TEST: Kernel does not support test event trigger"
+		exit 77
+	fi
+
+	echo "TEST: triggering $memdev"
+	echo 1 > "${dev_path}/${memdev}/event_trigger"
+}
+
+readarray -t memdevs < <("$CXL" list -b cxl_test -Mi | jq -r '.[].host')
+
+echo "TEST: Prep event trace"
+echo "" > /sys/kernel/tracing/trace
+echo 1 > /sys/kernel/tracing/events/cxl/enable
+echo 1 > /sys/kernel/tracing/tracing_on
+
+test_cxl_events "${memdevs[0]}"
+
+echo 0 > /sys/kernel/tracing/tracing_on
+
+echo "TEST: Events seen"
+trace_out=$(cat /sys/kernel/tracing/trace)
+
+num_overflow=$(grep -c "cxl_overflow" <<< "${trace_out}")
+num_fatal=$(grep -c "log=Fatal" <<< "${trace_out}")
+num_failure=$(grep -c "log=Failure" <<< "${trace_out}")
+num_info=$(grep -c "log=Informational" <<< "${trace_out}")
+echo "     LOG     (Expected) : (Found)"
+echo "     overflow      ($num_overflow_expected) : $num_overflow"
+echo "     Fatal         ($num_fatal_expected) : $num_fatal"
+echo "     Failure       ($num_failure_expected) : $num_failure"
+echo "     Informational ($num_info_expected) : $num_info"
+
+if [ "$num_overflow" -ne $num_overflow_expected ]; then
+	err "$LINENO"
+fi
+if [ "$num_fatal" -ne $num_fatal_expected ]; then
+	err "$LINENO"
+fi
+if [ "$num_failure" -ne $num_failure_expected ]; then
+	err "$LINENO"
+fi
+if [ "$num_info" -ne $num_info_expected ]; then
+	err "$LINENO"
+fi
+
+check_dmesg "$LINENO"
+
+modprobe -r cxl_test
diff --git a/test/meson.build b/test/meson.build
index a956885f6df6..a33255bde1a8 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -155,6 +155,7 @@ cxl_sysfs = find_program('cxl-region-sysfs.sh')
 cxl_labels = find_program('cxl-labels.sh')
 cxl_create_region = find_program('cxl-create-region.sh')
 cxl_xor_region = find_program('cxl-xor-region.sh')
+cxl_events = find_program('cxl-events.sh')
 
 tests = [
   [ 'libndctl',               libndctl,		  'ndctl' ],
@@ -183,6 +184,7 @@ tests = [
   [ 'cxl-labels.sh',          cxl_labels,	  'cxl'   ],
   [ 'cxl-create-region.sh',   cxl_create_region,  'cxl'   ],
   [ 'cxl-xor-region.sh',      cxl_xor_region,     'cxl'   ],
+  [ 'cxl-events.sh',          cxl_events,         'cxl'   ],
 ]
 
 if get_option('destructive').enabled()

---
base-commit: 2fd570a0ed788b1bd0971dfdb1466a5dbcb79775
change-id: 20230726-cxl-event-dc00a2f94b60

Best regards,
-- 
Ira Weiny <ira.weiny@intel.com>


             reply	other threads:[~2023-07-31 23:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-31 23:53 Ira Weiny [this message]
2023-08-01  0:31 ` [PATCH ndctl v2] ndctl/cxl/test: Add CXL event test Verma, Vishal L
2023-08-01 19:13   ` Ira Weiny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230726-cxl-event-v2-1-550f5625d22f@intel.com \
    --to=ira.weiny@intel.com \
    --cc=alison.schofield@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=nvdimm@lists.linux.dev \
    --cc=vishal.l.verma@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.