All of lore.kernel.org
 help / color / mirror / Atom feed
* -EINTR return in domain_relinquish_resources
@ 2015-01-21 21:27 Konrad Rzeszutek Wilk
  2015-01-21 21:39 ` Andrew Cooper
  2015-01-22 10:00 ` Jan Beulich
  0 siblings, 2 replies; 14+ messages in thread
From: Konrad Rzeszutek Wilk @ 2015-01-21 21:27 UTC (permalink / raw)
  To: xen-devel

As I was looking at some of the XSA I realized that the
call-chain of:

 domain_relinquish_resources
   ->vcpu_destroy_pagetables
     -> put_page_and_type_preemptible
        -> __put_page_type
		returns -EINTR

which means we end up at:
 618         rc = domain_relinquish_resources(d);                                    
 619         if ( rc != 0 )                                                          
 620         {                                                                       
 621             if ( rc == -ERESTART )                                              
 622                 rc = -EAGAIN;                                                   
 623             break;             <=== with rc=-EINTR
 624         }                                         

And return -EINTR to user-space - which loop in 
'xc_domain_destroy' is only looking for:

 112 int xc_domain_destroy(xc_interface *xch,                                        
 113                       uint32_t domid)                                           
 114 {                                                                               
 115     int ret;                                                                    
 116     DECLARE_DOMCTL;                                                             
 117     domctl.cmd = XEN_DOMCTL_destroydomain;                                      
 118     domctl.domain = (domid_t)domid;                                             
 119     do {                                                                        
 120         ret = do_domctl(xch, &domctl);                                          
 121     } while ( ret && (errno == EAGAIN) );                                       
 122     return ret;                                                                 
 123 }                                

which to my reading looks like we would exit out and leave
an DOMDYING_dying domain. Looking at the code it seems possible
to continue on if the user does 'xl destroy <X>' guest again,
but I was wondering if:

 a). Should the toolstack (libxl or libxc) have the code to
     handle -EINTR?

 b). Or should the hypervisor convert the -EINTR to -ERESTART
     (or -EAGAIN) - which most of the code (see users of
     get_page_type_preemptible) do right now?

Thanks!

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2015-01-26  9:36 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-21 21:27 -EINTR return in domain_relinquish_resources Konrad Rzeszutek Wilk
2015-01-21 21:39 ` Andrew Cooper
2015-01-21 22:57   ` Andrew Cooper
2015-01-22 16:37     ` Konrad Rzeszutek Wilk
2015-01-22 10:00 ` Jan Beulich
2015-01-22 16:38   ` Konrad Rzeszutek Wilk
2015-01-23  9:11     ` Jan Beulich
2015-01-23 14:32       ` Konrad Rzeszutek Wilk
2015-01-23 14:46         ` Andrew Cooper
2015-01-23 15:34           ` Jan Beulich
2015-01-23 15:46             ` Konrad Rzeszutek Wilk
2015-01-23 16:03               ` Jan Beulich
2015-01-23 17:21                 ` Konrad Rzeszutek Wilk
2015-01-26  9:36                   ` Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.