[PATCH] add -t option for runq command
by WeiJiangang
Hi Dave,
I agree with your opinion,the first suggestion (1) seems better.I have already accepted
your specification and modified the patch. Specific modification as follows:
(1) The option “-t” is accepted, while the option "-c" was abandoned.
(2) Turn key word '*_clock' into '*_timestamp'.
(3) Add information about active task on each cpu,like this:
CPU 0: 67393251944103
[67393251944103] PID: 14776 TASK: ea54aab0 COMMAND: "crash"
CPU 1: 66789719628339
[67393251858710] PID: 14769 TASK: f4bdc030 COMMAND: "crash"
Do you have any other suggestion or requirement?
Regards,
Wei Jiangang
12 years, 6 months
[PATCH] add -t option for runq command
by WeiJiangang
Hi Dave,
I agree with your opinion,the first suggestion (1) seems better.I have already accepted
your specification and modified the patch. Specific modification as follows:
(1) The option “-t” is accepted, while the option "-c" was abandoned.
(2) Turn key word '*_clock' into '*_timestamp'.
(3) Add information about active task on each cpu,like this:
CPU 0: 67393251944103
[67393251944103] PID: 14776 TASK: ea54aab0 COMMAND: "crash"
CPU 1: 66789719628339
[67393251858710] PID: 14769 TASK: f4bdc030 COMMAND: "crash"
Do you have any other suggestion or requirement?
12 years, 6 months
[PATCH] add -s option for struct command
by qiaonuohan
Hello Dave,
The patch attached with this mail is to add "-s" option for struct
command. The output is like below.
crash> page.private,_mapcount.counter,lru.next -s ffffea0000000850
0 -1 0xffffea0000000878
crash> page.private,_mapcount.counter,lru.next -s ffffea0000000850 -h
0x0 0xffffffff 0xffffea0000000878
There are three features provided by the patches.
1. the data can be output in one line, easier to be parsed
2. it is extremly faster than original struct command and print command.
When using command like "struct xxx.yyy -s < address_list", if there are
lots of addresses in the file, address_list, the original struct command
will spend several minutes and even several hours. But the patch will
reduce the time to several seconds.
3. submember can also be output, like "_mapcount.counter" int the above
example
P.S.
The first patch is used to modified gdb. It add a command called
"printm", which can output the relative information of a struct's member.
--
--
Regards
Qiao Nuohan
12 years, 6 months
Add an option "-c" for commamd runq
by WeiJiangang
Hello Dave,
The patch is used to improve the existing command, which adds an
option "-c"
to the the command "runq". The option "-c" displays the timestamp
information about
the runqueue each of cpu. The timstamp information, which accordings to the
kernel
version you use, may be the value of runqueue's member. for example,
rq.clock or
rq.timestamp_last_tick, even runqueue.timestamp_last_tick.
Besides, I have already tested it on rhel4.8/rehl5.7/rhel6.2,
without any error.
The result like this:
> crash> runq -c
> CPU 0: 66789719522523
> CPU 1: 66789719628339
> CPU 2: 66789719519625
Regards,
Wei Jiangang
12 years, 6 months
not able to take kdump from kdb prompt
by Praveen Kumar
Hi,
I am facing issue when I want to take crash kdump from kdb prompt, after
system crash my system entered kdb prompt, when i want to take kdump from
kdb prompt its giving following error.
can you please help me in this.
Linux sff7r900lx1 2.6.18-194.el5 #1 SMP Thu Apr 8 11:00:57 CST 2010
x86_64 x86_64 x86_64 GNU/Linux
[8]kdb> kdump
diag: -18: Invalid cpu number
thanks,
Praveen
12 years, 6 months
[ANNOUNCE] crash gcore command, version 1.1.1 available
by HATAYAMA Daisuke
gcore command version 1.1.1 is now available.
This is a minor update that fixes only a single small bug on arm.
Dave, could you update the tarball file and Changelog on the Web page?
ChangeLog:
- arm_regsets[REGSET_VFP] didn't have its name causing NULL pointer
dereference at note size calculation in function note size. Without
this patch, crash results in segfault if used for the task whose
note includes VFP note information.
Thanks.
HATAYAMA, Daisuke
12 years, 6 months
ARM: gcore, arm_regsets causes segfault
by Per Fransson
Hi,
The for loop in
libgcore/gcore_coredump.c:fill_thread_core_info()
does a
notesize(struct memelfnote *)
where memelfnote->name points to the name of the corresponding
arm_regset member (except REGSET_GPR).
But notesize calls strlen on those strings and
arm_regsets[REGSET_VFP]->name == 0x0
making it segfault.
Regards,
Per
12 years, 6 months
[PATCH]: double free in trace extension
by Per Fransson
Hi Dave and other list readers,
First, just like some other contributors, I've come across an issue
triggered by a dump being corrupt. In my case it's this code in
kernel.c:cpu_maps_init():
if (*maskptr & (0x1UL << c)) {
cpu = (i * BITS_PER_LONG) + c;
kt->cpu_flags[cpu] |= mapinfo[m].cpu_flag;
}
The mask is corrupt, making Crash believe there are more CPU's than the
four we have allocated space for in kernel.c:kernel_init. How do you
think this should be handled?
Second, I believe there is a double free in the trace extension. When
ftrace_init_pages() fails it will free
cpu_buffer->pages
and
cpu_buffer->linear_pages
But when ftrace_init_pages() fails, ftrace_init_buffers() will call
ftrace_destroy_buffers() which also free's this space. For me this
resulted in a segfault in a malloc() a little later.
Regards,
Per
12 years, 6 months