summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/108/other/2570
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/zero-shot/108/other/2570')
-rw-r--r--results/classifier/zero-shot/108/other/257070
1 files changed, 70 insertions, 0 deletions
diff --git a/results/classifier/zero-shot/108/other/2570 b/results/classifier/zero-shot/108/other/2570
new file mode 100644
index 000000000..00114185d
--- /dev/null
+++ b/results/classifier/zero-shot/108/other/2570
@@ -0,0 +1,70 @@
+debug: 0.837
+other: 0.834
+graphic: 0.832
+PID: 0.824
+files: 0.794
+vnc: 0.782
+semantic: 0.763
+network: 0.749
+socket: 0.745
+performance: 0.742
+permissions: 0.730
+device: 0.724
+boot: 0.674
+KVM: 0.575
+
+TCG Plugins: "Code should not be reached" error after resetting plugin from vcpu_tb_trans callback
+Description of problem:
+In a TCG plugin, using the `qemu_plugin_reset` method from within a `vcpu_tb_trans` callback produces the following error. If this isn't a supported use case, it should probably be described in the documentation. If this is supposed to work, it doesn't seem to.
+
+```
+**
+ERROR:/home/user/git/qemu/tcg/i386/tcg-target.c.inc:3018:tcg_out_op: code should not be reached
+Bail out! ERROR:/home/user/git/qemu/tcg/i386/tcg-target.c.inc:3018:tcg_out_op: code should not be reached
+Aborted (core dumped)
+```
+Steps to reproduce:
+1. Build the current head of master (4b7ea33074450bc6148c8e1545d78f179e64adb4) with the below `min` plugin (i.e., add to contrib/plugins and update contrib/plugins/Makefile so it is built)
+2. `../configure --enable-plugins --target-list=x86_64-softmmu --disable-docs`
+3. `make && make plugins`
+4. Get a qcow, e.g., the Ubuntu Bionic qcow from [here](https://panda.re/qcows/linux/ubuntu/1804/x86_64/bionic-server-cloudimg-amd64-noaslr-nokaslr.qcow2).
+5. `./qemu-system-x86_64 -plugin contrib/plugins/libmin.so bionic-server-cloudimg-amd64-noaslr-nokaslr.qcow2 -nographic`
+
+The first three lines are output by the plugin as expected, the error after that and the abort are unexpected:
+```
+Translating basic block
+Reset request issued
+Reset finished
+**
+ERROR:/home/user/git/qemu/tcg/i386/tcg-target.c.inc:3018:tcg_out_op: code should not be reached
+Bail out! ERROR:/home/user/git/qemu/tcg/i386/tcg-target.c.inc:3018:tcg_out_op: code should not be reached
+Aborted (core dumped)
+```
+Additional information:
+contrib/plugins/min.c
+```c
+#include <stdio.h>
+#include <qemu-plugin.h>
+
+QEMU_PLUGIN_EXPORT int qemu_plugin_version = QEMU_PLUGIN_VERSION;
+
+qemu_plugin_id_t plugin_id = {0};
+
+static void post_reset(qemu_plugin_id_t id) {
+    printf("Reset finished\n");
+}
+
+static void vcpu_tb_trans(qemu_plugin_id_t id, struct qemu_plugin_tb *tb) {
+    printf("Translating basic block\n");
+    qemu_plugin_reset(plugin_id, post_reset);
+    printf("Reset request issued\n");
+}
+
+QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
+                   const qemu_info_t *info, int argc, char **argv) {
+
+    qemu_plugin_register_vcpu_tb_trans_cb(id, vcpu_tb_trans);
+    plugin_id = id;
+    return 0;
+}
+```