[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 08/11] tests/qtest/migration: Specify the geometry of the boot
From: |
Fabiano Rosas |
Subject: |
[PATCH v3 08/11] tests/qtest/migration: Specify the geometry of the bootsector |
Date: |
Wed, 18 Oct 2023 11:07:33 -0300 |
We're about to enable the x86_64 tests to run with the q35 machine,
but that machine does not work with the program we use to dirty the
memory for the tests.
The issue is that QEMU needs to guess the geometry of the "disk" we
give to it and the guessed geometry doesn't pass the sanity checks
done by SeaBIOS. This causes SeaBIOS to interpret the geometry as if
needing a translation from LBA to CHS and SeaBIOS ends up miscomputing
the number of cylinders and aborting due to that.
The reason things work with the "pc" machine is that is uses ATA
instead of AHCI like q35 and SeaBIOS has an exception for ATA that
ends up skipping the sanity checks and ignoring translation
altogether.
Workaround this situation by specifying a geometry in the command
line.
Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
tests/qtest/migration-test.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index 40de320fcc..74f3b5f772 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -757,7 +757,9 @@ static int test_migrate_start(QTestState **from, QTestState
**to,
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
memory_size = "150M";
machine = "pc";
- arch_opts = g_strdup_printf("-drive file=%s,format=raw", bootpath);
+ arch_opts = g_strdup_printf(
+ "-drive if=none,id=d0,file=%s,format=raw "
+ "-device ide-hd,drive=d0,secs=1,cyls=1,heads=1", bootpath);
start_address = X86_TEST_MEM_START;
end_address = X86_TEST_MEM_END;
} else if (g_str_equal(arch, "s390x")) {
--
2.35.3
- [PATCH v3 00/11] tests/migration-test: Allow testing older machine types, Fabiano Rosas, 2023/10/18
- [PATCH v3 01/11] tests/qtest: Allow qtest_qemu_binary to use a custom environment variable, Fabiano Rosas, 2023/10/18
- [PATCH v3 02/11] tests/qtest: Introduce qtest_init_with_env, Fabiano Rosas, 2023/10/18
- [PATCH v3 05/11] tests/qtest: Introduce qtest_resolve_machine_alias, Fabiano Rosas, 2023/10/18
- [PATCH v3 06/11] tests/qtest/migration: Introduce find_common_machine_version, Fabiano Rosas, 2023/10/18
- [PATCH v3 07/11] tests/qtest/migration: Define a machine for all architectures, Fabiano Rosas, 2023/10/18
- [PATCH v3 08/11] tests/qtest/migration: Specify the geometry of the bootsector,
Fabiano Rosas <=
- [PATCH v3 11/11] tests/qtest: Don't print messages from query instances, Fabiano Rosas, 2023/10/18
- [PATCH v3 03/11] tests/qtest: Allow qtest_get_machines to use an alternate QEMU binary, Fabiano Rosas, 2023/10/18
- [PATCH v3 04/11] tests/qtest: Introduce qtest_has_machine_with_env, Fabiano Rosas, 2023/10/18
- [PATCH v3 09/11] tests/qtest/migration: Set q35 as the default machine for x86_86, Fabiano Rosas, 2023/10/18
- [PATCH v3 10/11] tests/qtest/migration: Support more than one QEMU binary, Fabiano Rosas, 2023/10/18
- Re: [PATCH v3 10/11] tests/qtest/migration: Support more than one QEMU binary, Peter Xu, 2023/10/18
- Re: [PATCH v3 00/11] tests/migration-test: Allow testing older machine types, Fabiano Rosas, 2023/10/18