Re: [PATCH 00/16] mm: prepare for converting vm->vm_flags to 64-bit

Minchan Kim
2012-03-21T10:06:12Z

Hi Konstantin,

It seems to be nice clean up to me and you are a volunteer we have been wanted
for a long time. Thanks!
I am one of people who really want to expand vm_flags to 64 bit but when KOSAKI
tried it, Linus said his concerning, I guess you already saw that.

He want to tidy vm_flags's usage up rather than expanding it.
Without the discussion about that, just expanding vm_flags would make us use
it up easily so that we might need more space.

Readahead flags are good candidate to move into another space and arch-specific flags, I guess.
Another candidate I think of is THP flag. It's just for only anonymous vma now
(But I am not sure we have a plan to support it for file-backed pages in future)
so we can move it to anon_vma or somewhere.
I think other guys might find more somethings

The point is that at least, we have to discuss about clean up current vm_flags's
use cases before expanding it unconditionally.

On Wed, Mar 21, 2012 at 10:56:07AM +0400, Konstantin Khlebnikov wrote:
> There is good old tradition: every year somebody submit patches for extending
> vma->vm_flags upto 64-bits, because there no free bits left on 32-bit systems.
>
> previous attempts:
> https://lkml.org/lkml/2011/4/12/24 (KOSAKI Motohiro)
> https://lkml.org/lkml/2010/4/27/23 (Benjamin Herrenschmidt)
> https://lkml.org/lkml/2009/10/1/202 (Hugh Dickins)
>
> Here already exist special type for this: vm_flags_t, but not all code uses it.
> So, before switching vm_flags_t from unsinged long to u64 we must spread
> vm_flags_t everywhere and fix all possible type-casting problems.
>
> There is no functional changes in this patch set,
> it only prepares code for vma->vm_flags converting.
>
> ---
>
> Konstantin Khlebnikov (16):
> mm: introduce NR_VMA_FLAGS
> mm: use vm_flags_t for vma flags
> mm/shmem: use vm_flags_t for vma flags
> mm/nommu: use vm_flags_t for vma flags
> mm/drivers: use vm_flags_t for vma flags
> mm/x86: use vm_flags_t for vma flags
> mm/arm: use vm_flags_t for vma flags
> mm/unicore32: use vm_flags_t for vma flags
> mm/ia64: use vm_flags_t for vma flags
> mm/powerpc: use vm_flags_t for vma flags
> mm/s390: use vm_flags_t for vma flags
> mm/mips: use vm_flags_t for vma flags
> mm/parisc: use vm_flags_t for vma flags
> mm/score: use vm_flags_t for vma flags
> mm: cast vm_flags_t to u64 before printing
> mm: vm_flags_t strict type checking
>
>
> arch/arm/include/asm/cacheflush.h | 5 -
> arch/arm/kernel/asm-offsets.c | 6 +
> arch/arm/mm/fault.c | 2
> arch/ia64/mm/fault.c | 9 +
> arch/mips/mm/c-r3k.c | 2
> arch/mips/mm/c-r4k.c | 6 -
> arch/mips/mm/c-tx39.c | 2
> arch/parisc/mm/fault.c | 4 -
> arch/powerpc/include/asm/mman.h | 2
> arch/s390/mm/fault.c | 8 +
> arch/score/mm/cache.c | 6 -
> arch/sh/mm/tlbflush_64.c | 2
> arch/unicore32/kernel/asm-offsets.c | 6 +
> arch/unicore32/mm/fault.c | 2
> arch/x86/mm/hugetlbpage.c | 4 -
> drivers/char/mem.c | 2
> drivers/infiniband/hw/ipath/ipath_file_ops.c | 6 +
> drivers/infiniband/hw/qib/qib_file_ops.c | 6 +
> drivers/media/video/omap3isp/ispqueue.h | 2
> drivers/staging/android/ashmem.c | 2
> drivers/staging/android/binder.c | 15 +-
> drivers/staging/tidspbridge/core/tiomap3430.c | 13 +-
> drivers/staging/tidspbridge/rmgr/drv_interface.c | 4 -
> fs/binfmt_elf.c | 2
> fs/binfmt_elf_fdpic.c | 24 ++-
> fs/exec.c | 2
> fs/proc/nommu.c | 3
> fs/proc/task_nommu.c | 14 +-
> include/linux/backing-dev.h | 7 -
> include/linux/huge_mm.h | 4 -
> include/linux/ksm.h | 8 +
> include/linux/mm.h | 163 +++++++++++++++-------
> include/linux/mm_types.h | 11 +
> include/linux/mman.h | 4 -
> include/linux/rmap.h | 8 +
> include/linux/shmem_fs.h | 5 -
> kernel/bounds.c | 2
> kernel/events/core.c | 4 -
> kernel/fork.c | 2
> kernel/sys.c | 4 -
> mm/backing-dev.c | 4 +
> mm/huge_memory.c | 2
> mm/ksm.c | 4 -
> mm/madvise.c | 2
> mm/memory.c | 9 +
> mm/mlock.c | 2
> mm/mmap.c | 36 ++---
> mm/mprotect.c | 9 +
> mm/mremap.c | 2
> mm/nommu.c | 19 +--
> mm/rmap.c | 16 +-
> mm/shmem.c | 54 ++++---
> mm/vmscan.c | 4 -
> 53 files changed, 322 insertions(+), 224 deletions(-)
>
> --
> Signature
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@kvack.org. For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
> Don't email: email@kvack.org