On 07/03/2012 09:36 PM, Eric Blake wrote: > On 07/03/2012 07:52 AM, Orit Wasserman wrote: >> Add migration capabilities that can be queried by the management. >> The management can query the source QEMU and the destination QEMU in order to >> verify both support some migration capability (currently only XBZRLE). >> The management can enable a capability for the next migration by using >> migrate_set_parameter command. > > Couple of comment nits below. Also, if you don't mind a bit of > bike-shedding... > > [roughly translated - feel free to ignore the bulk of this email; the > patch as-is works, if you don't think my alternate design makes sense to > implement] > >> +++ b/hmp-commands.hx >> @@ -861,6 +861,20 @@ Set maximum tolerated downtime (in seconds) for >> migration. >> ETEXI >> >> { >> + .name = "migrate_set_parameter", >> + .args_type = "capability:s,state:b", >> + .params = "", >> + .help = "Enable the usage of a capability for migration", >> + .mhandler.cmd = hmp_migrate_set_parameter, > > This requires the 'state' parameter to be passed. But wouldn't it be > easier to default things to state=true if no parameter was present, > since the most common usage of this command will be to enable, rather > than disable, a migration parameter? After thinking about it , I prefer to leave to command as it is. For me it feels strange that the enable will be different from the disable.
Orit > >> - /* no migration has happened ever */ >> + /* no migration has happened ever show enabled capabilities */ > > Missing some punctuation, so this was hard to read. Maybe: > > /* no migration has ever happened; show enabled capabilities */ > >> +++ b/qapi-schema.json > >> +## >> +# @MigrationCapabilityInfo >> +# >> +# Migration capability information >> +# >> +# @capability: capability enum >> +# >> +# Since: 1.2 >> +## >> +{ 'type': 'MigrationCapabilityInfo', >> + 'data': { 'capability' : 'MigrationCapability', 'state' : 'bool' } } > > Back to the bike-shedding - if you would mark this '*state':'bool', then > the enabled parameter becomes optional on input (it should still always > be present on query-migration-capabilities output, though). > >> +migrate_set_parameters >> +------- >> + >> +Enable/Disable migration capabilities >> + >> +- "xbzrle": xbzrle support >> + >> +Arguments: >> + >> +Example: >> + >> +-> { "execute": "migrate_set_parameters" , "arguments": >> + { "parameters": { "capability": "xbzrle", "state": true } ] } } > > Missing a '[' after "parameters": >