WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] suspending execution within Xen

On Wed, 2005-06-29 at 13:42 +0100, Keir Fraser wrote:
> 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.
> 

this will probably serve. thanks.


>   -- 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

<Prev in Thread] Current Thread [Next in Thread>