On Wed, Apr 14, 2021 at 03:51:37PM +0200, Vitaly Kuznetsov wrote:
> Eduardo Habkost <[email protected]> writes:
> 
> > My apologies, this was lost under the noise in my mail inbox.
> > (I promise I'm trying to improve)
> >
> > On Wed, Mar 31, 2021 at 01:39:48PM +0200, Vitaly Kuznetsov wrote:
> >> Commit 561dbb41b1d7 "i386: Make migration fail when Hyper-V reenlightenment
> >> was enabled but 'user_tsc_khz' is unset" forbade migrations with when guest
> >> has opted for reenlightenment notifications but 'tsc-frequency' wasn't set
> >> explicitly on the command line. This works but the migration fails late and
> >> this may come as an unpleasant surprise. To make things more explicit,
> >> require 'tsc-frequency=' on the command line when 'hv-reenlightenment' was
> >> enabled. Make the change affect 6.0+ machine types only to preserve
> >> previously-valid configurations.
> >> 
> >> Signed-off-by: Vitaly Kuznetsov <[email protected]>
> >> Acked-by: Dr. David Alan Gilbert <[email protected]>
> >
> > Even if the 6.0 release gets delayed, I wouldn't be comfortable
> > including this in a -rc4.
> >
> > What if the user does not plan to live migrate the machine at
> > all?  Why is this case different from the ~25
> > migrate_add_blocker() calls in QEMU, where we block migration but
> > still let the VM run?
> 
> The question is when do we want to let the user know about the
> problem. By refusing to start with 'hv-reenlightenment' and without
> 'tsc-frequency' we make it sure he knows early. 
> 
> We can, indeed, replace this with migrate_add_blocker() call but the
> fact that the VM is not migratable may come as a (late) surprise (we
> can certainly print a warning but these may be hidden by upper layers). 
> 
> Also, v1 of this patch was implementing a slightly different approach
> failing the migration late if we can't set tsc frequency on the
> destination host. Explicit 'tsc-frequency=' was not required.
> 
> Personally, I'm comfortable with any approach, please advise.

I agree with what you are trying to do, I just wonder why we
wouldn't do exactly the same for all other migrate_add_blocker()
calls too (whatever the solution we choose here).

I'd suggest the following:

- For people who use "-only-migratable", using
  migrate_add_blocker() here already solves the problem.

- For people who don't use "-only-migratable", we could change
  migrate_add_blocker() to print a warning by default (only on
  machine types where live migration is supported).

- For people who don't need live migration and don't want to see
  those warnings, we can introduce a "-no-migration" option.

-- 
Eduardo


Reply via email to