sparc64: Multi-page size support
authorNitin Gupta <nitin.m.gupta@oracle.com>
Thu, 2 Feb 2017 00:16:36 +0000 (16:16 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 Feb 2017 16:30:28 +0000 (08:30 -0800)
commitc7d9f77d33a779ad582d8b2284ba007931ebd894
treed6a8de21e9a42c25a883e98f96935c1d52456053
parent0d88b86694e0b176c1b9ca10cee95863065e2471
sparc64: Multi-page size support

Add support for using multiple hugepage sizes simultaneously
on mainline. Currently, support for 256M has been added which
can be used along with 8M pages.

Page tables are set like this (e.g. for 256M page):
    VA + (8M * x) -> PA + (8M * x) (sz bit = 256M) where x in [0, 31]

and TSB is set similarly:
    VA + (4M * x) -> PA + (4M * x) (sz bit = 256M) where x in [0, 63]

- Testing

Tested on Sonoma (which supports 256M pages) by running stream
benchmark instances in parallel: one instance uses 8M pages and
another uses 256M pages, consuming 48G each.

Boot params used:

default_hugepagesz=256M hugepagesz=256M hugepages=300 hugepagesz=8M
hugepages=10000

Signed-off-by: Nitin Gupta <nitin.m.gupta@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/include/asm/page_64.h
arch/sparc/include/asm/pgtable_64.h
arch/sparc/include/asm/tlbflush_64.h
arch/sparc/kernel/tsb.S
arch/sparc/mm/hugetlbpage.c
arch/sparc/mm/init_64.c
arch/sparc/mm/tlb.c
arch/sparc/mm/tsb.c