Dave Anderson wrote:
Daniel Li wrote:
> It seems the problem is not one with guest dump, but the version of
> SLES.
>
> After upgrading my NATIVE SLES 9 system to SP 3, exactly the same
> problem happened while trying to use 'crash' on the live system, with
> a debug linux kernel ('vmlinux.dbg' below) built on the same system
> from matching 'kernel-source' package. (During this upgrade, the
> linux kernel changed from 2.6.5-7.97-smp to 2.6.5-7.244-smp, the same
> as that on the guest.)
>
> Has anyone else seen this?
Did anything change in the task_struct between 2.6.5-7.97-smp and
2.6.5-7.244-smp?
Or, more likely, anything associated with the pidhash/pid_hash-related
code in the kernel?
Is the output of the crash command "help -t | grep refresh_task_table"
different when running against 2.6.5-7.97-smp vs. 2.6.5-7.244-smp?
Dave
The definition of task_struct between 2.6.5-7.97-smp and 2.6.5-7.244-smp
did change. There is one new 8-bytes field called 'last_ran' before the
list_head for tasks. This is what I don't get: why should it matter as
long as the dump and debug kernel are using the same definition?
The output of "help -t | grep refresh_task_table" didn't change.
Later,
Daniel
struct task_struct {
volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
struct thread_info *thread_info;
atomic_t usage;
unsigned long flags; /* per process flags, defined below */
unsigned long ptrace;
int lock_depth; /* Lock depth */
int prio, static_prio;
struct list_head run_list;
prio_array_t *array;
unsigned long sleep_avg;
long interactive_credit;
unsigned long long timestamp, last_ran;
int activated;
unsigned long policy;
cpumask_t cpus_allowed;
unsigned int time_slice, first_time_slice;
struct list_head tasks;
struct list_head ptrace_children;
struct list_head ptrace_list;
...