[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V8 4/4] tests: Add migration test for aarch64
From: |
Andrew Jones |
Subject: |
Re: [Qemu-devel] [PATCH V8 4/4] tests: Add migration test for aarch64 |
Date: |
Mon, 3 Sep 2018 13:46:09 +0200 |
User-agent: |
NeoMutt/20180716 |
On Sat, Sep 01, 2018 at 11:07:26AM +0100, Peter Maydell wrote:
> On 1 September 2018 at 06:11, Wei Huang <address@hidden> wrote:
> > This patch adds migration test support for aarch64. The test code, which
> > implements the same functionality as x86, is booted as a kernel in qemu.
> > Here are the design choices we make for aarch64:
> >
> > * We choose this -kernel approach because aarch64 QEMU doesn't provide a
> > built-in fw like x86 does. So instead of relying on a boot loader, we
> > use -kernel approach for aarch64.
> > * The serial output is sent to PL011 directly.
> > * The physical memory base for mach-virt machine is 0x40000000. We change
> > the start_address and end_address for aarch64.
> >
> > In addition to providing the binary, this patch also includes the source
> > code and the build script in tests/migration/aarch64. So users can change
> > the source and/or re-compile the binary as they wish.
> > + } else if (strcmp(arch, "aarch64") == 0) {
> > + struct utsname utsname;
> > +
>
> The comment says:
>
> > + /* kvm and tcg need different cpu and gic-version configs */
>
> ...but the code below it doesn't change the cpu or gic-version
> based on 'accel'.
>
> > + if (access("/dev/kvm", F_OK) == 0 && uname(&utsname) == 0 &&
> > + strcmp(utsname.machine, "aarch64") == 0) {
> > + accel = "kvm";
> > + } else {
> > + accel = "tcg";
> > + }
>
> Maybe we could just use -accel=kvm,tcg rather than guessing
> whether kvm is going to work ? If this is how the x86 code
> works then probably best to do the same as that, though.
Yeah, using '-accel=kvm:tcg' is what I suggested in the v7 review when
suggesting to switch to -cpu max and gic-version=max. That allows the
uname() use and the new utsname.h include to go away.
Thanks,
drew
>
> > +
> > + init_bootfile(bootpath, aarch64_kernel);
> > + cmd_src = g_strdup_printf("-machine virt,accel=%s,gic-version=max "
> > + "-name vmsource,debug-threads=on -cpu
> > max "
> > + "-m 150M -serial file:%s/src_serial "
> > + "-kernel %s ",
> > + accel, tmpfs, bootpath);
> > + cmd_dst = g_strdup_printf("-machine virt,accel=%s,gic-version=max "
> > + "-name vmdest,debug-threads=on -cpu max "
> > + "-m 150M -serial file:%s/dest_serial "
> > + "-kernel %s "
> > + "-incoming %s ",
> > + accel, tmpfs, bootpath, uri);
> > +
> > + start_address = ARM_TEST_MEM_START;
> > + end_address = ARM_TEST_MEM_END;
> > +
> > + g_assert(sizeof(aarch64_kernel) <= ARM_TEST_MAX_KERNEL_SIZE);
>
> thanks
> -- PMM
>