(please, wrap our emails at 78 chars) On Tue, May 14, 2019 at 12:08:23AM +0300, Liran Alon wrote: > 3) From (2), we should have theoretically deduced that for every > #VMExit, there is a need to kick the sibling hyperthread also outside > of guest until the #VMExit is completed. That's not in fact quite true; all you have to do is send the IPI. Having one sibling IPI the other sibling carries enough guarantees that the receiving sibling will not execute any further guest instructions. That is, you don't have to wait on the VMExit to complete; you can just IPI and get on with things. Now, this is still expensive, But it is heaps better than doing a full sync up between siblings.