On Tue, Nov 27, 2001 at 05:09:00PM -0800, Krishna Kondaka wrote:
> I suspect that there are some memory leaks in the SMP MIPS linux 2.4.9.
> I would like to know if any one found the root cause and fixed them.
See patch below for fix.
> I just ran the script for 3 hours are here is the diff between
> the out put of /proc/meminfo and /proc/slabinfo before and
> after the test run ( lines with "<" are before the test and
> lines with ">" are after the test)
(Try diff -u which generates much more human readable output.)
> When I did some investigation, it looked like d_lookup() is
> not finding /proc/meminfo and /proc/slabinfo in the dcache and
> it is doing d_alloc() to add these to the cache every time
> cat /proc/meminfo or cat /proc/slabinfo is done. This looked odd
> and I ran the same script on x86 based linux (running 2.4.2) and
> I did not see MemFree (or any other caches) changing after the
> test was run for an hour. I am not sure how this is architecture
> dependent.
These caches essentially keep growing until you run out of memory which
is when they'll be freed.
Ralf
--- linux.orig/include/asm-mips/mmu_context.h.orig Wed Nov 28 14:45:19 2001
+++ linux/include/asm-mips/mmu_context.h Wed Nov 28 14:47:37 2001
@@ -109,7 +109,10 @@
*/
extern inline void destroy_context(struct mm_struct *mm)
{
- /* Nothing to do. */
+#ifdef CONFIG_SMP
+ if (mm->context)
+ kfree((void *)mm->context);
+#endif
}
/*
|