* Ashijeet Acharya (ashijeetacha...@gmail.com) wrote: > On Thu, Dec 15, 2016 at 8:59 PM, Dr. David Alan Gilbert > <dgilb...@redhat.com> wrote: > > * Ashijeet Acharya (ashijeetacha...@gmail.com) wrote: > >> Add a new option "--only-migratable" in qemu which will allow to add > >> only those devices which will not fail qemu after migration. Devices > >> set with the flag 'unmigratable' cannot be added when this option will > >> be used. > >> > >> Signed-off-by: Ashijeet Acharya <ashijeetacha...@gmail.com> > >> --- > >> include/migration/migration.h | 3 +++ > >> qemu-options.hx | 10 ++++++++++ > >> vl.c | 4 ++++ > >> 3 files changed, 17 insertions(+) > >> > >> diff --git a/include/migration/migration.h b/include/migration/migration.h > >> index c309d23..40b3697 100644 > >> --- a/include/migration/migration.h > >> +++ b/include/migration/migration.h > >> @@ -38,6 +38,9 @@ > >> #define QEMU_VM_COMMAND 0x08 > >> #define QEMU_VM_SECTION_FOOTER 0x7e > >> > >> +/* for vl.c */ > >> +extern int only_migratable; > >> + > >> struct MigrationParams { > >> bool blk; > >> bool shared; > >> diff --git a/qemu-options.hx b/qemu-options.hx > >> index c534a2f..7cc2cc5 100644 > >> --- a/qemu-options.hx > >> +++ b/qemu-options.hx > >> @@ -3574,6 +3574,16 @@ be used to change settings (such as migration > >> parameters) prior to issuing > >> the migrate_incoming to allow the migration to begin. > >> ETEXI > >> > >> +DEF("only-migratable", 0, QEMU_OPTION_only_migratable, \ > >> + "-only-migratable allow only migratable devices\n", QEMU_ARCH_ALL) > >> +STEXI > >> +@item -only-migratable > >> +@findex -only-migratable > >> +Don't allow adding devices that will fail QEMU after migration. Devices > >> set with > >> +the flag unmigratable are not allowed to be added neither statically nor > >> +dynamically > >> +ETEXI > > > > Can I suggest rewording that as: > > Only allow migratable devices. Devices will not be allowed to enter an > > unmigratable > > state. > > No problem, will fix that in v2. > > >> DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \ > >> "-nodefaults don't create default devices\n", QEMU_ARCH_ALL) > >> STEXI > >> diff --git a/vl.c b/vl.c > >> index d77dd86..82bffb9 100644 > >> --- a/vl.c > >> +++ b/vl.c > >> @@ -180,6 +180,7 @@ bool boot_strict; > >> uint8_t *boot_splash_filedata; > >> size_t boot_splash_filedata_size; > >> uint8_t qemu_extra_params_fw[2]; > >> +int only_migratable = 0; /* turn it off unless user states otherwise */ > >> > >> int icount_align_option; > >> > >> @@ -3914,6 +3915,9 @@ int main(int argc, char **argv, char **envp) > >> } > >> incoming = optarg; > >> break; > >> + case QEMU_OPTION_only_migratable: > >> + only_migratable = 1; > >> + break; > >> case QEMU_OPTION_nodefaults: > >> has_defaults = 0; > >> break; > > > > Does this need to go in the 'first pass of option parsing' loop > > to make sure that it doesn't matter which order it's in and it > > stops other devices on the command line? > > I am not sure what you meant by order here; > > Do you mean the order as in the place --only-migratable is used, > > 1. ./bin/qemu-system-x86_64 -m 1024 -name f15 -device > nec-usb-xhci,id=xhci -device usb-uas,id=uas,bus=xhci.0 > --only-migratable > 2. ./bin/qemu-system-x86_64 -m 1024 -name f15 --only-migratable > -device nec-usb-xhci,id=xhci -device usb-uas,id=uas,bus=xhci.0 > > Because I have tested both and they seem to be working equally fine. > Sorry if I understood wrong.
If that works OK that's fine, no change needed. Dave > > Ashijeet > > > Dave > > > >> -- > >> 2.6.2 > >> > > -- > > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK