summary refs log tree commit diff stats
path: root/results/classifier/118/debug/1779634
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/debug/1779634')
-rw-r--r--results/classifier/118/debug/1779634108
1 files changed, 0 insertions, 108 deletions
diff --git a/results/classifier/118/debug/1779634 b/results/classifier/118/debug/1779634
deleted file mode 100644
index c03488a1..00000000
--- a/results/classifier/118/debug/1779634
+++ /dev/null
@@ -1,108 +0,0 @@
-debug: 0.908
-semantic: 0.901
-peripherals: 0.901
-register: 0.890
-permissions: 0.889
-network: 0.887
-graphic: 0.885
-virtual: 0.876
-architecture: 0.867
-assembly: 0.866
-x86: 0.864
-device: 0.863
-kernel: 0.851
-mistranslation: 0.835
-arm: 0.822
-socket: 0.817
-PID: 0.814
-files: 0.807
-user-level: 0.804
-performance: 0.796
-VMM: 0.775
-risc-v: 0.768
-hypervisor: 0.752
-ppc: 0.715
-vnc: 0.704
-KVM: 0.698
-TCG: 0.691
-boot: 0.612
-i386: 0.437
-
-qemu-x86_64 on aarch64 reports "Synchronous External Abort"
-
-Purpose: to run x86_64 utilities on aarch64 platform (Intel/Dell network adapters' firmware upgrade tools)
-System: aarch64 server platform, with ubuntu 16.04 (xenial) Linux 4.13.0-45-generic #50~16.04.1-Ubuntu SMP Wed May 30 11:14:25 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
-
-Reproduce:
-1) build linux-user qemu-x86_64 static from source (tried both version 1.12.0 & 1.11.02)
-   ./configure --target-list=x86_64-linux-user --disable-system --static --enable-linux-user
-
-2) install the interpreter into binfmt_misc filesystem
-   $ cat /proc/sys/fs/binfmt_misc/qemu-x86_64
-     enabled
-     interpreter /usr/local/bin/qemu-x86_64
-     flags:
-     offset 0
-     magic 7f454c4602010100000000000000000002003e00
-     mask fffffffffffefefcfffffffffffffffffeffffff
-
-3) packaging Intel/Dell upgrade utilities into docker images, I've published two on docker hub:
-   REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
-   heyi/dellupdate     latest              8e013f5511cd        6 hours ago         210MB
-   heyi/nvmupdate64e   latest              9d2de9d0edaa        3 days ago          451MB
-
-4) run the docker container on aarch64 server platform:
-   docker run -it --privileged --network host --volume /usr/local/bin/qemu-x86_64:/usr/local/bin/qemu-x86_64 heyi/dellupdate:latest
-
-5) finally, within docker container run the upgrade tool:
-   # ./Network_Firmware_T6VN9_LN_18.5.17_A00.BIN
-
-Errors: in dmesg it reports excessive 'Synchronous External Abort':
-
-kernel: [242850.159893] Synchronous External Abort: synchronous external abort (0x92000610) at 0x0000000000429958
-kernel: [242850.169199] Unhandled fault: synchronous external abort (0x92000610) at 0x0000000000429958
-
-thanks and best regards, Yi
-
-qemu-x86_64 is just a userspace program. If the kernel is getting Synchronous External Aborts then this is not a QEMU problem. Either there's a bug in the host kernel, or the guest binary is attempting to mmap /dev/mem and do wrong things to it because it's expecting it to be an x86 system. I suspect the latter (it's probably trying to do userspace writes directly to the network controller handware). This sort of binary is never going to be runnable via QEMU.
-
-
-You could confirm this hypothesis by using strace and looking for whether it's doing mmap() of /dev/mem or /dev/kmem. If it's true, then the program would not work even if you had the source and recompiled it for aarch64 -- it would require bugfixes (code changes) to achieve whatever it's trying to do.
-
-
-Thanks very much @Peter Maydell, when invoking these tools through docker/qemu-user I really saw syscall disorders, even strace fails. You are right these tools have x86_64 syscall numbers & perhaps mmaps of /dev/mem to allocate contiguous memory region for DMA transactions.
-
-Then the goal cannot be achieved by docker/qemu-user method (although it is quite convenient :)
-
-strace ./Network_Firmware_T6VN9_LN_18.5.17_A00.BIN
-qemu: Unsupported syscall: 101
-qemu: Unsupported syscall: 101
-/usr/bin/strace: ptrace(PTRACE_TRACEME, ...): Function not implemented
-+++ exited with 1 +++
-
-I'll downgrade this bug to a question, and try full qemu-system emulation with PCI device passthrough assignment to achieve the goal of running Intel/Dell firmware upgrading tools on aarch64 servers.
-
-
-> /usr/bin/strace: ptrace(PTRACE_TRACEME, ...): Function not implemented
-
-This indicates that you're trying to run an x86 strace under QEMU. That won't work. You want to either (a) run QEMU + guest binary under the host strace or (b) run QEMU + guest binary with the QEMU -strace option.
-
-
-thanks Peter, yes I tried to run an x86 strace under QEMU.
-
-I'll stop this experiment since you are right this won't work for utilities with device-level I/O and memory operations, I will raise this requirement to Intel support website firstly.
-
-Best Regards, Yi
-
-Hi,
-
-if of interest to anyone...
-we were able to successfully upgrade firmware of Intel XL710 on aarch64 platform.
-
-Two major items were required:
-- small qemu change: https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg00553.html
-- hack in Linux kernel /dev/mem driver in mmap function to catch wrong addresses nvmupdate64e asked for thru qemu. For some reason only lower 32-bit portion of actual physical address came to linux kernel. /dev/mem driver in kernel was changed to add missing upper 32 bits of address
-
-best regards,
-Matevz
-