Re: query related to kmalloc()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 8/29/05, Thayumanavar Sachithanantham <thayumker@xxxxxxxxx> wrote:
> > Hi,
> >
> > Just wanted to know, is it a good idea to kmalloc for a small
> > structure. For example if I define a structure in kernel of 10 bytes,
> > and I want to get the memory allocated dynamically for it N number of
> > times, is it good to kmalloc for it every time.
> >
> > As kmalloc() allocates the memory in terms of page size (4k), atleast
> > 4K will be allocated for each kmalloc() call in above case. On other
> > side, wont it be good idea to get one page allocated with kmalloc()
> > and then use it to store an array of our 10 byte structure and if we
> > need more we can get one more page allocated with kmalloc(). In this
> > way we can have list of kmalloc'ed pages and each page represents the
> > array of out 10 byte strucutre.
> >
> 
> The kmalloc memory allocator is built on top of the slab allocator. So
> to allocate a structure of 10 bytes, it will allocate from a slab
> whose object size is 32 bytes. A very good description of how kmalloc
> works is found at
> http://infamous.hackaholic.org/Kmalloc_Internals.html.

thanks for sending this link ..... seems to be a good article on
kmalloc internals ....

-Gaurav

> On 8/29/05, Gaurav Dhiman <gaurav4lkg@xxxxxxxxx> wrote:
> > Hi,
> >
> > Just wanted to know, is it a good idea to kmalloc for a small
> > structure. For example if I define a structure in kernel of 10 bytes,
> > and I want to get the memory allocated dynamically for it N number of
> > times, is it good to kmalloc for it every time.
> >
> > As kmalloc() allocates the memory in terms of page size (4k), atleast
> > 4K will be allocated for each kmalloc() call in above case. On other
> > side, wont it be good idea to get one page allocated with kmalloc()
> > and then use it to store an array of our 10 byte structure and if we
> > need more we can get one more page allocated with kmalloc(). In this
> > way we can have list of kmalloc'ed pages and each page represents the
> > array of out 10 byte strucutre.
> >
> > I am asking this as I am adopting the second approch (list of
> > kmalloc'ed pages) in one of my kernel modules, just wanted to know is
> > it worth doing so much of list maintaince of kmalloc'ed pages or we
> > can simply use the kmalloc for allocating memory to each structure.
> >
> > regards,
> > -Gaurav
> >
> > --
> > Kernelnewbies: Help each other learn about the Linux kernel.
> > Archive:       http://mail.nl.linux.org/kernelnewbies/
> > FAQ:           http://kernelnewbies.org/faq/
> >
> >
>

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux