Internships/ProjectIdeas/S390xRISU/
Improve s390x (IBM Z) emulation with RISU
Summary: Adapt RISU to s390x and fix CPU emulation along the way.
RISU (Random Instruction Sequence generator for Userspace testing) is a tool for testing CPU instructions with randomly generated opcodes. RISU generates random CPU instruction sequences and runs them both on a reference machine and under QEMU. The results are compared between the reference machine and QEMU so that inconsistencies in QEMU's emulation can be detected and fixed.
The goal of this project is to adapt the RISU framework for the IBM Z CPU architecture (a.k.a. s390x), so that it could be used to test the s390x emulation of QEMU for correctness. This will certainly help to spot some instruction emulation deficiencies in QEMU which should be addressed during this internship, too.
Links:
- Peter Maydell's RISU repository
- KVM Forum 2014 presentation by Alex Bennée
- z/Architecture Principles of Operation (the description of the CPU instructions)
Details:
- Skill level: intermediate (a good basic understanding of CPU instructions is required)
- Language: C, Perl
- Mentor: Thomas Huth <thuth@redhat.com> (th_huth on IRC)