2003-03-25 15:39:57

by Russell King

[permalink] [raw]
Subject: 2.5.66: task_struct memory leak?

Hi,

With 2.5.66, I'm seeing what can only be described as a severe memory
leak. This isn't something that I noticed on 2.5.65 - in fact, I have
several ARM machines happily running 2.5.65.

The leak seems to be centred around the task_struct slab, which seems
to do nothing but continually grow:

bash-2.04# grep task_struct /proc/slabinfo
task_struct 1868 1868 920 467 467 1 : 32 16 : 1868 1916 467 0 0 0 36 : 1509 496 139 0
...
bash-2.04# ps aux | wc -l
20
bash-2.04# grep task_struct /proc/slabinfo
task_struct 1892 1892 920 473 473 1 : 32 16 : 1892 1956 473 0 0 0 36 : 1519 511 139 0
bash-2.04# grep task_struct /proc/slabinfo
task_struct 1892 1892 920 473 473 1 : 32 16 : 1892 1957 473 0 0 0 36 : 1519 512 139 0
bash-2.04# grep task_struct /proc/slabinfo
task_struct 1896 1896 920 474 474 1 : 32 16 : 1896 1961 474 0 0 0 36 : 1519 513 139 0
bash-2.04# grep task_struct /proc/slabinfo
task_struct 1896 1896 920 474 474 1 : 32 16 : 1896 1961 474 0 0 0 36 : 1520 513 139 0
bash-2.04# grep task_struct /proc/slabinfo
task_struct 1896 1896 920 474 474 1 : 32 16 : 1896 1961 474 0 0 0 36 : 1521 513 139 0
bash-2.04# grep task_struct /proc/slabinfo
task_struct 1896 1896 920 474 474 1 : 32 16 : 1896 1961 474 0 0 0 36 : 1522 513 139 0
bash-2.04# grep task_struct /proc/slabinfo
task_struct 1900 1900 920 475 475 1 : 32 16 : 1900 1965 475 0 0 0 36 : 1522 514 139 0

mm_struct seems to be fairly constant, so these are at least getting freed:
mm_struct 24 36 320 3 3 1 : 32 16 : 120 739 11 2 0 0 44 : 3144 53 3183 5

I'm seeing memory disappear at a rate of 8K / process, which seems to
suggest that the ARM level 1 page tables aren't getting freed either.

Is anyone seeing this type of behaviour on x86?

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html


2003-03-25 16:00:24

by Sean Neakums

[permalink] [raw]
Subject: Re: 2.5.66: task_struct memory leak?

commence Russell King quotation:

> I'm seeing memory disappear at a rate of 8K / process, which seems to
> suggest that the ARM level 1 page tables aren't getting freed either.
>
> Is anyone seeing this type of behaviour on x86?

Running 2.5.66 (plus Ingo Molnar's sched-2.5.66-A2), and I don't seem
to see a growth in the task_struct slab after repeated forking:

$ grep task_struct /proc/slabinfo ; for i in $(seq 1000) ; do /bin/true ; done ; grep task_struct /proc/slabinfo
task_struct 79 80 1552 16 16 2 : 54 27
task_struct 79 80 1552 16 16 2 : 54 27

--
Sean Neakums - <[email protected]>