Message ID | 20200908051953.1616885-20-david@gibson.dropbear.id.au |
---|---|
State | Superseded |
Headers | show |
Series | ppc-for-5.2 queue 20200908 | expand |
David Gibson <david@gibson.dropbear.id.au> writes: > From: Thiago Jung Bauermann <bauerman@linux.ibm.com> > > Instead of setting CPUState::halted to 1 in main_cpu_reset(), use the > start-powered-off property which makes cpu_common_reset() initialize it > to 1 in common code. > > Also change creation of CPU object from cpu_create() to object_new() and > qdev_realize_and_unref() because cpu_create() realizes the CPU and it's not > possible to set a property after the object is realized. > > Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com> > Message-Id: <20200826055535.951207-6-bauerman@linux.ibm.com> > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Signed-off-by: David Gibson <david@gibson.dropbear.id.au> I've finally bisected the breakage in check-acceptance to this patch: 10:24:09 [alex.bennee@hackbox2:~/l/q/b/bisect] (102ca966…)|BISECTING|✔ + ./tests/venv/bin/avocado run tests/acceptance/machine_mips_malta.py /home/alex.bennee/lsrc/qemu.git/builds/bisect/tests/venv/lib/python3.6/site-packages/avocado/plugins/run.py:214: FutureWarning: The following arguments will be changed to boolean soon: sysinfo, output-check, failfast, keep-tmp and ignore-missing-references. FutureWarning) JOB ID : 1a71a0a81cf9fb9a387d2ab105f8196a26cab84e JOB LOG : /home/alex.bennee/avocado/job-results/job-2020-10-07T10.24-1a71a0a/job.log (1/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core: PASS (5.70 s) (2/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores: INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout reached\nOriginal status: ERROR\n{'name': '2-tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores', 'logdir': '/home/alex.bennee/avocado/job-r... (28.91 s) (3/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores: INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout reached\nOriginal status: ERROR\n{'name': '3-tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores', 'logdir': '/home/alex.bennee/avocado/job-r... (30.58 s) RESULTS : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 2 | CANCEL 0 JOB TIME : 70.12 s 10:25:27 [alex.bennee@hackbox2:~/l/q/b/bisect] (102ca966…)|BISECTING|✔ 8 + make -j30 make[1]: Entering directory '/home/alex.bennee/lsrc/qemu.git/slirp' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/alex.bennee/lsrc/qemu.git/slirp' Generating qemu-version.h with a meson_exe.py custom command Compiling C object libqemu-mips64el-softmmu.fa.p/hw_mips_cps.c.o Compiling C object libqemu-mips64-softmmu.fa.p/hw_mips_cps.c.o Compiling C object libqemu-mipsel-softmmu.fa.p/hw_mips_cps.c.o Compiling C object libqemu-mips-softmmu.fa.p/hw_mips_cps.c.o Linking target qemu-system-mips Linking target qemu-system-mips64el Linking target qemu-system-mips64 Linking target qemu-system-mipsel 10:26:26 [alex.bennee@hackbox2:~/l/q/b/bisect] (a2c93f06…)|BISECTING|✔ + ./tests/venv/bin/avocado run tests/acceptance/machine_mips_malta.py /home/alex.bennee/lsrc/qemu.git/builds/bisect/tests/venv/lib/python3.6/site-packages/avocado/plugins/run.py:214: FutureWarning: The following arguments will be changed to boolean soon: sysinfo, output-check, failfast, keep-tmp and ignore-missing-references. FutureWarning) JOB ID : ccf294ef4e5ebdf19b3a0b53479d574df4ea54ea JOB LOG : /home/alex.bennee/avocado/job-results/job-2020-10-07T10.26-ccf294e/job.log (1/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core: PASS (5.82 s) (2/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores: PASS (15.16 s) (3/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores: PASS (15.97 s) RESULTS : PASS 3 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0 JOB TIME : 40.01 s > --- > hw/mips/cps.c | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/hw/mips/cps.c b/hw/mips/cps.c > index 615e1a1ad2..23c0f87e41 100644 > --- a/hw/mips/cps.c > +++ b/hw/mips/cps.c > @@ -52,9 +52,6 @@ static void main_cpu_reset(void *opaque) > CPUState *cs = CPU(cpu); > > cpu_reset(cs); > - > - /* All VPs are halted on reset. Leave powering up to CPC. */ > - cs->halted = 1; > } > > static bool cpu_mips_itu_supported(CPUMIPSState *env) > @@ -76,7 +73,17 @@ static void mips_cps_realize(DeviceState *dev, Error **errp) > bool saar_present = false; > > for (i = 0; i < s->num_vp; i++) { > - cpu = MIPS_CPU(cpu_create(s->cpu_type)); > + cpu = MIPS_CPU(object_new(s->cpu_type)); > + > + /* All VPs are halted on reset. Leave powering up to CPC. */ > + if (!object_property_set_bool(OBJECT(cpu), "start-powered-off", true, > + errp)) { > + return; > + } > + > + if (!qdev_realize_and_unref(DEVICE(cpu), NULL, errp)) { > + return; > + } > > /* Init internal devices */ > cpu_mips_irq_init_cpu(cpu); -- Alex Bennée
On 10/7/20 11:28 AM, Alex Bennée wrote: > > David Gibson <david@gibson.dropbear.id.au> writes: > >> From: Thiago Jung Bauermann <bauerman@linux.ibm.com> >> >> Instead of setting CPUState::halted to 1 in main_cpu_reset(), use the >> start-powered-off property which makes cpu_common_reset() initialize it >> to 1 in common code. >> >> Also change creation of CPU object from cpu_create() to object_new() and >> qdev_realize_and_unref() because cpu_create() realizes the CPU and it's not >> possible to set a property after the object is realized. >> >> Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com> >> Message-Id: <20200826055535.951207-6-bauerman@linux.ibm.com> >> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> >> Signed-off-by: David Gibson <david@gibson.dropbear.id.au> > > I've finally bisected the breakage in check-acceptance to this patch: > > 10:24:09 [alex.bennee@hackbox2:~/l/q/b/bisect] (102ca966…)|BISECTING|✔ + ./tests/venv/bin/avocado run tests/acceptance/machine_mips_malta.py > /home/alex.bennee/lsrc/qemu.git/builds/bisect/tests/venv/lib/python3.6/site-packages/avocado/plugins/run.py:214: FutureWarning: The following arguments will be changed to boolean soon: sysinfo, output-check, failfast, keep-tmp and ignore-missing-references. > FutureWarning) > JOB ID : 1a71a0a81cf9fb9a387d2ab105f8196a26cab84e > JOB LOG : /home/alex.bennee/avocado/job-results/job-2020-10-07T10.24-1a71a0a/job.log > (1/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core: PASS (5.70 s) > (2/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores: INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout reached\nOriginal status: ERROR\n{'name': '2-tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores', > 'logdir': '/home/alex.bennee/avocado/job-r... (28.91 s) > (3/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores: INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout reached\nOriginal status: ERROR\n{'name': '3-tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores', > 'logdir': '/home/alex.bennee/avocado/job-r... (30.58 s) > RESULTS : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 2 | CANCEL 0 > JOB TIME : 70.12 s > 10:25:27 [alex.bennee@hackbox2:~/l/q/b/bisect] (102ca966…)|BISECTING|✔ 8 + make -j30 > make[1]: Entering directory '/home/alex.bennee/lsrc/qemu.git/slirp' > make[1]: Nothing to be done for 'all'. > make[1]: Leaving directory '/home/alex.bennee/lsrc/qemu.git/slirp' > Generating qemu-version.h with a meson_exe.py custom command > Compiling C object libqemu-mips64el-softmmu.fa.p/hw_mips_cps.c.o > Compiling C object libqemu-mips64-softmmu.fa.p/hw_mips_cps.c.o > Compiling C object libqemu-mipsel-softmmu.fa.p/hw_mips_cps.c.o > Compiling C object libqemu-mips-softmmu.fa.p/hw_mips_cps.c.o > Linking target qemu-system-mips > Linking target qemu-system-mips64el > Linking target qemu-system-mips64 > Linking target qemu-system-mipsel > 10:26:26 [alex.bennee@hackbox2:~/l/q/b/bisect] (a2c93f06…)|BISECTING|✔ + ./tests/venv/bin/avocado run tests/acceptance/machine_mips_malta.py > /home/alex.bennee/lsrc/qemu.git/builds/bisect/tests/venv/lib/python3.6/site-packages/avocado/plugins/run.py:214: FutureWarning: The following arguments will be changed to boolean soon: sysinfo, output-check, failfast, keep-tmp and ignore-missing-references. > FutureWarning) > JOB ID : ccf294ef4e5ebdf19b3a0b53479d574df4ea54ea > JOB LOG : /home/alex.bennee/avocado/job-results/job-2020-10-07T10.26-ccf294e/job.log > (1/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core: PASS (5.82 s) > (2/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores: PASS (15.16 s) > (3/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores: PASS (15.97 s) > RESULTS : PASS 3 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0 > JOB TIME : 40.01 s Using: -- >8 -- diff --git a/hw/misc/mips_cpc.c b/hw/misc/mips_cpc.c index 2f7b2c9592..7c11fb3d44 100644 --- a/hw/misc/mips_cpc.c +++ b/hw/misc/mips_cpc.c @@ -38,6 +38,7 @@ static void mips_cpu_reset_async_work(CPUState *cs, run_on_cpu_data data) MIPSCPCState *cpc = (MIPSCPCState *) data.host_ptr; cpu_reset(cs); + cs->halted = 0; cpc->vp_running |= 1ULL << cs->cpu_index; } --- RESULTS : PASS 3 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | JOB TIME : 37.54 s > >> --- >> hw/mips/cps.c | 15 +++++++++++---- >> 1 file changed, 11 insertions(+), 4 deletions(-) >> >> diff --git a/hw/mips/cps.c b/hw/mips/cps.c >> index 615e1a1ad2..23c0f87e41 100644 >> --- a/hw/mips/cps.c >> +++ b/hw/mips/cps.c >> @@ -52,9 +52,6 @@ static void main_cpu_reset(void *opaque) >> CPUState *cs = CPU(cpu); >> >> cpu_reset(cs); >> - >> - /* All VPs are halted on reset. Leave powering up to CPC. */ >> - cs->halted = 1; >> } >> >> static bool cpu_mips_itu_supported(CPUMIPSState *env) >> @@ -76,7 +73,17 @@ static void mips_cps_realize(DeviceState *dev, Error **errp) >> bool saar_present = false; >> >> for (i = 0; i < s->num_vp; i++) { >> - cpu = MIPS_CPU(cpu_create(s->cpu_type)); >> + cpu = MIPS_CPU(object_new(s->cpu_type)); >> + >> + /* All VPs are halted on reset. Leave powering up to CPC. */ >> + if (!object_property_set_bool(OBJECT(cpu), "start-powered-off", true, >> + errp)) { >> + return; >> + } >> + >> + if (!qdev_realize_and_unref(DEVICE(cpu), NULL, errp)) { >> + return; >> + } >> >> /* Init internal devices */ >> cpu_mips_irq_init_cpu(cpu); > >
Philippe Mathieu-Daudé <f4bug@amsat.org> writes: > On 10/7/20 11:28 AM, Alex Bennée wrote: >> >> David Gibson <david@gibson.dropbear.id.au> writes: >> >>> From: Thiago Jung Bauermann <bauerman@linux.ibm.com> >>> >>> Instead of setting CPUState::halted to 1 in main_cpu_reset(), use the >>> start-powered-off property which makes cpu_common_reset() initialize it >>> to 1 in common code. >>> >>> Also change creation of CPU object from cpu_create() to object_new() and >>> qdev_realize_and_unref() because cpu_create() realizes the CPU and it's not >>> possible to set a property after the object is realized. >>> >>> Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com> >>> Message-Id: <20200826055535.951207-6-bauerman@linux.ibm.com> >>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>> Signed-off-by: David Gibson <david@gibson.dropbear.id.au> >> >> I've finally bisected the breakage in check-acceptance to this patch: >> >> 10:24:09 [alex.bennee@hackbox2:~/l/q/b/bisect] (102ca966…)|BISECTING|✔ + ./tests/venv/bin/avocado run tests/acceptance/machine_mips_malta.py >> /home/alex.bennee/lsrc/qemu.git/builds/bisect/tests/venv/lib/python3.6/site-packages/avocado/plugins/run.py:214: FutureWarning: The following arguments will be changed to boolean soon: sysinfo, output-check, failfast, keep-tmp and ignore-missing-references. >> FutureWarning) >> JOB ID : 1a71a0a81cf9fb9a387d2ab105f8196a26cab84e >> JOB LOG : /home/alex.bennee/avocado/job-results/job-2020-10-07T10.24-1a71a0a/job.log >> (1/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core: PASS (5.70 s) >> (2/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores: INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout reached\nOriginal status: ERROR\n{'name': '2-tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores', >> 'logdir': '/home/alex.bennee/avocado/job-r... (28.91 s) >> (3/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores: INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout reached\nOriginal status: ERROR\n{'name': '3-tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores', >> 'logdir': '/home/alex.bennee/avocado/job-r... (30.58 s) >> RESULTS : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 2 | CANCEL 0 >> JOB TIME : 70.12 s >> 10:25:27 [alex.bennee@hackbox2:~/l/q/b/bisect] (102ca966…)|BISECTING|✔ 8 + make -j30 >> make[1]: Entering directory '/home/alex.bennee/lsrc/qemu.git/slirp' >> make[1]: Nothing to be done for 'all'. >> make[1]: Leaving directory '/home/alex.bennee/lsrc/qemu.git/slirp' >> Generating qemu-version.h with a meson_exe.py custom command >> Compiling C object libqemu-mips64el-softmmu.fa.p/hw_mips_cps.c.o >> Compiling C object libqemu-mips64-softmmu.fa.p/hw_mips_cps.c.o >> Compiling C object libqemu-mipsel-softmmu.fa.p/hw_mips_cps.c.o >> Compiling C object libqemu-mips-softmmu.fa.p/hw_mips_cps.c.o >> Linking target qemu-system-mips >> Linking target qemu-system-mips64el >> Linking target qemu-system-mips64 >> Linking target qemu-system-mipsel >> 10:26:26 [alex.bennee@hackbox2:~/l/q/b/bisect] (a2c93f06…)|BISECTING|✔ + ./tests/venv/bin/avocado run tests/acceptance/machine_mips_malta.py >> /home/alex.bennee/lsrc/qemu.git/builds/bisect/tests/venv/lib/python3.6/site-packages/avocado/plugins/run.py:214: FutureWarning: The following arguments will be changed to boolean soon: sysinfo, output-check, failfast, keep-tmp and ignore-missing-references. >> FutureWarning) >> JOB ID : ccf294ef4e5ebdf19b3a0b53479d574df4ea54ea >> JOB LOG : /home/alex.bennee/avocado/job-results/job-2020-10-07T10.26-ccf294e/job.log >> (1/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core: PASS (5.82 s) >> (2/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores: PASS (15.16 s) >> (3/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores: PASS (15.97 s) >> RESULTS : PASS 3 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0 >> JOB TIME : 40.01 s > > Using: > > -- >8 -- > diff --git a/hw/misc/mips_cpc.c b/hw/misc/mips_cpc.c > index 2f7b2c9592..7c11fb3d44 100644 > --- a/hw/misc/mips_cpc.c > +++ b/hw/misc/mips_cpc.c > @@ -38,6 +38,7 @@ static void mips_cpu_reset_async_work(CPUState *cs, > run_on_cpu_data data) > MIPSCPCState *cpc = (MIPSCPCState *) data.host_ptr; > > cpu_reset(cs); > + cs->halted = 0; > cpc->vp_running |= 1ULL << cs->cpu_index; > } That seems reasonable. Tested-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Do you want to roll that into a proper patch or shall I apply directly into my testing/next tree? -- Alex Bennée
On 10/7/20 12:47 PM, Alex Bennée wrote: > > Philippe Mathieu-Daudé <f4bug@amsat.org> writes: > >> On 10/7/20 11:28 AM, Alex Bennée wrote: >>> >>> David Gibson <david@gibson.dropbear.id.au> writes: >>> >>>> From: Thiago Jung Bauermann <bauerman@linux.ibm.com> >>>> >>>> Instead of setting CPUState::halted to 1 in main_cpu_reset(), use the >>>> start-powered-off property which makes cpu_common_reset() initialize it >>>> to 1 in common code. >>>> >>>> Also change creation of CPU object from cpu_create() to object_new() and >>>> qdev_realize_and_unref() because cpu_create() realizes the CPU and it's not >>>> possible to set a property after the object is realized. >>>> >>>> Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com> >>>> Message-Id: <20200826055535.951207-6-bauerman@linux.ibm.com> >>>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>>> Signed-off-by: David Gibson <david@gibson.dropbear.id.au> >>> >>> I've finally bisected the breakage in check-acceptance to this patch: >>> >>> 10:24:09 [alex.bennee@hackbox2:~/l/q/b/bisect] (102ca966…)|BISECTING|✔ + ./tests/venv/bin/avocado run tests/acceptance/machine_mips_malta.py >>> /home/alex.bennee/lsrc/qemu.git/builds/bisect/tests/venv/lib/python3.6/site-packages/avocado/plugins/run.py:214: FutureWarning: The following arguments will be changed to boolean soon: sysinfo, output-check, failfast, keep-tmp and ignore-missing-references. >>> FutureWarning) >>> JOB ID : 1a71a0a81cf9fb9a387d2ab105f8196a26cab84e >>> JOB LOG : /home/alex.bennee/avocado/job-results/job-2020-10-07T10.24-1a71a0a/job.log >>> (1/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core: PASS (5.70 s) >>> (2/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores: INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout reached\nOriginal status: ERROR\n{'name': '2-tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores', >>> 'logdir': '/home/alex.bennee/avocado/job-r... (28.91 s) >>> (3/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores: INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout reached\nOriginal status: ERROR\n{'name': '3-tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores', >>> 'logdir': '/home/alex.bennee/avocado/job-r... (30.58 s) >>> RESULTS : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 2 | CANCEL 0 >>> JOB TIME : 70.12 s >>> 10:25:27 [alex.bennee@hackbox2:~/l/q/b/bisect] (102ca966…)|BISECTING|✔ 8 + make -j30 >>> make[1]: Entering directory '/home/alex.bennee/lsrc/qemu.git/slirp' >>> make[1]: Nothing to be done for 'all'. >>> make[1]: Leaving directory '/home/alex.bennee/lsrc/qemu.git/slirp' >>> Generating qemu-version.h with a meson_exe.py custom command >>> Compiling C object libqemu-mips64el-softmmu.fa.p/hw_mips_cps.c.o >>> Compiling C object libqemu-mips64-softmmu.fa.p/hw_mips_cps.c.o >>> Compiling C object libqemu-mipsel-softmmu.fa.p/hw_mips_cps.c.o >>> Compiling C object libqemu-mips-softmmu.fa.p/hw_mips_cps.c.o >>> Linking target qemu-system-mips >>> Linking target qemu-system-mips64el >>> Linking target qemu-system-mips64 >>> Linking target qemu-system-mipsel >>> 10:26:26 [alex.bennee@hackbox2:~/l/q/b/bisect] (a2c93f06…)|BISECTING|✔ + ./tests/venv/bin/avocado run tests/acceptance/machine_mips_malta.py >>> /home/alex.bennee/lsrc/qemu.git/builds/bisect/tests/venv/lib/python3.6/site-packages/avocado/plugins/run.py:214: FutureWarning: The following arguments will be changed to boolean soon: sysinfo, output-check, failfast, keep-tmp and ignore-missing-references. >>> FutureWarning) >>> JOB ID : ccf294ef4e5ebdf19b3a0b53479d574df4ea54ea >>> JOB LOG : /home/alex.bennee/avocado/job-results/job-2020-10-07T10.26-ccf294e/job.log >>> (1/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core: PASS (5.82 s) >>> (2/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_7cores: PASS (15.16 s) >>> (3/3) tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_8cores: PASS (15.97 s) >>> RESULTS : PASS 3 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0 >>> JOB TIME : 40.01 s >> >> Using: >> >> -- >8 -- >> diff --git a/hw/misc/mips_cpc.c b/hw/misc/mips_cpc.c >> index 2f7b2c9592..7c11fb3d44 100644 >> --- a/hw/misc/mips_cpc.c >> +++ b/hw/misc/mips_cpc.c >> @@ -38,6 +38,7 @@ static void mips_cpu_reset_async_work(CPUState *cs, >> run_on_cpu_data data) >> MIPSCPCState *cpc = (MIPSCPCState *) data.host_ptr; >> >> cpu_reset(cs); >> + cs->halted = 0; >> cpc->vp_running |= 1ULL << cs->cpu_index; >> } > > That seems reasonable. > > Tested-by: Alex Bennée <alex.bennee@linaro.org> > Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > > Do you want to roll that into a proper patch or shall I apply directly > into my testing/next tree? I'll send a patch, thanks for testing!
diff --git a/hw/mips/cps.c b/hw/mips/cps.c index 615e1a1ad2..23c0f87e41 100644 --- a/hw/mips/cps.c +++ b/hw/mips/cps.c @@ -52,9 +52,6 @@ static void main_cpu_reset(void *opaque) CPUState *cs = CPU(cpu); cpu_reset(cs); - - /* All VPs are halted on reset. Leave powering up to CPC. */ - cs->halted = 1; } static bool cpu_mips_itu_supported(CPUMIPSState *env) @@ -76,7 +73,17 @@ static void mips_cps_realize(DeviceState *dev, Error **errp) bool saar_present = false; for (i = 0; i < s->num_vp; i++) { - cpu = MIPS_CPU(cpu_create(s->cpu_type)); + cpu = MIPS_CPU(object_new(s->cpu_type)); + + /* All VPs are halted on reset. Leave powering up to CPC. */ + if (!object_property_set_bool(OBJECT(cpu), "start-powered-off", true, + errp)) { + return; + } + + if (!qdev_realize_and_unref(DEVICE(cpu), NULL, errp)) { + return; + } /* Init internal devices */ cpu_mips_irq_init_cpu(cpu);