[OpenAFS-devel] How can the mem cache possibly not be able to allocate memory?

Neulinger, Nathan nneul@umr.edu
Mon, 12 Apr 2004 11:01:59 -0500


AFS osi_alloc appears to be thresholding at MAX_KMALLOC_SIZE. If <=3D, =
it
uses kmalloc, otherwise vmalloc. MAX_KMALLOC_SIZE is set to PAGE_SIZE.

-- Nathan

------------------------------------------------------------
Nathan Neulinger                       EMail:  nneul@umr.edu
University of Missouri - Rolla         Phone: (573) 341-6679
UMR Information Technology             Fax: (573) 341-4216
=20

> -----Original Message-----
> From: chas williams (contractor) [mailto:chas@cmf.nrl.navy.mil]=20
> Sent: Wednesday, April 07, 2004 10:01 PM
> To: Neulinger, Nathan
> Cc: openafs-devel@openafs.org
> Subject: Re: [OpenAFS-devel] How can the mem cache possibly=20
> not be able to allocate memory?=20
>=20
> In message <20040408014851.GA10203@umr.edu>,Nathan Neulinger writes:
> >Apr  7 13:27:51 nic1 kernel: Memory: 4008596k/4194304k=20
> available (2244k
> >kernel code, 53668k reserved, 1432k data, 168k init,=20
> 3145152k highmem)
> >
> >That just plain doesn't make any sense... I tried to give it a 75MB
> >memcache... Is there something with how afs is trying to=20
> allocate kernel
> >memory that would limit what it could use?=20
>=20
> well the linux kernel could be placing a limit on memory.  i=20
> would have
> to guess that afs_osi_Alloc(memCacheBlkSize) is going to=20
> using kmalloc()
> instead of vmalloc().  kmalloc() gets its buffer from various pools
> viewable from /proc/slabinfo (in particular the size-NNNN pools).  it
> seems like you might be hitting a limit on the number of buffers.
>=20
> perhaps memcache should be implemented to have it own kmem_cache.
>=20
>=20