|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
Re: [Xen-devel] suspending execution within Xen
 
 Xen on x86 doesn't support stack-based continuations within the 
hypervisor -- that is, there is no way to deschedule the current domain 
within Xen and then automatically return to your current point of 
execution when you are re-scheduled.
 If you have further work to do, before returning to guest context, when 
the domain is rescheduled then you need to install your own hook 
function into vcpu->arch.schedule_tail. You'll need to xmalloc any 
space you need for continuation data.
 -- Keir
On 29 Jun 2005, at 12:53, Avi Kivity wrote:
 I am trying to send a stream of events about one domain to another. so 
I
set up a ring between the monitoring domain and xen (not the monitored
domain). however I am having trouble blocking when buffer space runs
out.
the intuitive
   while (!buffer_space_available())
       do_block();
does not work; do_block() appears to return to guest context, not to 
the
while loop (is this correct?). the other alternative,
    while (!buffer_space_available())
        if (!test_and_set_bit(EDF_BLOCKED, &ed->ed_flags))
            domain_sleep(ed);
freezes xen solid.
is there a way to do it? am I missing something obvious?
Avi
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |   
 
 | 
    | 
  
  
    |   | 
    |