From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mukesh Rathor Subject: Re: [BUGFIX][PATCH 4/4] XEN_DOMCTL_gdbsx_guestmemio: always do the copyback. Date: Tue, 7 Jan 2014 15:05:36 -0800 Message-ID: <20140107150536.53a8c225@mantra.us.oracle.com> References: <1388857936-664-1-git-send-email-dslutz@verizon.com> <1388857936-664-5-git-send-email-dslutz@verizon.com> <20140106175349.6cbd190b@mantra.us.oracle.com> <1389088824.31766.105.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1389088824.31766.105.camel@kazak.uk.xensource.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: Ian Campbell Cc: Keir Fraser , Stefano Stabellini , George Dunlap , Ian Jackson , Don Slutz , xen-devel@lists.xen.org, Jan Beulich List-Id: xen-devel@lists.xenproject.org On Tue, 7 Jan 2014 10:00:24 +0000 Ian Campbell wrote: > On Mon, 2014-01-06 at 17:53 -0800, Mukesh Rathor wrote: > > On Sat, 4 Jan 2014 12:52:16 -0500 > > Don Slutz wrote: > > > > > The gdbsx code expects that domctl->u.gdbsx_guest_memio.remain is > > > returned. > > > > > > Without this gdb does not report an error. > > > > > > With this patch and using a 1G hvm domU: > > > > > > (gdb) x/1xh 0x6ae9168b > > > 0x6ae9168b: Cannot access memory at address 0x6ae9168b > > > > > > Signed-off-by: Don Slutz > > > --- > > > xen/arch/x86/domctl.c | 3 +-- > > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > > > diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c > > > index ef6c140..4aa751f 100644 > > > --- a/xen/arch/x86/domctl.c > > > +++ b/xen/arch/x86/domctl.c > > > @@ -997,8 +997,7 @@ long arch_do_domctl( > > > domctl->u.gdbsx_guest_memio.len; > > > > > > ret = gdbsx_guest_mem_io(domctl->domain, > > > &domctl->u.gdbsx_guest_memio); > > > - if ( !ret ) > > > - copyback = 1; > > > + copyback = 1; > > > } > > > break; > > > > > > > Ooopsy... my thought was that an application should not even look at > > remain if the hcall/syscall failed, but forgot when writing the > > gdbsx itself :). Think of it this way, if the call didn't even make > > it to xen, and some reason the ioctl returned non-zero rc, then > > remain would still be zero. So I think we should fix gdbsx instead > > of here: > > > > xg_write_mem(): > > if ((rc=_domctl_hcall(XEN_DOMCTL_gdbsx_guestmemio, frombuf, > > buflen))) { > > XGERR("ERROR: failed to write %d bytes. errno:%d rc:%d\n", > > iop->remain, errno, rc); > > Isn't this still using iop->remain on failure which is what you say > shouldn't be done? Right, it was just a guidline code with bad cut and paste of XGERR().. so picky :) :)... Mukesh