Bug 580589 - "kmem -s list" sub-commands in crash utility doesn't work
Summary: "kmem -s list" sub-commands in crash utility doesn't work
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: crash
Version: 5.0
Hardware: i686
OS: Linux
urgent
high
Target Milestone: rc
: ---
Assignee: Dave Anderson
QA Contact: Red Hat Kernel QE team
URL:
Whiteboard:
Depends On:
Blocks: 601084
TreeView+ depends on / blocked
 
Reported: 2010-04-08 15:19 UTC by huachen
Modified: 2011-01-13 22:50 UTC (History)
4 users (show)

Fixed In Version: crash-4.1.2-5.el5
Doc Type: Bug Fix
Doc Text:
When running the "kmem -s list" command, the crash utility was unable to read the "kmem_cache_s.name" string. To resolve this issue, the utility has been adjusted to skip the "list_head", and the above command now displays the actual "kmem_cache" names or addresses only.
Clone Of:
Environment:
Last Closed: 2011-01-13 22:50:22 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2011:0059 0 normal SHIPPED_LIVE crash bug fix update 2011-01-12 17:15:15 UTC

Description huachen 2010-04-08 15:19:51 UTC
Description of problem:
I compile crash-5.0.1-0.src.rpm and find that "kmem -s list" sub-command in crash utility can't read kmem_cache_s.name string.

Version-Release number of selected component (if applicable):
crash-5.0.1-0.src.rpm

How reproducible:
100% reproducible

Steps to Reproduce:
1. ./crash
2. kmem -s list
  
Actual results:
Kmem cannot read kmem_cache_s.name string at 1

Expected results:
Slab cache name and address should be listed.

Additional info:
[root@lhc crash-5.0.1]# ./crash

crash 5.0.1
Copyright (C) 2002-2010  Red Hat, Inc.
Copyright (C) 2004, 2005, 2006  IBM Corporation
Copyright (C) 1999-2006  Hewlett-Packard Co
Copyright (C) 2005, 2006  Fujitsu Limited
Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
Copyright (C) 2005  NEC Corporation
Copyright (C) 1999, 2002, 2007  Silicon Graphics, Inc.
Copyright (C) 1999, 2000, 2001, 2002  Mission Critical Linux, Inc.
This program is free software, covered by the GNU General Public License,
and you are welcome to change it and/or distribute copies of it under
certain conditions.  Enter "help copying" to see the conditions.
This program has absolutely no warranty.  Enter "help warranty" for details.
 
GNU gdb (GDB) 7.0
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...

      KERNEL: /usr/lib/debug/lib/modules/2.6.18-8.el5/vmlinux
    DUMPFILE: /dev/crash
        CPUS: 1
        DATE: Thu Apr  8 23:14:25 2010
      UPTIME: 04:36:14
LOAD AVERAGE: 1.16, 0.63, 0.47
       TASKS: 145
    NODENAME: lhc
     RELEASE: 2.6.18-8.el5
     VERSION: #1 SMP Fri Jan 26 14:15:21 EST 2007
     MACHINE: i686  (1995 Mhz)
      MEMORY: 512 MB
         PID: 10440
     COMMAND: "crash"
        TASK: dc0b6000  [THREAD_INFO: cafcf000]
         CPU: 0
       STATE: TASK_RUNNING (ACTIVE)

crash> kmem -s list
c066c520 kmem_cache
kmem: WARNING: cannot read kmem_cache_s.name string at 1
c0793ed8 (unknown)
d9cd8c80 VMBlockInodeCache
d9cd8d80 blockInfoCache
d9cd8e80 hgfsInodeCache
ddcb56c0 hgfsReqCache
ddcb55c0 rpc_buffers
ddcb54c0 rpc_tasks
ddcb53c0 rpc_inode_cache
ddcb57c0 ip_conntrack_expect
ddcb58c0 ip_conntrack
ddcb59c0 iser_descriptors
ddcb52c0 ib_mad
ddcb51c0 jbd_1k
ddcb50c0 dm_mpath
ddcb5ac0 fib6_nodes
ddcb5bc0 ip6_dst_cache
ddcb5cc0 ndisc_cache
ddcb5dc0 RAWv6
ddcb5ec0 UDPv6
dfb37480 tw_sock_TCPv6
dfb37380 request_sock_TCPv6
crash> q
[root@lhc crash-5.0.1]#

Comment 1 Dave Anderson 2010-04-08 15:47:13 UTC
Fixed upstream in version 5.0.2:

  http://people.redhat.com/anderson/crash.changelog.html

   - Fix for the "kmem -s list" command option on non-CONFIG_SLUB kernels
     that contain a "cache_chain" list_head symbol instead of having a
     "#define cache_chain (cache_cache.next)" construct.  Without the
     patch, the command would incorrectly presume that the "cache_chain"
     address was that of a kmem_cache structure, may display a warning
     message "kmem: WARNING: cannot read kmem_cache_s.name string at
     <address>", and then show the "cache_chain" symbol address followed
     either by a name of "(unknown)" or by a string of gibberish.
    (anderson)

But it's not a really a problem -- it's trying to read a slab cache name
string from the "cache_chain" list_head, which is not a kmem_cache structure.
But the remainder of the list of cache slab names are correct, so
it's a harmless warning.

Comment 2 huachen 2010-04-08 16:34:19 UTC
Cool! Thanks.

Comment 9 Jaromir Hradilek 2010-12-01 19:04:59 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
When running the "kmem -s list" command, the crash utility was unable to read the "kmem_cache_s.name" string. To resolve this issue, the utility has been adjusted to skip the "list_head", and the above command now displays the actual "kmem_cache" names or addresses only.

Comment 11 errata-xmlrpc 2011-01-13 22:50:22 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2011-0059.html


Note You need to log in before you can comment on or make changes to this bug.