On Fri, Jul 10, 2020 at 05:02:38PM -0300, Thiago Jung Bauermann wrote: > > Philippe Mathieu-Daudé <phi...@redhat.com> writes: > > > On 7/9/20 5:26 AM, Thiago Jung Bauermann wrote: > >> > >> Thiago Jung Bauermann <bauer...@linux.ibm.com> writes: > >> > >>> I'm seeing the vcpu being KVM_RUN'd too early twice during hotplug. > >>> Both of them are before cpu_reset() and ppc_cpu_reset(). > >> > >> Hm, rereading the message obviously the above is partially wrong. The > >> second case happens during ppc_cpu_reset(). > >> > >>> Here's the second: > >>> > >>> #0 in qemu_cpu_kick_thread () > >>> #1 in qemu_cpu_kick () > >>> #2 in queue_work_on_cpu () > >>> #3 in async_run_on_cpu () > >>> #4 in tlb_flush_by_mmuidx () > >>> #5 in tlb_flush () > >>> #6 in ppc_tlb_invalidate_all () > >>> #7 in ppc_cpu_reset () > >>> #8 in device_transitional_reset () > >>> #9 in resettable_phase_hold () > >>> #10 in resettable_assert_reset () > >>> #11 in device_set_realized () > > > > Dunno if related, might be helpful: > > https://www.mail-archive.com/qemu-devel@nongnu.org/msg686477.html > > Yes, it's helpful. Thanks! > > So is was it resolved whether it's appropriate to do a cpu_reset() > within realize? > > Is the core of the problem that device_set_realize() ends up calling > ppc_cpu_reset()?
There are 15 realize functions which call cpu_reset(), currently. Making it safe seems more appropriate than forbidding it. -- Eduardo