Re: Some Clarifications for MMDOC.

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

 




Few comments below. Of course, if I'm wrong someone will correct
me :)
 
> 1. The memory in linux is maintained as pages of 4k. 

 Page size is architecture dependent. It is normally 4k on i386.
I say 'normally' because i386 supports larger (4M/2M) pages also.
Linux kernel already uses this feature, and there is some code in 
the new 2.5.x mm that lets users allocate large pages.

> 5. The vmalloc alloctor (ok no such thing as a vmalloc
> allocator but it helps to understand) allocates
> non-contiguoues kernel memory. 

 vmalloc maps one or more physical pages to a virtually contiguous
address range. The pages may or may not be physically contiguous,
it doesn't matter.

> 6. user-space memory is allocated usong the sys_brk()
> which in-turn uses the slab allocator.
>  
> iam a bit confused about the user space memory and
> sys_brk. can some one please make me clear? 

  sys_brk doesn't allocate memory as such. It just changes the end of
data segment. In Linux mm data structure terms, this means either a
new vma is added to the mm's vma list, or the start/end of an existing
vma is altered.
  Slab allocator is not used to allocate user-space memory. User-space
pages are faulted in as and when they are required. The page fault
handling code verifies that the address that caused the page fault is 
valid (falls within start and end address of some vma) and calls the 
appropriate function to map in the page.

Hope this helps,
Ravi.


__________________________________________________
Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com
--
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