Thomas Gleixner tglx@linutronix.de writes:
Vivek Goyal vgoyal@redhat.com writes:
and the host completion injection which handles the queued completion when guest IF=0 does:
obviously IF=1 ...
struct ve_page *vp = vcpu->ve_page; vp->host_current = idx; inject_ve_complete(vcpu);
The guest completion does:
struct ve_page *vp = this_cpu_ptr(&ve_page); struct ve_info *info; info = vp->info + vp->host_current; rcuwait_wake_up(&info->wait);
There are a bunch of life time issues to think about (not rocket science), but you get the idea.
Thanks,
tglx