lkml.org 
[lkml]   [2005]   [Nov]   [6]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSun, 6 Nov 2005 05:56:42 +0000 (GMT)
FromHugh Dickins <>
SubjectRe: Does shmem_getpage==>shmem_alloc_page==>alloc_page_vma hold mmap_sem?
On Sat, 5 Nov 2005, Paul Jackson wrote:
> 
> The comment in mm/mempolicy.c for alloc_page_vma() states:
> 
>   Should be called with the mm_sem of the vma hold.
> 
> However it seems that the call chain (#ifdef CONFIG_NUMA):
> 
>   shmem_getpage ==> shmem_alloc_page ==> alloc_page_vma
> 
> where shmem_getpage() is called from many of the mm/shmem.c file
> operations, is called without holding mmap_sem.  There is no
> mention of mmap_sem in the entire mm/shmem.c file.

It's safe but horrid.  Look closer and you'll find there isn't even
an mm to hold the mmap_sem of.  The struct vm_area_struct is on the
stack of shmem_alloc_page, and exists solely to apply mempolicy to
a shmem file via an interface designed for mempolicy on vmas.

So far as I know, it works fine; but that interface really ought
to be redesigned some time - it looks like a quick hack that stuck.

Hugh
-
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/

\
 
 \ /
  Last update: 2005-11-06 07:00    [from the cache]
©2003-2008