[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 06/10] x86/mem-sharing: copy GADDR based shared guest areas


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Mon, 16 Oct 2023 12:59:35 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/gh1Des8IlSF9yyXu7opSsAM+fjHaM6UD8nirwQDchA=; b=Aqb2rhl7Wj3ztt13HIBxwVszeQzJf/L+rZrr0pPfTxfGJftB1TYfKHmcmVI706zyi9qe+ON+4RCM5mEiLTKAzLOzXkeFQNifK1pTknqRzW9wUVKjKns9z5X/gCcuZ4CiskYCiaUzIqGqc7LQZkBwghVRMS+oNBSe28zHKA4xDGZQ6jYXX9OxvYN2ogEnRP8biP9GL84PQmThRUicd62UNCYzio67h9nSr0leEy9Tb1anYfrCcEw7gzBefFLwODYjCh0/nXATk1+ynwKfnlkSmelx1GiujGnHXYDQXk/ooJwqjaDbiHK/+FHqo0kPBJoyJ7DWFJEoPyO4sQGM+cgBSg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RkUhlcvrQVFTPK/9pkvq2HE9JfhdbjFL1m3ftXNXSMQrNm/0D30we+KWrTmctdAxVD3zRbRXX2u0gcdqPAkolS8b2hk1ZMJFf8itkTeWHG5hBsYlRlhMoV76DNc0ogjWuFPFN+52HyZ9qNmLiy/2V6nwhZvxqRVlPhburfGbEXu7kJyboKJ7VB8ixMJybonyufKdWesWIzhhtvqfhQxlwvUQ0Oa4THGWi52q+WNjzBGOwhoomUqOvLtdul/ZJpWm99tgvyQcgXl8KlZ2J/IATYHC+mH6b3rN8W81cV32pciuaEW4k8LRuGZmc37hLo40kquzVCkzdDxqxLnf2RK1NA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Tamas K Lengyel <tamas@xxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Mon, 16 Oct 2023 10:59:57 +0000
  • Ironport-data: A9a23:Ycamxql4VUopU0ZzjnfKEQbo5gxkJ0RdPkR7XQ2eYbSJt1+Wr1Gzt xIeXz3SOvrfa2qkKY9yboW290oO78fcz9M3SgJr+C5jQyMWpZLJC+rCIxarNUt+DCFhoGFPt JxCN4aafKjYaleG+39B55C49SEUOZmgH+e6UKicfHkpGWeIcQ954Tp7gek1n4V0ttawBgKJq LvartbWfVSowFaYCEpNg064gE0p5K+aVA8w5ARkPqkT5QGGzhH5MbpETU2PByqgKmVrNrbSq 9brlNmR4m7f9hExPdKp+p6TnpoiG+O60aCm0xK6aoD66vRwjnVaPpUTbZLwXXx/mTSR9+2d/ f0W3XCGpaXFCYWX8AgVe0Ew/yiTpsSq8pefSZS0mZT7I0Er7xIAahihZa07FdRwxwp5PY1B3 aQZByBOPxGzvPC74o+7afgzhdV6M8a+aevzulk4pd3YJdAPZMmbBonvu5pf1jp2gd1SF/HDY cZfcSBocBnLfxxIPBEQFY46m+CrwHL4dlW0qnrM/fZxvzeVkVw3ieC1WDbWUoXiqcF9hEGXq 3iA523kKhobKMae2XyO9XfEaurnxHmnCdlPROTinhJsqFae+0khVRxPaUOqhr6am0Caf9tlM VNBr0LCqoB3riRHVOLVXRe1vXqFtR40QMdLHqsx7wTl4rbd5g+CLnQHSjNHZ80rsIk9QjlC/ kCNt8PkA3poqrL9YXCA8raZqxuiNC5TKnUNDQcfVhcM6dTnpIA1jzrMQ8xlHarzicf6cRngz jbPoCUgirE7ic8Qy7797V3BmyirpJXCUkgy/Aq/Y46+xgZwZYrga4n271HetK5ENNzAFgHHu 2UYkc+D6uxIFYuKiCGGXOQKGveu+uqBNzrfx1VoGvHN6giQxpJqRqgIiBkWGaujGp9slePBC KMLhT5s2Q==
  • Ironport-hdrordr: A9a23:njOjt6yYIX1u0mOmrS2/KrPwFr1zdoMgy1knxilNoH1uHvBw8v rEoB1173DJYVoqNk3I4OrwXpVoI0m9yXcF2+gs1N6ZNWGN1VdAR7sSjrcKrQeQfxHWx6pw0r phbrg7KPCYNykcsS8i2njbLz/3+qjjzJyV
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Mon, Oct 16, 2023 at 11:55:25AM +0200, Jan Beulich wrote:
> On 04.10.2023 15:53, Roger Pau Monne wrote:
> > @@ -1950,7 +1978,15 @@ int mem_sharing_fork_reset(struct domain *d, bool 
> > reset_state,
> >  
> >   state:
> >      if ( reset_state )
> > +    {
> >          rc = copy_settings(d, pd);
> > +        if ( rc == -ERESTART )
> > +            /*
> > +             * Translate to -EAGAIN, see TODO comment at top of function 
> > about
> > +             * hypercall continuations.
> > +             */
> > +            rc = -EAGAIN;
> > +    }
> 
> Are existing callers known to properly handle EAGAIN? I'm worried of the
> verbosity that was no lost here.

No idea about the callers using XENMEM_sharing_op_fork_reset, but it
did seem the best option rather than leaking -ERESTART to callers.  We
have no callers of xc_memshr_fork_reset() in the tree.

vm_event_resume() will trigger an assert if mem_sharing_fork_reset()
fails with any error code, so doesn't make much difference there if
the return is -EAGAIN or -ERESTART.

My initial proposal had -EBUSY IIRC.

Thanks, Roger.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.