|
|
Line 2: |
Line 2: |
|
| |
|
| I'm saving some drafts here before including it on the wiki page. -[[User:Ehabkost|Ehabkost]] ([[User talk:Ehabkost|talk]]) 19:36, 16 January 2019 (UTC) | | I'm saving some drafts here before including it on the wiki page. -[[User:Ehabkost|Ehabkost]] ([[User talk:Ehabkost|talk]]) 19:36, 16 January 2019 (UTC) |
|
| |
| === Guest ABI automated testing ===
| |
|
| |
| '''Summary:''' Automated test of Guest ABI and compatibility
| |
|
| |
| QEMU tries to provide a stable '''guest ABI''' on versioned
| |
| machine-types. Despite investing lots of effort keeping
| |
| compatibility, we have no automated testing to detect common
| |
| mistakes that break guest ABI. It should be possible to write
| |
| automated test cases that will compare a virtual machine to a
| |
| previously stored dump of guest ABI information.
| |
|
| |
| A guest ABI dump may include, for example:
| |
|
| |
| * Data returned by CPUID instruction (or equivalent)
| |
| * Physical memory and I/O port maps
| |
| * Device addresses (PCI, USB, etc.)
| |
| * Device IDs and other guest-visible device fields
| |
| * Value of QOM properties that affect device behavior
| |
|
| |
| This might require improving or adding new QMP commands to provide information to be validated by the automated test cases. Some test cases may use a custom kernel image for collecting guest-visible data, or extending the qtest protocol.
| |
|
| |
|
| |
| '''Links:'''
| |
| * [https://github.com/autotest/tp-qemu/tree/master/qemu/deps/cpuid Ancient test code for CPUID compatibility]
| |
| * [https://github.com/ehabkost/qemu-hacks/commits/work/guest-abi-tests incomplete proof of concept for validating CPUID data]
| |
| * [https://github.com/ehabkost/gdb-qemu Hack that uses GDB to extract machine-type information from QEMU]
| |
|
| |
| '''Details:'''
| |
| * Skill level: intermediate
| |
| * Language: C, Python
| |
| * Mentor: Eduardo Habkost <ehabkost@redhat.com> ("ehabkost" on IRC)
| |
| * Suggested by: Eduardo Habkost
| |