Bug 1045591

Summary: RHEL7 with CONFIG_SLUB: kmem -S command displays invalid slab object statistics
Product: Red Hat Enterprise Linux 7 Reporter: Dave Anderson <anderson>
Component: crashAssignee: Dave Anderson <anderson>
Status: CLOSED CURRENTRELEASE QA Contact: Guangze Bai <gbai>
Severity: high Docs Contact:
Priority: high    
Version: 7.0CC: qcai, yshao
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: crash-7.0.2-4.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-13 10:48:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dave Anderson 2013-12-20 19:22:35 UTC
Description of problem:

RHEL7 has replaced its traditional memory allocator from CONFIG_SLAB to
CONFIG_SLUB.  The "kmem -S" command displays statistics about the objects
in each per-cpu kmem_cache_cpu slab and about all of the per-node,
partially-used slabs.  A change in the manner of bookkeeping was 
introduced in Linux 3.1 that causes the object and in-use count of
those slabs to display incorrect data.

Version-Release number of selected component (if applicable):

crash-7.0.2-2.el7

How reproducible:

Always.


Steps to Reproduce:
1. Run "kmem -S" command.
2.
3.

Actual results:

For example, the slabs in the mm_struct kmem_cache each 
have 15 total objects per-slab, but the "NODE 0 PARTIAL"
and "NODE 1 PARTIAL" listings show slabs with "TOTAL" 
values that are equal to the "ALLOCATED" values, and 
as a result, show "FREE" values of 0:

 crash> kmem -S mm_struct
 ... [ cut ] ...
 KMEM_CACHE_NODE   NODE  SLABS  PARTIAL  PER-CPU
 ffff88022709b400     0      5        5        0
 NODE 0 PARTIAL:
   SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
   ffffea0008713e00  ffff88021c4f8000     0      2          2     0
   ffffea000877e000  ffff88021df80000     0      0          0     0
   ffffea000874b400  ffff88021d2d0000     0      0          0     0
   ffffea0008742200  ffff88021d088000     0      5          5     0
   ffffea000878ba00  ffff88021e2e8000     0      7          7     0
 NODE 0 FULL:
   (empty)
 KMEM_CACHE_NODE   NODE  SLABS  PARTIAL  PER-CPU
 ffff880426807400     1      4        4        0
 NODE 1 PARTIAL:
   SLAB              MEMORY            NODE  TOTAL  ALLOCATED  FREE
   ffffea00107a6e00  ffff88041e9b8000     1      4          4     0
   ffffea0010802000  ffff880420080000     1      0          0     0
   ffffea00107d5800  ffff88041f560000     1      3          3     0
   ffffea00107cbc00  ffff88041f2f0000     1      5          5     0
 NODE 1 FULL:
   (empty)
 crash> 
 
Expected results:

The TOTAL values should all be 15, with corrected FREE counts.

Additional info:

Comment 4 Ludek Smid 2014-06-13 10:48:05 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.