Ming Zhang wrote:
On Mon, 2008-03-03 at 11:19 -0500, Dave Anderson wrote:
> Ming Zhang wrote:
>> On Mon, 2008-03-03 at 09:19 -0500, Dave Anderson wrote:
>>> I'm not sure whether cluttering the bt -f command output would
>>> be all that worthwhile, but I'm thinking that this request may have
>>> some merit with respect to the "rd" command. Currently the
>>> "rd -s" option recognizes and translates kernel symbols that it
>>> finds in the raw memory output. Maybe something like a "-S"
>>> option could do that -- plus also recognize kernel virtual memory
>>> addresses that come from the slab cache, and alternatively display
>>> the slab cache namestring in some recognizable manner, i.e. bracketed,
>>> or something like to that effect.
>>>
>>> Then since "bt -f" displays the block of memory associated with
>>> each stack frame, you could easily transfer the stack address
>>> to a "rd -S [stack-address] [count]" command.
>> yes. it will be great if we can have a rd -S!
>>
> Apply the attached patch and see what you think. The "rd -S"
> option supplements "-s" by also recognizing memory from slab
> caches -- and alternatively displaying the slab cache name
> in brackets.
>
this is what it looks like
10078b2ba30: vprintk+498 .LC391+195657
10078b2ba40: 0000000000000471 [size-32]
10078b2ba50: 000000000000016e 0000000000000001
10078b2ba60: 0000000000000005 [kmem_cache]
10078b2ba70: 000000000000003c [size-1024]
10078b2ba80: [kmem_cache] 0000000000000000
10078b2ba90: 0000000000000001 00000000801108a1
[raw value: cache name] will be better
That would take up too much space, especially on a 32-bit
machine's display, which shows 4 addresses per line.
strangely, not all the value is correct. i am looking at it.
I'm not sure what you mean by them not being correct, but
if you run "kmem -s [address]", it should show the samec
slab cache container (since it uses the same facility).
For example:
crash> rd d799df80 4
d799df80: 00000004 c0470395 d799dfa4 ca9ec8c0 ......G.........
crash> rd -S d799df80 4
d799df80: 00000004 vfs_read+159 [size-4096] [filp]
crash> kmem -s d799dfa4
CACHE NAME OBJSIZE ALLOCATED TOTAL SLABS SSIZE
dff74e80 size-4096 4096 215 233 233 4k
SLAB MEMORY TOTAL ALLOCATED FREE
c64f9e20 d799d000 1 1 0
FREE / [ALLOCATED]
[d799dfa4]
crash> kmem -s ca9ec8c0
CACHE NAME OBJSIZE ALLOCATED TOTAL SLABS SSIZE
dfc7a280 filp 192 4271 4580 229 4k
SLAB MEMORY TOTAL ALLOCATED FREE
ca9ec000 ca9ec080 20 9 11
FREE / [ALLOCATED]
[ca9ec8c0]
crash>
Dave