Problems in kernel memory allocation

Sriram Narasimhan (nsri@tataelxsi.co.in)
Sat, 12 Apr 2003 20:04:44 +0530


Hi,

I am having problems allocating more than 2.5 MB in the linux kernel.
I am using Linux 2.4.7-10 RH 7.2 on i386.

Physical RAM: 64 MB

I tried two methods of allocation, one using kmalloc and other using
kmem_cache_alloc. Both of them failed to allocate more than 2.5 MB.
(GFP_KERNEL / GFP_ATOMIC operations)
When I run 'free' I am able to see that the free physical memory is
about 4MB and the free buffers/cache is about 52 MB.
The report is as follows:
total used free shared buffers cached
Mem: 62264 57928 4336 0 30152 17768
-/+ buffers/cache: 10008 52256
Swap: 192772 0 192772

I also found out that the /proc/meminfo had about 43MB of Inact_dirty .
Is there any way to forcefully flush the dirty buffers ?
Why is the allocation consistently failing in about 2.5 or 3MB ?
Only when the free physical is about 30MB and I start allocating am I
able to successfully allocate about 5MB.

Is there a restriction as to how much memory you can allocate in the
kernel ?

Sriram

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/