On 08/06/2017 11:16, Peter Xu wrote: >> Oh, I see what you mean: set up the wakeup handler in vmx_vcpu_pi_put >> and rely on PI.ON to wake up the sleeping process immediately. That >> should be feasible, but overall I like the current pre_block/post_block >> structure, and I think it's simpler. The only thing to be careful about >> is leaving the IRTE unmodified when scheduling out a blocked VCPU, which >> is cleaned up and simplified in patch 3. >> >> So I understand that the state may seem a bit too complicated as >> of this patch, but hopefully the next two make it clearer. > After re-read the codes and patches I got the point. Indeed current > way should be clearer since pre/post_block are mostly handling NV/DST > while pi_load/put are for SN bit. Thanks! Almost: pi_load handles NDST too. However, I think with patch 3 it's clearer how pi_load handles the nesting inside pre_block...post_block. Thanks, Paolo