December 23, 2014

buffer_head management and kernel memory leak with LIS


We are currently facing memory leak issue by using LIS library on SMP kernel ( note : it does not happen when only one core is configured ). Indeed, by monitoring buffer_head thanks to slabinfo output and kernel memory use, we managed to correlate closely their relationship as kernel memory leak is present only when buffer_head value is high.
Context : LIS module is used through an application which is stressed. ( robustness test ).

I collected buffer_head value :
# name
: tunables
: slabdata
buffer_head 459307 537675 52 75 1 : tunables 120 60 8 : slabdata 7169 7169 0

My questions are the following : ( closely associated to memory leak tracking method )

1) Is there anyway to free some buffer_head that matches with unused memory ( like dirty pages ) ?
2) Taking care of buffer_head, how to know which kind of data is not released ? ( sctructure or ressources identification ) ?

Information :

[root@xxx]# modinfo /usr/company/modules/LiS/streams.ko
filename: /usr/company/modules/LiS/streams.ko
vermagic: 2.6.9-22.ELsmp SMP 686 REGPARM 4KSTACKS gcc-3.4
description: SVR4 STREAMS for Linux (LGPL Code)
author: David Grothe
license: GPL and additional rights
vermagic: 2.6.9-22.ELsmp SMP 686 REGPARM 4KSTACKS gcc-3.4

LIS version used is 2.19
Distribution is CentOS4
Kernel version is 2.6.9-78.0.17.ELsmp
Hardware is HP G6

Thanks a lot for your support.

St├ęphane C.
( Comverse company )

Click Here!