[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 08/12] tests/qtest/migration: Specify the geometry of the boot
|
From: |
Fabiano Rosas |
|
Subject: |
[PATCH v4 08/12] tests/qtest/migration: Specify the geometry of the bootsector |
|
Date: |
Wed, 18 Oct 2023 16:27:37 -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 43d0b83771..b45a389de8 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_alias = "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
- Re: [PATCH v4 02/12] tests/qtest: Introduce qtest_init_with_env, (continued)
- [PATCH v4 03/12] tests/qtest: Allow qtest_get_machines to use an alternate QEMU binary, Fabiano Rosas, 2023/10/18
- [PATCH v4 04/12] tests/qtest: Introduce qtest_has_machine_with_env, Fabiano Rosas, 2023/10/18
- [PATCH v4 05/12] tests/qtest: Introduce qtest_resolve_machine_alias, Fabiano Rosas, 2023/10/18
- [PATCH v4 06/12] tests/qtest/migration: Introduce find_common_machine_version, Fabiano Rosas, 2023/10/18
- [PATCH v4 07/12] tests/qtest/migration: Define a machine for all architectures, Fabiano Rosas, 2023/10/18
- [PATCH v4 08/12] tests/qtest/migration: Specify the geometry of the bootsector,
Fabiano Rosas <=
- [PATCH v4 09/12] tests/qtest/migration: Set q35 as the default machine for x86_86, Fabiano Rosas, 2023/10/18
- [PATCH v4 10/12] tests/qtest/migration: Support more than one QEMU binary, Fabiano Rosas, 2023/10/18
- [PATCH v4 11/12] tests/qtest/migration: Allow user to specify a machine type, Fabiano Rosas, 2023/10/18