Internships/ProjectIdeas/S390xRISU/: Difference between revisions

From QEMU
(Created page with "=== 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 Use...")
 
Line 17: Line 17:


'''Details:'''
'''Details:'''
* Skill level: intermediate (a good basic understanding of CPU instructions is required)
* Project size: 350 hours
* Language: C, Perl
* Difficulty: intermediate
* Required skills: C and Perl programming, good basic understand of assembly (CPU instructions) but not necessarily s390x
* Mentor: Thomas Huth <thuth@redhat.com> (th_huth on IRC)
* Mentor: Thomas Huth <thuth@redhat.com> (th_huth on IRC)

Revision as of 06:56, 25 February 2022

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:

Details:

  • Project size: 350 hours
  • Difficulty: intermediate
  • Required skills: C and Perl programming, good basic understand of assembly (CPU instructions) but not necessarily s390x
  • Mentor: Thomas Huth <thuth@redhat.com> (th_huth on IRC)