From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: -EINTR return in domain_relinquish_resources Date: Fri, 23 Jan 2015 14:46:10 +0000 Message-ID: <54C25EB2.6090403@citrix.com> References: <20150121212720.GA24555@l.oracle.com> <54C0D8530200007800057FEB@mail.emea.novell.com> <20150122163840.GB32691@l.oracle.com> <54C21E4D0200007800058992@mail.emea.novell.com> <20150123143247.GE7365@l.oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YEfV1-0003Rz-Vq for xen-devel@lists.xenproject.org; Fri, 23 Jan 2015 14:46:16 +0000 In-Reply-To: <20150123143247.GE7365@l.oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Konrad Rzeszutek Wilk , Jan Beulich Cc: xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org On 23/01/15 14:32, Konrad Rzeszutek Wilk wrote: > On Fri, Jan 23, 2015 at 09:11:25AM +0000, Jan Beulich wrote: >>>>> On 22.01.15 at 17:38, wrote: >>> On Thu, Jan 22, 2015 at 10:00:35AM +0000, Jan Beulich wrote: >>>>>>> On 21.01.15 at 22:27, wrote: >>>>> 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 >>>>> [...] >>>>> 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? >>>> This one, in vcpu_destroy_pagetables(). I'm afraid I overlooked >>>> this when adding the preemption capability here. >>> OK. Would this RFC patch be OK? (I can send it off as normal - just >>> want to make sure you are OK with this being put there) >> Conceptually yes, but there are issues: >> >>> From 1558a9870f438df949a8ad09a27825bd35a9f4ea Mon Sep 17 00:00:00 2001 >>> From: Konrad Rzeszutek Wilk >>> Date: Thu, 22 Jan 2015 11:34:21 -0500 >>> Subject: [PATCH] domain: In vcpu_destroy_pagetables we can return -EINTR >>> instead of -EAGAIN >> You should stop sending such conversions to EAGAIN. We switched >> to ERESTART, and you (just guessing) taking the patch from an >> older Xen version shouldn't result in this recurring mistake. > Nah, Andrew said in his email EAGAIN so that is what I picked. EAGAIN was correct for the domain_destroy hypercall, at this hypercall explicitly has continuation built into its API via EAGAIN. However, you patched a more generic path which affects callers, and is therefore incomplete. I am sorry if I did not explain this very well. ~Andrew