* Lukas Straub (lukasstra...@web.de) wrote:
> Terminology:
> instance = one (nbd) blockdev/one chardev/the single migrationstate
> connection = one TCP connection
> 
> Hello Everyone,
> Having read all the comments, here is proposal v2:
> Every instance registers itself with a unique name in the form 
> "blockdev:<node-name>", "chardev:<chardev-name>" and "migration" using 
> yank_register_instance which will do some sanity checks like checking if the 
> same name exists already. Then (multiple) yank functions can be registered as 
> needed with that single name. When the instance exits/is removed, it 
> unregisters all yank functions and unregisters it's name with 
> yank_unregister_instance which will check if all yank functions where 
> unregistered.
> Every instance that supports the yank feature will register itself and the 
> yank functions unconditionally (No extra 'yank' option per instance).
> The 'query-yank' oob qmp command lists the names of all registered instances.
> The 'yank' oob qmp command takes a list of names and for every name calls all 
> yank functions registered with that name. Before doing anything, it will 
> check that all names exist.
> 
> If the instance has multiple connections (say, migration with multifd), i 
> don't think it makes much sense to just shutdown one connection. Calling 
> 'yank' on a instance will always shutdown all connections of that instance.

Agreed.

> Yank functions are generic and in no way limited to connections. Say, if 
> migration is started to an 'exec:' address, migration could register a yank 
> function to kill that external command on yank (Won't be implemented yet 
> though).

One thing we need to be care of is that the yank functions stay suitable
for OOB calling.

Dave

> Regards,
> Lukas Straub


--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK


Reply via email to