auto-import changelog data from crash-3.8-2.src.rpm

Thu Jun 17 2004 Dave Anderson <anderson@redhat.com> 3.8-2
- updated source package to crash-3.8.tar.gz
- diskdump support
- x86_64 processor support
This commit is contained in:
cvsdist 2004-09-09 03:57:03 +00:00
parent d298941397
commit 6f554a50a6
4 changed files with 14 additions and 171 deletions

View File

@ -1 +1 @@
crash-3.7.tar.gz
crash-3.8.tar.gz

View File

@ -1,162 +0,0 @@
--- crash/memory.c.orig 2003-09-10 14:06:01.000000000 -0400
+++ crash/memory.c 2003-09-10 14:06:46.000000000 -0400
@@ -6170,6 +6170,7 @@
si->flags &= ~SLAB_WALKTHROUGH;
si->cpucached_cache = 0;
si->num_slabs = si->inuse = 0;
+ gather_cpudata_list(si);
slab_s_buf = GETBUF(SIZE(slab_s));
@@ -6204,7 +6205,9 @@
tmp = INT(slab_s_buf + OFFSET(slab_s_inuse));
si->inuse += tmp;
- gather_cpudata_list(si);
+ if (ACTIVE())
+ gather_cpudata_list(si);
+
si->s_mem = ULONG(slab_s_buf +
OFFSET(slab_s_s_mem));
gather_slab_cached_count(si);
--- crash/task.c.orig 2003-09-10 14:06:05.000000000 -0400
+++ crash/task.c 2003-09-10 14:06:50.000000000 -0400
@@ -3921,7 +3921,7 @@
cnt++;
}
} else if (VALID_MEMBER(runqueue_cpu)) {
- for (i = 0; i < NR_CPUS; i++) {
+ for (i = 0; i < kt->cpus; i++) {
runqaddr = runq + (SIZE(runqueue) * rq_idx(i));
readmem(runqaddr, KVADDR, runqbuf,
SIZE(runqueue), "runqueues curr",
--- crash/lkcd_x86_trace.c.orig 2003-09-19 10:32:11.000000000 -0400
+++ crash/lkcd_x86_trace.c 2003-09-22 14:19:44.000000000 -0400
@@ -891,6 +891,19 @@
#define KERNEL_EFRAME_SZ 13 /* no ss and esp */
#define USER_EFRAME_SZ 15
+#ifdef REDHAT
+#undef __KERNEL_CS
+#undef __KERNEL_DS
+#undef __USER_CS
+#undef __USER_DS
+
+#define __KERNEL_CS 0x10
+#define __KERNEL_DS 0x18
+
+#define __USER_CS 0x23
+#define __USER_DS 0x2B
+#endif
+
/*
* Check if the exception frame is of kernel or user type
* Is checking only DS and CS values sufficient ?
@@ -900,6 +913,11 @@
if (((regs->xcs & 0xffff) == __KERNEL_CS) &&
((regs->xds & 0xffff) == __KERNEL_DS))
return KERNEL_EFRAME;
+#ifdef REDHAT
+ else if (((regs->xcs & 0xffff) == 0x60) &&
+ ((regs->xds & 0xffff) == 0x68))
+ return KERNEL_EFRAME;
+#endif
else if (((regs->xcs & 0xffff) == __USER_CS) &&
((regs->xds & 0xffff) == __USER_DS))
return USER_EFRAME;
@@ -1100,7 +1118,9 @@
* a valid RA at a higher stack address.
*/
if ((bt->flags & BT_SPECULATE) &&
- !STREQ(funcname, "context_switch"))
+ !STREQ(funcname, "context_switch") &&
+ !STREQ(funcname, "die") &&
+ !(bt->frameptr && ((bp+4) < bt->frameptr)))
SEEK_VALID_RA();
}
#else
@@ -1188,7 +1208,7 @@
ra, sp, bp, asp, 0, 0, 0, 0);
return(trace->nframes);
#ifdef REDHAT
- } else if (strstr(func_name, "cpu_idle")) {
+ } else if (STREQ(func_name, "cpu_idle")) {
ra = 0;
bp = sp = saddr - 4;
asp = curframe->asp;
@@ -1634,8 +1654,12 @@
if ((frmp = trace->frame)) {
do {
- if (frmp->error)
+ if (frmp->error) {
errcnt++;
+ if (!(bt->flags & BT_SPECULATE) &&
+ !bt->frameptr)
+ bt->frameptr = frmp->fp;
+ }
if (BT_REFERENCE_CHECK(bt))
do_bt_reference_check(bt, frmp);
frmp = frmp->next;
--- crash/defs.h.orig 2003-09-22 10:40:29.000000000 -0400
+++ crash/defs.h 2003-09-19 15:10:42.000000000 -0400
@@ -503,6 +503,7 @@
struct stack_hook *hp;
struct stack_hook *textlist;
struct reference *ref;
+ ulong frameptr;
ulong debug;
};
--- crash/x86.c.orig 2003-09-19 10:32:26.000000000 -0400
+++ crash/x86.c 2003-09-19 10:28:17.000000000 -0400
@@ -1401,15 +1401,28 @@
/* check for kernel exception frame */
- if (INSTACK(pt->reg_value[INT_EFRAME_EBP], bt) &&
- ((short)pt->reg_value[INT_EFRAME_CS] == 0x10) &&
+ if (((short)pt->reg_value[INT_EFRAME_CS] == 0x10) &&
((short)pt->reg_value[INT_EFRAME_DS] == 0x18) &&
((short)pt->reg_value[INT_EFRAME_ES] == 0x18) &&
IS_KVADDR(pt->reg_value[INT_EFRAME_EIP])) {
+ if (!(machdep->flags & OMIT_FRAME_PTR) &&
+ !INSTACK(pt->reg_value[INT_EFRAME_EBP], bt))
+ continue;
rv = bt->stackbase + sizeof(ulong) * (first - stack);
break;
}
+ if (((short)pt->reg_value[INT_EFRAME_CS] == 0x60) &&
+ ((short)pt->reg_value[INT_EFRAME_DS] == 0x68) &&
+ ((short)pt->reg_value[INT_EFRAME_ES] == 0x68) &&
+ IS_KVADDR(pt->reg_value[INT_EFRAME_EIP])) {
+ if (!(machdep->flags & OMIT_FRAME_PTR) &&
+ !INSTACK(pt->reg_value[INT_EFRAME_EBP], bt))
+ continue;
+ rv = bt->stackbase + sizeof(ulong) * (first - stack);
+ break;
+ }
+
/* check for user exception frame */
if (((short)pt->reg_value[INT_EFRAME_CS] == 0x23) &&
@@ -1417,8 +1430,7 @@
((short)pt->reg_value[INT_EFRAME_ES] == 0x2b) &&
((short)pt->reg_value[INT_EFRAME_SS] == 0x2b) &&
IS_UVADDR(pt->reg_value[INT_EFRAME_EIP], bt->tc) &&
- IS_UVADDR(pt->reg_value[INT_EFRAME_ESP], bt->tc) &&
- IS_UVADDR(pt->reg_value[INT_EFRAME_EBP], bt->tc)) {
+ IS_UVADDR(pt->reg_value[INT_EFRAME_ESP], bt->tc)) {
rv = bt->stackbase + sizeof(ulong) * (first - stack);
break;
}
@@ -1454,7 +1466,7 @@
cs = pt->reg_value[INT_EFRAME_CS];
if (cs == 0x23) {
mode = "USER-MODE";
- } else if (cs == 0x10) {
+ } else if ((cs == 0x10) || (cs == 0x60)) {
mode = "KERNEL-MODE";
} else {
mode = "UNKNOWN-MODE";

View File

@ -1,16 +1,16 @@
#
# crash core analysis suite
#
Summary: crash utility for live systems and netdump, LKCD or mcore dumpfiles
Summary: crash utility for live systems; netdump, diskdump, LKCD or mcore dumpfiles
Name: crash
Version: 3.7
Release: 5
Version: 3.8
Release: 2
License: GPL
Group: Development/Debuggers
Source: %{name}-%{version}.tar.gz
URL: ftp://people.redhat.com/anderson/%{name}-%{version}.tar.gz
ExclusiveOS: Linux
ExclusiveArch: i386 ia64
ExclusiveArch: i386 ia64 x86_64
Buildroot: %{_tmppath}/%{name}-root
BuildRequires: ncurses-devel zlib-devel
Patch0: crash.patch
@ -18,12 +18,12 @@ Patch0: crash.patch
%description
The core analysis suite is a self-contained tool that can be used to
investigate either live systems, kernel core dumps created from the
netdump package from Red Hat Linux, the mcore kernel patch offered by
Mission Critical Linux, or the LKCD kernel patch.
netdump and diskdump packages from Red Hat Linux, the mcore kernel patch
offered by Mission Critical Linux, or the LKCD kernel patch.
%prep
%setup -n %{name}-%{version}
%patch0 -p1 -b crash.patch
# %patch0 -p1 -b crash.patch
%build
make RPMPKG="%{version}-%{release}"
@ -42,6 +42,11 @@ cp crash.8 %{buildroot}%{_mandir}/man8/crash.8
%doc README
%changelog
* Thu Jun 17 2004 Dave Anderson <anderson@redhat.com> 3.8-2
- updated source package to crash-3.8.tar.gz
- diskdump support
- x86_64 processor support
* Mon Sep 22 2003 Dave Anderson <anderson@redhat.com> 3.7-5
- make bt recovery code start fix-up only upon reaching first faulting frame

View File

@ -1 +1 @@
b2f1bed9d006586a763e7f34c8a7801f crash-3.7.tar.gz
3c6befd3ff49d91e03e993361e1ef1f5 crash-3.8.tar.gz