From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH v1 2/4] xen-version: Add third parameter (len) to the do_version hypercall. Date: Fri, 9 Oct 2015 15:48:55 +0100 Message-ID: <1444402135.1410.405.camel@citrix.com> References: <1444359390-14153-1-git-send-email-konrad.wilk@oracle.com> <1444359390-14153-3-git-send-email-konrad.wilk@oracle.com> <5617962602000078000A99DE@prv-mh.provo.novell.com> <5617B316.7040408@citrix.com> <1444394805.1410.376.camel@citrix.com> <5617ED8A02000078000A9C4D@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1ZkYyh-00083V-F3 for xen-devel@lists.xenproject.org; Fri, 09 Oct 2015 14:48:59 +0000 In-Reply-To: <5617ED8A02000078000A9C4D@prv-mh.provo.novell.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: Jan Beulich , Andrew Cooper , Konrad Rzeszutek Wilk Cc: mpohlack@amazon.de, ian.jackson@eu.citrix.com, dgdegra@tycho.nsa.gov, wei.liu2@citrix.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org On Fri, 2015-10-09 at 08:38 -0600, Jan Beulich wrote: > > > > On 09.10.15 at 14:46, wrote: > > On Fri, 2015-10-09 at 13:29 +0100, Andrew Cooper wrote: > > > On 09/10/15 09:25, Jan Beulich wrote: > > > > > > > On 09.10.15 at 04:56, wrote: > > > > > All existing commands ignore the parameter so this does > > > > > not break the ABI. > > > > Does it not? What about the debug mode clobbering of hypercall > > > > argument registers? > > > > > > That is an implementation detail of the hypervisor. It is irrelevant > > > to > > > guests whether Xen chooses to clobber the spare registers or not. > > > > Or in other words the effect here is to clobber one _less_ register, > > and > > the guest cannot have been relying on a register getting so clobbered > > (if > > nothing else it doesn't happen in debug=n builds). > > No, the one less register clobbered is in the first clobbering phase, > where _unused_ inputs get clobbered (for hypervisor internal > consumption). The second clobbering phase destroys all _used_ > input registers' contents (the guest visible values), and _this_ is > what results in ABI breakage (because callers assuming the > hypercall to take two arguments assume that the 3rd argument > register will retain its contents. Ah, yes, that's correct. My mistake. Ian.