other: 0.365 semantic: 0.180 device: 0.070 files: 0.061 PID: 0.053 vnc: 0.046 performance: 0.038 graphic: 0.035 boot: 0.032 network: 0.031 socket: 0.030 debug: 0.026 permissions: 0.019 KVM: 0.015 debug: 0.249 files: 0.245 other: 0.139 performance: 0.089 PID: 0.069 device: 0.060 boot: 0.032 network: 0.026 semantic: 0.020 socket: 0.018 vnc: 0.016 permissions: 0.015 graphic: 0.014 KVM: 0.008 Bad check for return value of mmap() In ./roms/skiboot/extract-gcov.c there is this code: addr = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0); assert(addr != NULL); This check is wrong, mmap never returns NULL, on errors it returns MAP_FAILED (or -1). (Also sidenote: asserts usually shouldn't be used for error checking.) In roms/skiboot/libstb/print-container.c there's a similar issue: payload = mmap(NULL, payload_st.st_size - SECURE_BOOT_HEADERS_SIZE, PROT_READ, MAP_PRIVATE, fdin, SECURE_BOOT_HEADERS_SIZE); if (!payload) This if should be (payload == MAP_FAILED). Another one is in ./roms/skiboot/libstb/create-container.c And in ./roms/u-boot/tools/aisimage.c there's an mmap call that does not check the return value at all. skiboot is a separate project, we do not manage its code in the QEMU project, but just include the source code in our release tarballs since we ship the skiboot binary with QEMU. Please report these problems to the skiboot project instead: https://github.com/open-power/skiboot And concerning the mmap in roms/u-boot/, please report that issue to the U-Boot project instead: https://www.denx.de/wiki/U-Boot/