[Crash-utility] [PATCH] s390: Fix printing of control and floating point registers

Michael Holzheu holzheu at linux.vnet.ibm.com
Thu Sep 15 16:23:54 UTC 2011


Hello Waylando,

Not sure what your problem is. I have sent the patch to the crash
maintainer Dave Anderson and the crash mailing list.

Anything wrong with this (besides that my first patch was not correct)?

Michael

On Thu, 2011-09-15 at 09:07 -0700, Waylando Mack wrote:
> this isn't dave and stop sending these emails
> 
> 
> 
> 
> From: Dave Anderson <anderson at redhat.com>
> To: holzheu at linux.vnet.ibm.com
> Cc: crash <crash-utility at redhat.com>
> Sent: Thursday, September 15, 2011 8:24 AM
> Subject: Re: [Crash-utility] [PATCH] s390: Fix printing of control and
> floating point registers
> 
> 
> 
> ----- Original Message -----
> > Hi Dave,
> > 
> > Control registers 8-15 (s390x and s390) and floating point registers
> 8-15
> > (s390x only) are not printed correctly because the we copy the
> content from
> > the wrong location of the save area.
> > 
> > Looks like nobody has realized this problem in the past because
> those
> > registers are not too important for debugging kernel problems...
> > 
> > This patch fixes this problem and now control and floating point
> registers
> > are printed correctly.
> > 
> > Signed-off-by: Michael Holzheu <holzheu at linux.vnet.ibm.com>
> 
> Hi Michael,
> 
> The "ULONG(ptr + 8)" below doesn't seem right:
> 
> > --- a/s390.c
> > +++ b/s390.c
> > @@ -861,16 +861,16 @@ s390_print_lowcore(char* lc, struct bt_i
> > fprintf(fp," %#010lx %#010lx %#010lx %#010lx\n",
> > tmp[0], tmp[1], tmp[2], tmp[3]);
> > 
> > - tmp[0]=ULONG(ptr);
> > - tmp[1]=ULONG(ptr + S390_WORD_SIZE);
> > - tmp[2]=ULONG(ptr + 2 * S390_WORD_SIZE);
> > - tmp[3]=ULONG(ptr + 3 * S390_WORD_SIZE);
> > + tmp[0]=ULONG(ptr + 8);
> > + tmp[1]=ULONG(ptr + 9 * S390_WORD_SIZE);
> > + tmp[2]=ULONG(ptr + 10 * S390_WORD_SIZE);
> > + tmp[3]=ULONG(ptr + 11 * S390_WORD_SIZE);
> 
> And here as well:
> 
> > --- a/s390x.c
> > +++ b/s390x.c
> > @@ -1184,16 +1184,16 @@ s390x_print_lowcore(char* lc, struct bt_
> > tmp[3]=ULONG(ptr + 7 * S390X_WORD_SIZE);
> > fprintf(fp," %#018lx %#018lx\n", tmp[0],tmp[1]);
> > fprintf(fp," %#018lx %#018lx\n", tmp[2],tmp[3]);
> > - tmp[0]=ULONG(ptr);
> > - tmp[1]=ULONG(ptr + S390X_WORD_SIZE);
> > - tmp[2]=ULONG(ptr + 2 * S390X_WORD_SIZE);
> > - tmp[3]=ULONG(ptr + 3 * S390X_WORD_SIZE);
> > + tmp[0]=ULONG(ptr + 8);
> > + tmp[1]=ULONG(ptr + 9 * S390X_WORD_SIZE);
> > + tmp[2]=ULONG(ptr + 10 * S390X_WORD_SIZE);
> > + tmp[3]=ULONG(ptr + 11 * S390X_WORD_SIZE);
> 
> Shouldn't they both be:
> 
>   tmp[0]=ULONG(ptr + 8 * S390_WORD_SIZE);
> 
> Dave
> 
> 
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility
> 
> 
> 
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility





More information about the Crash-utility mailing list