On 13/09/17 07:02, David Gibson wrote: >>> Alexey - do you recall from your analysis why these fields were no >>> longer deemed necessary, and how your TCG tests were configured? >> >> I most certainly did not do analysis (my bad. sorry) - I took the patch >> from David as he left the team, fixed to compile and pushed away. I am also >> very suspicions we did not try migrating TCG or anything but pseries. My >> guest that things did not break (if they did not which I am not sure about, >> for the TCG case) because the interrupt controller (XICS) or the >> pseries-guest took care of resending an interrupt which does not seem to be >> the case for mac99. > > Right, that's probably true. The main point, though, is that these > fields were dropped a *long* time ago, when migration was barely > working to begin with. In particular I'm pretty sure most of the > non-pseries platforms were already pretty broken for migration > (amongst other things). > > Polishing the mac platforms up to working again, including migration, > is a reasonable goal. But it can't be at the expense of pseries, > which is already working, used in production, and much better tested > than mac99 or g3beige ever were.
Oh I completely agree since I'm well aware pseries likely has more users than the Mac machines - my question was directed more about why we support backwards migration. I spent several hours yesterday poking my Darwin test case with trying the different combinations of pending_interrupts, irq_input_state and access_type and could easily provoke migration failures unless all 3 of the fields were present so a practical test shows they are still required for TCG migration. I think ppc_set_irq()'s use of the interrupt fields in hw/ppc/ppc.c and the subsequent reference to pending interrupts in target/ppc may explain why I see freezes/hangs until a key is pressed in many cases. ATB, Mark.