(no subject)

From: Daniel Phillips (phillips@arcor.de)
Date: Wed Aug 21 2002 - 11:30:01 EST

On Saturday 08 June 2002 23:35, tushar korde wrote:
> hi folks,
> as kmalloc allocates memory in power of 2 ( starting from 32 )
> instead of the size requested. there are following problems :
> 1) we are allocating at least 32 bytes in all cases ( most of
> the times it is not
> required ).
> 2) if we allocate large memory, internal fregmentation also
> increases.
> 3) allocating more memory then the request often leads to
> programming errors
> esp. when we store some data and read it back or try to get size
> of data stored
> ( though it can be handled but we have to take special care of
> it at every point ).
> the solution to above problems may be that we dont allocate
> objects from the 13
> general purpose caches, instead we make a new cache keep its
> address either in
> cache_sizes or declare it global. now as the kmalloc is invoked
> check the memory size
> requested if predefined sizes are not suitable then make a new
> object of the size
> requested ( now here the definition of c_offset flag of cache
> descriptor may be
> violated ) and allot it to our new cache and return it .
> i know that there may be subtle problems in it's
> implementation.
> i need your suggestions. is it worth to make efforts in this
> field.

You probably want kmem_cache_alloc, see slab.c. Kmalloc is just an
interface to kmem_cache_alloc.

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/

This archive was generated by hypermail 2b29 : Fri Aug 23 2002 - 22:00:23 EST