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:
parent
d298941397
commit
6f554a50a6
@ -1 +1 @@
|
||||
crash-3.7.tar.gz
|
||||
crash-3.8.tar.gz
|
||||
|
162
crash.patch
162
crash.patch
@ -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";
|
19
crash.spec
19
crash.spec
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user