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...")
 
(Add goals / tasks for the s390x RISU project)
 
(One intermediate revision by one other user not shown)
Line 10: Line 10:
for correctness. This will certainly help to spot some instruction emulation
for correctness. This will certainly help to spot some instruction emulation
deficiencies in QEMU which should be addressed during this internship, too.
deficiencies in QEMU which should be addressed during this internship, too.
Goals / tasks include:
* Getting familiar with the RISU framework (i.e. study the code, run it on other architectures like x86)
* Getting familiar with s390x instructions (i.e. study the "z/Architecture Principles of Operation" document)
* Adapt the RISU framework for s390x
* Get familiar with the TCG emulation framework of QEMU (see the target/s390x/ folder in the QEMU sources)
* Fix at least one problem that has been discovered by running RISU on s390x and get the patch accepted in the QEMU project


'''Links:'''
'''Links:'''
Line 17: Line 24:


'''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)

Latest revision as of 08:11, 11 March 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.

Goals / tasks include:

  • Getting familiar with the RISU framework (i.e. study the code, run it on other architectures like x86)
  • Getting familiar with s390x instructions (i.e. study the "z/Architecture Principles of Operation" document)
  • Adapt the RISU framework for s390x
  • Get familiar with the TCG emulation framework of QEMU (see the target/s390x/ folder in the QEMU sources)
  • Fix at least one problem that has been discovered by running RISU on s390x and get the patch accepted in the QEMU project

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)