[OpenAFS-devel] How can the mem cache possibly not be able to allocate memory?
chas williams (contractor)
chas@cmf.nrl.navy.mil
Mon, 12 Apr 2004 12:30:07 -0400
typically the only reason to use kmalloc() for regions greater than a
single page is that you need the region to be continguous in physical
memory. for instance, a bounce buffer for some hardware.
really afs could just use vmalloc() for everything i suspect.
In message <5C51DC2B8353AB4BA2CD04B34F2EE79C3EFE8D@umr-umail1.umr.edu>,"Neulinger, Nathan" writes:
>As a note - from taking a look at some of the linux kernel discussions,
>it looks like kmalloc can be used for up to 32*pagesize bytes (128k)...
>any idea why our threshold is set to just 1 page?
>
>-- Nathan
>
>------------------------------------------------------------
>Nathan Neulinger EMail: nneul@umr.edu
>University of Missouri - Rolla Phone: (573) 341-6679
>UMR Information Technology Fax: (573) 341-4216
>
>
>> -----Original Message-----
>> From: Neulinger, Nathan
>> Sent: Monday, April 12, 2004 11:02 AM
>> Cc: 'openafs-devel@openafs.org'
>> Subject: RE: [OpenAFS-devel] How can the mem cache possibly
>> not be able to allocate memory?
>>
>> AFS osi_alloc appears to be thresholding at MAX_KMALLOC_SIZE.
>> If <=, 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
>>
>>
>> > -----Original Message-----
>> > From: chas williams (contractor) [mailto:chas@cmf.nrl.navy.mil]
>> > 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
>> > not be able to allocate memory?
>> >
>> > In message <20040408014851.GA10203@umr.edu>,Nathan Neulinger writes:
>> > >Apr 7 13:27:51 nic1 kernel: Memory: 4008596k/4194304k
>> > available (2244k
>> > >kernel code, 53668k reserved, 1432k data, 168k init,
>> > 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
>> > allocate kernel
>> > >memory that would limit what it could use?
>> >
>> > well the linux kernel could be placing a limit on memory. i
>> > would have
>> > to guess that afs_osi_Alloc(memCacheBlkSize) is going to
>> > 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.
>> >
>> > perhaps memcache should be implemented to have it own kmem_cache.
>> >
>> >
>_______________________________________________
>OpenAFS-devel mailing list
>OpenAFS-devel@openafs.org
>https://lists.openafs.org/mailman/listinfo/openafs-devel
>
>