Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e3ca40f authored by Pavel Tatashin's avatar Pavel Tatashin Committed by Linus Torvalds
Browse files

mm: relax deferred struct page requirements

There is no need to have ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT, as all
the page initialization code is in common code.

Also, there is no need to depend on MEMORY_HOTPLUG, as initialization
code does not really use hotplug memory functionality.  So, we can
remove this requirement as well.

This patch allows to use deferred struct page initialization on all
platforms with memblock allocator.

Tested on x86, arm64, and sparc.  Also, verified that code compiles on
PPC with CONFIG_MEMORY_HOTPLUG disabled.

Link: http://lkml.kernel.org/r/20171117014601.31606-1-pasha.tatashin@oracle.com


Signed-off-by: default avatarPavel Tatashin <pasha.tatashin@oracle.com>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>	[s390]
Reviewed-by: default avatarKhalid Aziz <khalid.aziz@oracle.com>
Acked-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Acked-by: default avatarMichal Hocko <mhocko@suse.com>
Cc: Steven Sistare <steven.sistare@oracle.com>
Cc: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Reza Arbab <arbab@linux.vnet.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Mel Gorman <mgorman@techsingularity.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent a85f878b
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -151,7 +151,6 @@ config PPC
	select ARCH_MIGHT_HAVE_PC_PARPORT
	select ARCH_MIGHT_HAVE_PC_SERIO
	select ARCH_SUPPORTS_ATOMIC_RMW
	select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
	select ARCH_USE_BUILTIN_BSWAP
	select ARCH_USE_CMPXCHG_LOCKREF		if PPC64
	select ARCH_WANT_IPC_PARSE_VERSION
+0 −1
Original line number Diff line number Diff line
@@ -108,7 +108,6 @@ config S390
	select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
	select ARCH_SAVE_PAGE_KEYS if HIBERNATION
	select ARCH_SUPPORTS_ATOMIC_RMW
	select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
	select ARCH_SUPPORTS_NUMA_BALANCING
	select ARCH_USE_BUILTIN_BSWAP
	select ARCH_USE_CMPXCHG_LOCKREF
+0 −1
Original line number Diff line number Diff line
@@ -69,7 +69,6 @@ config X86
	select ARCH_MIGHT_HAVE_PC_PARPORT
	select ARCH_MIGHT_HAVE_PC_SERIO
	select ARCH_SUPPORTS_ATOMIC_RMW
	select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
	select ARCH_SUPPORTS_NUMA_BALANCING	if X86_64
	select ARCH_USE_BUILTIN_BSWAP
	select ARCH_USE_QUEUED_RWLOCKS
+1 −6
Original line number Diff line number Diff line
@@ -639,15 +639,10 @@ config MAX_STACK_SIZE_MB

	  A sane initial value is 80 MB.

# For architectures that support deferred memory initialisation
config ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
	bool

config DEFERRED_STRUCT_PAGE_INIT
	bool "Defer initialisation of struct pages to kthreads"
	default n
	depends on ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
	depends on NO_BOOTMEM && MEMORY_HOTPLUG
	depends on NO_BOOTMEM
	depends on !FLATMEM
	help
	  Ordinarily all struct pages are initialised during early boot in a