mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
mm: kill vma flag VM_RESERVED and mm->reserved_vm counter
A long time ago, in v2.4, VM_RESERVED kept swapout process off VMA, currently it lost original meaning but still has some effects: | effect | alternative flags -+------------------------+--------------------------------------------- 1| account as reserved_vm | VM_IO 2| skip in core dump | VM_IO, VM_DONTDUMP 3| do not merge or expand | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP 4| do not mlock | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP This patch removes reserved_vm counter from mm_struct. Seems like nobody cares about it, it does not exported into userspace directly, it only reduces total_vm showed in proc. Thus VM_RESERVED can be replaced with VM_IO or pair VM_DONTEXPAND | VM_DONTDUMP. remap_pfn_range() and io_remap_pfn_range() set VM_IO|VM_DONTEXPAND|VM_DONTDUMP. remap_vmalloc_range() set VM_DONTEXPAND | VM_DONTDUMP. [[email protected]: drivers/vfio/pci/vfio_pci.c fixup] Signed-off-by: Konstantin Khlebnikov <[email protected]> Cc: Alexander Viro <[email protected]> Cc: Carsten Otte <[email protected]> Cc: Chris Metcalf <[email protected]> Cc: Cyrill Gorcunov <[email protected]> Cc: Eric Paris <[email protected]> Cc: H. Peter Anvin <[email protected]> Cc: Hugh Dickins <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: James Morris <[email protected]> Cc: Jason Baron <[email protected]> Cc: Kentaro Takeda <[email protected]> Cc: Matt Helsley <[email protected]> Cc: Nick Piggin <[email protected]> Cc: Oleg Nesterov <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Robert Richter <[email protected]> Cc: Suresh Siddha <[email protected]> Cc: Tetsuo Handa <[email protected]> Cc: Venkatesh Pallipadi <[email protected]> Acked-by: Linus Torvalds <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
0103bd16fb
commit
314e51b985
70 changed files with 77 additions and 105 deletions
|
|
@ -400,7 +400,7 @@ static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
|
|||
#ifndef MMU
|
||||
/* this is uClinux (no MMU) specific code */
|
||||
|
||||
vma->vm_flags |= VM_RESERVED;
|
||||
vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
|
||||
vma->vm_start = videomemory;
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -1942,8 +1942,7 @@ static int atyfb_mmap(struct fb_info *info, struct vm_area_struct *vma)
|
|||
off = vma->vm_pgoff << PAGE_SHIFT;
|
||||
size = vma->vm_end - vma->vm_start;
|
||||
|
||||
/* To stop the swapper from even considering these pages. */
|
||||
vma->vm_flags |= (VM_IO | VM_RESERVED);
|
||||
/* VM_IO | VM_DONTEXPAND | VM_DONTDUMP are set by remap_pfn_range() */
|
||||
|
||||
if (((vma->vm_pgoff == 0) && (size == info->fix.smem_len)) ||
|
||||
((off == info->fix.smem_len) && (size == PAGE_SIZE)))
|
||||
|
|
|
|||
|
|
@ -653,9 +653,8 @@ int unifb_mmap(struct fb_info *info,
|
|||
vma->vm_page_prot))
|
||||
return -EAGAIN;
|
||||
|
||||
vma->vm_flags |= VM_RESERVED; /* avoid to swap out this VMA */
|
||||
/* VM_IO | VM_DONTEXPAND | VM_DONTDUMP are set by remap_pfn_range() */
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static struct fb_ops unifb_ops = {
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ static const struct address_space_operations fb_deferred_io_aops = {
|
|||
static int fb_deferred_io_mmap(struct fb_info *info, struct vm_area_struct *vma)
|
||||
{
|
||||
vma->vm_ops = &fb_deferred_io_vm_ops;
|
||||
vma->vm_flags |= ( VM_RESERVED | VM_DONTEXPAND );
|
||||
vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
|
||||
if (!(info->flags & FBINFO_VIRTFB))
|
||||
vma->vm_flags |= VM_IO;
|
||||
vma->vm_private_data = info;
|
||||
|
|
|
|||
|
|
@ -1410,8 +1410,7 @@ fb_mmap(struct file *file, struct vm_area_struct * vma)
|
|||
return -EINVAL;
|
||||
off += start;
|
||||
vma->vm_pgoff = off >> PAGE_SHIFT;
|
||||
/* This is an IO map - tell maydump to skip this VMA */
|
||||
vma->vm_flags |= VM_IO | VM_RESERVED;
|
||||
/* VM_IO | VM_DONTEXPAND | VM_DONTDUMP are set by io_remap_pfn_range()*/
|
||||
vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
|
||||
fb_pgprotect(file, vma, off);
|
||||
if (io_remap_pfn_range(vma, vma->vm_start, off >> PAGE_SHIFT,
|
||||
|
|
|
|||
|
|
@ -1024,7 +1024,7 @@ static int gbefb_mmap(struct fb_info *info,
|
|||
pgprot_val(vma->vm_page_prot) =
|
||||
pgprot_fb(pgprot_val(vma->vm_page_prot));
|
||||
|
||||
vma->vm_flags |= VM_IO | VM_RESERVED;
|
||||
/* VM_IO | VM_DONTEXPAND | VM_DONTDUMP are set by remap_pfn_range() */
|
||||
|
||||
/* look for the starting tile */
|
||||
tile = &gbe_tiles.cpu[offset >> TILE_SHIFT];
|
||||
|
|
|
|||
|
|
@ -1128,7 +1128,7 @@ static int omapfb_mmap(struct fb_info *fbi, struct vm_area_struct *vma)
|
|||
DBG("user mmap region start %lx, len %d, off %lx\n", start, len, off);
|
||||
|
||||
vma->vm_pgoff = off >> PAGE_SHIFT;
|
||||
vma->vm_flags |= VM_IO | VM_RESERVED;
|
||||
/* VM_IO | VM_DONTEXPAND | VM_DONTDUMP are set by remap_pfn_range() */
|
||||
vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
|
||||
vma->vm_ops = &mmap_user_ops;
|
||||
vma->vm_private_data = rg;
|
||||
|
|
|
|||
|
|
@ -57,9 +57,8 @@ int sbusfb_mmap_helper(struct sbus_mmap_map *map,
|
|||
|
||||
off = vma->vm_pgoff << PAGE_SHIFT;
|
||||
|
||||
/* To stop the swapper from even considering these pages */
|
||||
vma->vm_flags |= (VM_IO | VM_RESERVED);
|
||||
|
||||
/* VM_IO | VM_DONTEXPAND | VM_DONTDUMP are set by remap_pfn_range() */
|
||||
|
||||
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
|
||||
|
||||
/* Each page, see which map applies */
|
||||
|
|
|
|||
|
|
@ -803,7 +803,6 @@ static int ufx_ops_mmap(struct fb_info *info, struct vm_area_struct *vma)
|
|||
size = 0;
|
||||
}
|
||||
|
||||
vma->vm_flags |= VM_RESERVED; /* avoid to swap out this VMA */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -345,7 +345,6 @@ static int dlfb_ops_mmap(struct fb_info *info, struct vm_area_struct *vma)
|
|||
size = 0;
|
||||
}
|
||||
|
||||
vma->vm_flags |= VM_RESERVED; /* avoid to swap out this VMA */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1018,7 +1018,6 @@ static int vmlfb_mmap(struct fb_info *info, struct vm_area_struct *vma)
|
|||
offset += vinfo->vram_start;
|
||||
pgprot_val(vma->vm_page_prot) |= _PAGE_PCD;
|
||||
pgprot_val(vma->vm_page_prot) &= ~_PAGE_PWT;
|
||||
vma->vm_flags |= VM_RESERVED | VM_IO;
|
||||
if (remap_pfn_range(vma, vma->vm_start, offset >> PAGE_SHIFT,
|
||||
size, vma->vm_page_prot))
|
||||
return -EAGAIN;
|
||||
|
|
|
|||
|
|
@ -439,7 +439,6 @@ static int vfb_mmap(struct fb_info *info,
|
|||
size = 0;
|
||||
}
|
||||
|
||||
vma->vm_flags |= VM_RESERVED; /* avoid to swap out this VMA */
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue