[llvm] 6d3d952 - [XRay][account] add account test for nonempty exit mismatch (#93564)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 1 09:52:42 PST 2025
Author: Tomer Shafir
Date: 2025-01-01T09:52:38-08:00
New Revision: 6d3d952f11d350f6ad2cd6199681af158f4bd397
URL: https://github.com/llvm/llvm-project/commit/6d3d952f11d350f6ad2cd6199681af158f4bd397
DIFF: https://github.com/llvm/llvm-project/commit/6d3d952f11d350f6ad2cd6199681af158f4bd397.diff
LOG: [XRay][account] add account test for nonempty exit mismatch (#93564)
- Add `llvm-xray account` regression test for an exit mismatch with a
non empty stack (its a different code path than empty stack).
- Align empty stack test case name.
Added:
llvm/test/tools/llvm-xray/X86/account-exit-mismatch-empty-stack-error.yaml
llvm/test/tools/llvm-xray/X86/account-exit-mismatch-non-empty-stack-error.yaml
Modified:
llvm/test/tools/llvm-xray/X86/account-keep-going.yaml
Removed:
llvm/test/tools/llvm-xray/X86/account-empty-stack-error.yaml
################################################################################
diff --git a/llvm/test/tools/llvm-xray/X86/account-empty-stack-error.yaml b/llvm/test/tools/llvm-xray/X86/account-exit-mismatch-empty-stack-error.yaml
similarity index 100%
rename from llvm/test/tools/llvm-xray/X86/account-empty-stack-error.yaml
rename to llvm/test/tools/llvm-xray/X86/account-exit-mismatch-empty-stack-error.yaml
diff --git a/llvm/test/tools/llvm-xray/X86/account-exit-mismatch-non-empty-stack-error.yaml b/llvm/test/tools/llvm-xray/X86/account-exit-mismatch-non-empty-stack-error.yaml
new file mode 100644
index 00000000000000..72331107057fe5
--- /dev/null
+++ b/llvm/test/tools/llvm-xray/X86/account-exit-mismatch-non-empty-stack-error.yaml
@@ -0,0 +1,31 @@
+#RUN: not llvm-xray account %s -o - -m %S/Inputs/simple-instrmap.yaml -d 2>&1 | FileCheck %s
+#RUN: llvm-xray account %s -k -o - -m %S/Inputs/simple-instrmap.yaml -d 2>&1 | FileCheck %s --check-prefix=KEEPGOING
+
+---
+header:
+ version: 1
+ type: 0
+ constant-tsc: true
+ nonstop-tsc: true
+ cycle-frequency: 0
+records:
+# An exit record doesn't match an entry record on a non empty stack with sibling call deduction.
+# This can happen for example when an instrumented function does a 'fork()',
+# where the child process will not see
+# the entry record but see the exit record. This is completely valid data,
+# which should be handled with grace (i.e. we treat it as an error, but since
+# the llvm-xray account tool has an option to keep going, gives the user a
+# chance to retry).
+ - { type: 0, func-id: 1, cpu: 1, thread: 1, kind: function-enter, tsc: 10000 }
+ - { type: 0, func-id: 4, cpu: 1, thread: 1, kind: function-exit, tsc: 10001 }
+ - { type: 0, func-id: 1, cpu: 1, thread: 1, kind: function-exit, tsc: 10002 }
+...
+
+#CHECK: Error processing record: {{.*}}
+#CHECK-NEXT: Thread ID: 1
+#CHECK-NEXT: #1 @(1)
+#CHECK-NEXT: llvm-xray: Failed accounting function calls in file '{{.*}}'.
+
+#KEEPGOING: Error processing record: {{.*}}
+#KEEPGOING-NEXT: Thread ID: 1
+#KEEPGOING-NEXT: #1 @(1)
diff --git a/llvm/test/tools/llvm-xray/X86/account-keep-going.yaml b/llvm/test/tools/llvm-xray/X86/account-keep-going.yaml
index 76011ee8e6e5e6..fb1a8f422bad76 100644
--- a/llvm/test/tools/llvm-xray/X86/account-keep-going.yaml
+++ b/llvm/test/tools/llvm-xray/X86/account-keep-going.yaml
@@ -7,8 +7,8 @@ header:
nonstop-tsc: true
cycle-frequency: 0
records:
-# We want to test the case for when we see spurious exits, but keep going
-# anyway ignoring the records in the process.
+# We want to test the case for when we see spurious exits without sibling call deduction,
+# but keep going anyway ignoring the records in the process.
- { type: 0, func-id: 1, cpu: 1, thread: 111, kind: function-enter, tsc: 10000 }
- { type: 0, func-id: 2, cpu: 1, thread: 111, kind: function-enter, tsc: 10001 }
- { type: 0, func-id: 3, cpu: 1, thread: 111, kind: function-enter, tsc: 10002 }
More information about the llvm-commits
mailing list