> How frequently could the problem be reproduced? Once in 10 attempts or 100 attempts?
Very rare because the racy section is short.
> Also the _move_claim[6] first updates the migration object and then claims the pci devices. So I don't see how this can race with the _update_available_resource() run.
Problem is not in the claim step, but in the free step. Currently clean_usage() part isn't protected from below:
> How frequently could the problem be reproduced? Once in 10 attempts or 100 attempts?
Very rare because the racy section is short.
> Also the _move_claim[6] first updates the migration object and then claims the pci devices. So I don't see how this can race with the _update_ available_ resource( ) run.
Problem is not in the claim step, but in the free step. Currently clean_usage() part isn't protected from below:
3075 instance.save() drop_migration_ context( )
3076 instance.