summary refs log tree commit diff stats
path: root/results/classifier/118/TCG/2647
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-06-16 16:59:00 +0000
committerChristian Krinitsin <mail@krinitsin.com>2025-06-16 16:59:33 +0000
commit9aba81d8eb048db908c94a3c40c25a5fde0caee6 (patch)
treeb765e7fb5e9a3c2143c68b0414e0055adb70e785 /results/classifier/118/TCG/2647
parentb89a938452613061c0f1f23e710281cf5c83cb29 (diff)
downloadqemu-analysis-9aba81d8eb048db908c94a3c40c25a5fde0caee6.tar.gz
qemu-analysis-9aba81d8eb048db908c94a3c40c25a5fde0caee6.zip
add 18th iteration of classifier
Diffstat (limited to 'results/classifier/118/TCG/2647')
-rw-r--r--results/classifier/118/TCG/2647107
1 files changed, 107 insertions, 0 deletions
diff --git a/results/classifier/118/TCG/2647 b/results/classifier/118/TCG/2647
new file mode 100644
index 000000000..95aa38449
--- /dev/null
+++ b/results/classifier/118/TCG/2647
@@ -0,0 +1,107 @@
+TCG: 0.994
+user-level: 0.945
+architecture: 0.905
+graphic: 0.799
+peripherals: 0.785
+performance: 0.749
+mistranslation: 0.733
+hypervisor: 0.595
+device: 0.552
+permissions: 0.517
+arm: 0.494
+PID: 0.456
+x86: 0.447
+ppc: 0.438
+VMM: 0.424
+semantic: 0.419
+assembly: 0.408
+register: 0.396
+i386: 0.387
+network: 0.333
+debug: 0.325
+files: 0.317
+virtual: 0.312
+socket: 0.311
+vnc: 0.281
+kernel: 0.275
+boot: 0.243
+KVM: 0.218
+risc-v: 0.137
+--------------------
+TCG: 0.980
+kernel: 0.815
+x86: 0.431
+debug: 0.229
+files: 0.218
+register: 0.197
+virtual: 0.160
+performance: 0.082
+ppc: 0.067
+i386: 0.056
+architecture: 0.037
+KVM: 0.037
+user-level: 0.019
+semantic: 0.017
+hypervisor: 0.016
+VMM: 0.015
+permissions: 0.015
+PID: 0.015
+device: 0.014
+arm: 0.012
+assembly: 0.011
+boot: 0.011
+risc-v: 0.010
+network: 0.008
+peripherals: 0.005
+socket: 0.005
+graphic: 0.005
+vnc: 0.004
+mistranslation: 0.002
+
+A code error in accel/tcg/user-exec.c
+Description of problem:
+accel/tcg/user-exec.c:
+```
+static int probe_access_internal(CPUArchState *env, vaddr addr,
+                                 int fault_size, MMUAccessType access_type,
+                                 bool nonfault, uintptr_t ra)
+{
+    int acc_flag;
+    bool maperr;
+
+    switch (access_type) {
+    case MMU_DATA_STORE:
+        acc_flag = PAGE_WRITE_ORG;
+        break;
+    case MMU_DATA_LOAD:
+        acc_flag = PAGE_READ;
+        break;
+    case MMU_INST_FETCH:
+        acc_flag = PAGE_EXEC;
+        break;
+    default:
+        g_assert_not_reached();
+    }
+
+    if (guest_addr_valid_untagged(addr)) {
+        int page_flags = page_get_flags(addr);
+        if (page_flags & acc_flag) {
+            if ((acc_flag == PAGE_READ || acc_flag == PAGE_WRITE)
+                && cpu_plugin_mem_cbs_enabled(env_cpu(env))) {
+                return TLB_MMIO;
+            }
+            return 0; /* success */
+        }
+        maperr = !(page_flags & PAGE_VALID);
+    } else {
+        maperr = true;
+    }
+
+    if (nonfault) {
+        return TLB_INVALID_MASK;
+    }
+
+    cpu_loop_exit_sigsegv(env_cpu(env), addr, access_type, maperr, ra);
+}
+```
+The conditional judgment "acc_flag == PAGE_WRITE" seems to have an issue, because acc_flag can only be PAGE_WRITE_ORG, PAGE_READ or PAGE_EXEC from the previous code.