summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/118/performance/1728116
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/zero-shot/118/performance/1728116')
-rw-r--r--results/classifier/zero-shot/118/performance/172811689
1 files changed, 89 insertions, 0 deletions
diff --git a/results/classifier/zero-shot/118/performance/1728116 b/results/classifier/zero-shot/118/performance/1728116
new file mode 100644
index 000000000..000d464b5
--- /dev/null
+++ b/results/classifier/zero-shot/118/performance/1728116
@@ -0,0 +1,89 @@
+performance: 0.981
+virtual: 0.980
+graphic: 0.976
+user-level: 0.974
+x86: 0.964
+ppc: 0.937
+PID: 0.935
+device: 0.921
+kernel: 0.915
+semantic: 0.911
+socket: 0.908
+arm: 0.895
+files: 0.880
+hypervisor: 0.878
+architecture: 0.876
+network: 0.871
+mistranslation: 0.869
+debug: 0.860
+KVM: 0.855
+permissions: 0.843
+vnc: 0.833
+risc-v: 0.796
+i386: 0.796
+VMM: 0.794
+peripherals: 0.793
+boot: 0.793
+TCG: 0.757
+register: 0.695
+assembly: 0.507
+
+Empty /proc/self/auxv (linux-user)
+
+The userspace Linux API virtualization used to fake access to /proc/self/auxv, to provide meaningful data for the guest process.
+
+For newer qemu versions, this fails: The openat() is intercepted, but there's no content: /proc/self/auxv has length zero (i.e. reading from it returns 0 bytes).
+
+Good:
+
+$ x86_64-linux-user/qemu-x86_64 /usr/bin/cat /proc/self/auxv | wc -c
+256 /proc/self/auxv
+
+Bad:
+
+$ x86_64-linux-user/qemu-x86_64 /usr/bin/cat /proc/self/auxv | wc -c
+0 /proc/self/auxv
+
+This worked in 2.7.1, and fails in 2.10.1.
+
+This causes e.g. any procps-ng-based tool to segfault while reading from /proc/self/auxv in an endless loop (probably worth another bug report...)
+
+Doing a "git bisect" shows that this commit: https://github.com/qemu/qemu/commit/7c4ee5bcc introduced the problem.
+
+It might be a simple logic (subtraction in the wrong direction?) or sign-ness error: Adding some logging (to v2.10.1)
+
+diff --git a/linux-user/syscall.c b/linux-user/syscall.c
+index 9b6364a..49285f9 100644
+--- a/linux-user/syscall.c
++++ b/linux-user/syscall.c
+@@ -7469,6 +7469,9 @@ static int open_self_auxv(void *cpu_env, int fd)
+     abi_ulong len = ts->info->auxv_len;
+     char *ptr;
+ 
++    gemu_log(TARGET_ABI_FMT_lu"\n", len);
++    gemu_log(TARGET_ABI_FMT_ld"\n", len);
++
+     /*
+      * Auxiliary vector is stored in target process stack.
+      * read in whole auxv vector and copy it to file
+
+shows this output:
+
+$  x86_64-linux-user/qemu-x86_64 /usr/bin/cat /proc/self/auxv | wc -c
+18446744073709551264
+-352
+0
+
+And 352 could be the expected length.
+
+Oops, yes, commit 7c4ee5bcc82e643 broke this -- it switched the order in which we fill in the AUXV info, but forgot to adjust the calculation of the length, which as you've guessed we now get backwards.
+
+
+I've just sent this patch which fixes this bug:
+https://lists.gnu.org/archive/html/qemu-devel/2017-11/msg01199.html
+(it turns out it wasn't quite as simple as getting the sign wrong, we were subtracting two things that were totally wrong).
+
+
+Fix has been released with QEMU 2.11:
+https://git.qemu.org/?p=qemu.git;a=commitdiff;h=f516511ea84d8bb3395d6e
+