aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/dev_kvm_arm64.txt
Commit message (Collapse)AuthorAgeFilesLines
* executor: sys/linux: Add VCPU fd to `syz_kvm_assert_syzos_uexit`Alexander Potapenko2026-01-161-1/+1
| | | | | | | | Enhance the debugging capabilities of C reproducers by passing the VCPU file descriptor to the syz_kvm_assert_syzos_uexit function. With access to the VCPU fd, the function can now dump the VCPU's register state upon assertion failure, providing critical context for debugging guest execution issues.
* sys/linux: rework ioctl$KVM_SET_GUEST_DEBUGAlexander Potapenko2025-09-191-0/+9
| | | | | | | | | | This ioctl accepts an arch-specific struct as an argument, so better split it into several arch-specific ioctls. To avoid compilation errors on exotic arches like MIPS, this patch also adds sys/linux/dev_kvm_extra.txt that takes care of them. While at it, also define KVM_GUESTDBG_USE_HW.
* executor: sys/linux/: pkg/runtest: pkg/vminfo: add syz_kvm_assert_syzos_kvm_exitAlexander Potapenko2025-09-191-0/+1
| | | | Implement a pseudo-syscall to check the value of kvm_run.exit_reason
* sys/linux: apply no_squash to syz_kvm_add_vcpuAlexander Potapenko2025-09-091-1/+2
| | | | | | Not passing flattened arguments to syz_kvm_add_vcpu() serves two purposes: - makes it easier to reason about the SYZOS program contents; - prevents nonsensial mutations of them.
* sys/linux/dev_kvm_arm64.txt: add KVM_ARM_VCPU_HAS_EL2Alexander Potapenko2025-06-131-2/+3
| | | | Let bare-metal instances with EL2 support take advantage of NV.
* executor: arm64: syzos: add SYZOS_API_ERET, SYZOS_API_SVCAlexander Potapenko2025-06-131-0/+2
| | | | We expect these commands to reach some NV coverage
* executor: arm64: syzos: prevent jump table emissionAlexander Potapenko2025-05-121-9/+9
| | | | | | | | | When compiling SYZOS into the executor binary, the compiler often attempts to emit a jump table, putting it into the data section of the executor. SYZOS is unable to access that data and crashes. Use primes multiplied by 10 to defeat the compiler's heuristics for jump table emission.
* executor/kvm: add x86-64 SYZOS fuzzerMarios Pomonis2025-04-231-1/+1
| | | | | | This commit adds the actual SyzOS fuzzer for x86-64 and a small test. It also updates some necessary parts of the ARM version and adds some glue for i386.
* executor/kvm: set up X86-64 SYZOSMarios Pomonis2025-04-231-3/+3
| | | | | This commit prepares adding the X86-64 SYZOS by declaring the relevant functions, updating their ARM64 versions and adding placeholders.
* executor: arm64: add SYZOS_API_MRSMarios Pomonis2025-01-141-0/+5
| | | | Add support for the MRS instruction in a similar manner to MSR.
* executor: pkg/vminfo: sys/linux: arm64: implement syz_kvm_assert_reg()Alexander Potapenko2024-12-181-0/+2
| | | | Add a pseudo-syscall to assert on register values.
* pkg/vminfo: sys/linux: executor: define syz_kvm_assert_syzos_uexit()Alexander Potapenko2024-12-111-0/+2
| | | | | The new pseudo-syscall will serve as a test assertion, checking the uexit return value. This is going to help us validate SyzOS code.
* sys/linux/dev_kvm_arm64.txt: remove the unneeded definesAlexander Potapenko2024-11-261-80/+0
| | | | Now that we include linux/irqchip/arm-gic-v3.h, we don't need them anymore.
* sys/linux/dev_kvm_arm64.txt: add ITS registers to syzos_api_memwriteAlexander Potapenko2024-11-261-0/+12
| | | | Hint syzkaller that it can write to ITS registers.
* sys/linux: move some ARM-specific descriptions to a separate fileAlexander Potapenko2024-11-261-0/+274
This is done to solve a particular test failure running: $ tools/syz-env go test ./prog -run TestSpecialStructs , which failed on PPC64, because prog/rand.go instanciated a call to syz_kvm_setup_syzos_vm(), which requested too much memory (1024 pages) from the allocator (PPC64 uses 64k pages, so the number of available pages is lower). On the other hand, factoring out syzos-related descriptions is probably a nice thing to do anyway.