Tang Chen
01a178a94e
acpi, memory-hotplug: support getting hotplug info from SRAT
...
We now provide an option for users who don't want to specify physical
memory address in kernel commandline.
/*
* For movablemem_map=acpi:
*
* SRAT: |_____| |_____| |_________| |_________| ......
* node id: 0 1 1 2
* hotpluggable: n y y n
* movablemem_map: |_____| |_________|
*
* Using movablemem_map, we can prevent memblock from allocating memory
* on ZONE_MOVABLE at boot time.
*/
So user just specify movablemem_map=acpi, and the kernel will use
hotpluggable info in SRAT to determine which memory ranges should be set
as ZONE_MOVABLE.
If all the memory ranges in SRAT is hotpluggable, then no memory can be
used by kernel. But before parsing SRAT, memblock has already reserve
some memory ranges for other purposes, such as for kernel image, and so
on. We cannot prevent kernel from using these memory. So we need to
exclude these ranges even if these memory is hotpluggable.
Furthermore, there could be several memory ranges in the single node
which the kernel resides in. We may skip one range that have memory
reserved by memblock, but if the rest of memory is too small, then the
kernel will fail to boot. So, make the whole node which the kernel
resides in un-hotpluggable. Then the kernel has enough memory to use.
NOTE: Using this way will cause NUMA performance down because the
whole node will be set as ZONE_MOVABLE, and kernel cannot use memory
on it. If users don't want to lose NUMA performance, just don't use
it.
[akpm@linux-foundation.org: fix warning]
[akpm@linux-foundation.org: use strcmp()]
Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Jiang Liu <jiang.liu@huawei.com>
Cc: Jianguo Wu <wujianguo@huawei.com>
Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Wu Jianguo <wujianguo@huawei.com>
Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Len Brown <lenb@kernel.org>
Cc: "Brown, Len" <len.brown@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-02-23 17:50:14 -08:00
..
ABI
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2013-02-21 17:41:38 -08:00
accounting
doc: Remove unnecessary declarations from Documentation/accounting/getdelays.c
2012-11-26 14:22:21 +01:00
acpi
ACPI / Documentation: refer to correct file for acpi_platform_device_ids[] table
2013-02-13 13:43:02 +01:00
aoe
aoe: allow user to disable target failure timeout
2012-12-17 17:15:25 -08:00
arm
fbdev changes for 3.8:
2012-12-15 13:03:48 -08:00
arm64
arm64: Add simple earlyprintk support
2013-01-22 17:51:01 +00:00
auxdisplay
backlight
backlight: lp855x_bl: support new LP8557 device
2013-02-21 17:22:25 -08:00
blackfin
block
blockdev
bus-devices
ARM: OMAP2+: gpmc: generic timing calculation
2012-11-09 18:07:11 +05:30
cdrom
cgroups
cgroups: move cgroup_event_listener.c to tools/cgroup
2013-01-07 09:41:28 -08:00
connector
console
cpu-freq
cpufreq: Update Documentation for cpus and related_cpus
2013-02-02 00:01:16 +01:00
cpuidle
cris
crypto
KEYS: Document asymmetric key type
2012-10-08 13:50:12 +10:30
development-process
device-mapper
DM-RAID: Fix RAID10's check for sufficient redundancy
2013-01-24 12:02:36 +11:00
devicetree
Merge branch 'akpm' (incoming from Andrew)
2013-02-21 17:38:49 -08:00
DocBook
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2013-02-21 17:40:58 -08:00
driver-model
lib: devres: Introduce devm_ioremap_resource()
2013-01-22 09:41:43 -08:00
dvb
get_dvb_firmware: fix download site for tda10046 firmware
2012-09-28 16:16:00 -03:00
early-userspace
EDID
extcon
fault-injection
doc: fix quite a few typos within Documentation
2012-11-19 14:28:24 +01:00
fb
filesystems
f2fs: update f2fs document to reflect SIT/NAT layout correctly
2013-01-04 09:42:59 +09:00
firmware_class
firmware loader: document firmware cache mechanism
2012-11-14 15:07:18 -08:00
frv
hid
HID: remove x bit from sensor doc
2012-12-14 08:48:59 +01:00
hwmon
hwmon: (jc42) Add support for MCP98244
2013-02-06 09:58:07 -08:00
i2c
Documentation: remove __dev* attributes.
2013-01-03 15:57:16 -08:00
i2o
ia64
ide
infiniband
IB/ipoib: Add rtnl_link_ops support
2012-09-20 16:49:17 -04:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2012-12-13 12:00:48 -08:00
ioctl
wanrouter: completely decouple obsolete code from kernel.
2013-01-31 19:20:33 -05:00
isdn
ja_JP
kbuild
kbuild: create a rule to run the pre-processor on *.dts files
2013-02-08 14:38:07 +00:00
kdump
ko_KR
laptops
Documentation/laptops: remove depends on CONFIG_EXPERIMENTAL
2013-01-21 14:52:42 -08:00
leds
m68k
make
memory-devices
mips
misc-devices
doc: fix quite a few typos within Documentation
2012-11-19 14:28:24 +01:00
mmc
mmc: core: Extend sysfs to ext_csd parameters for RPMB support
2012-12-06 13:54:48 -05:00
mn10300
mtd
namespaces
netlabel
networking
tcp: remove Appropriate Byte Count support
2013-02-05 14:51:16 -05:00
nfc
NFC: Update pn544 documentation
2013-01-10 01:27:46 +01:00
parisc
PCI
PCI/MSI: Enable multiple MSIs with pci_enable_msi_block_auto()
2013-01-24 17:25:13 +01:00
pcmcia
power
suspend: enable freeze timeout configuration through sys
2013-02-09 22:32:48 +01:00
powerpc
powerpc/hw-breakpoint: Use generic hw-breakpoint interfaces for new PPC ptrace flags
2012-11-15 13:00:23 +11:00
pps
prctl
seccomp: Make syscall skipping and nr changes more consistent
2012-10-02 21:14:29 +10:00
pti
ptp
rapidio
RCU
Merge branches 'urgent.2012.10.27a', 'doc.2012.11.16a', 'fixes.2012.11.13a', 'srcu.2012.10.27a', 'stall.2012.11.13a', 'tracing.2012.11.08a' and 'idle.2012.10.24a' into HEAD
2012-11-16 09:59:58 -08:00
s390
scheduler
scsi
[SCSI] hptiop: Support HighPoint RR4520/RR4522 HBA
2012-11-27 08:59:43 +04:00
security
Documentation: fix Documentation/security/00-INDEX
2012-12-17 17:15:22 -08:00
serial
tty: Update serial core API documentation
2013-01-15 21:57:44 -08:00
sh
sound
ALSA: compress: add support for gapless playback
2013-02-14 12:30:22 +01:00
spi
Documentation: remove __dev* attributes.
2013-01-03 15:57:16 -08:00
sysctl
Documentation/sysctl/kernel.txt: document /proc/sys/shmall
2013-01-04 16:11:46 -08:00
target
target: Simplify fabric sense data length handling
2012-09-17 17:12:58 -07:00
thermal
Thermal: Add documentation for platform layer data
2012-11-05 14:00:09 +08:00
timers
trace
ACPI and power management updates for 3.9-rc1
2013-02-20 11:26:56 -08:00
usb
USB: report submission of active URBs
2012-11-11 18:10:46 -08:00
vDSO
video4linux
Documentation: remove __dev* attributes.
2013-01-03 15:57:16 -08:00
virtual
ARM: KVM: VGIC accept vcpu and dist base addresses from user space
2013-02-11 18:59:01 +00:00
vm
Merge branch 'akpm' (Andrew's patch-bomb)
2012-12-13 13:11:15 -08:00
w1
w1: w1_therm: Add force-pullup option for "broken" sensors
2013-02-18 13:55:24 -08:00
watchdog
wimax
x86
Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-02-21 18:06:55 -08:00
xtensa
xtensa: initialize atomctl SR
2012-12-18 21:10:22 -08:00
zh_CN
Driver core patches for 3.9-rc1
2013-02-21 12:05:51 -08:00
.gitignore
00-INDEX
Documentation: update top level 00-INDEX file with new additions
2013-02-18 10:38:54 +01:00
applying-patches.txt
atomic_ops.txt
Documentation: Memory barrier semantics of atomic_xchg()
2013-01-08 14:14:55 -08:00
bad_memory.txt
basic_profiling.txt
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
BUG-HUNTING
bus-virt-phys-mapping.txt
cachetlb.txt
Changes
circular-buffers.txt
clk.txt
coccinelle.txt
CodingStyle
Documentation: remove depends on CONFIG_EXPERIMENTAL
2013-01-11 11:38:03 -08:00
cpu-hotplug.txt
doc: Add x86 CPU0 online/offline feature
2012-11-14 09:39:44 -08:00
cpu-load.txt
cputopology.txt
crc32.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt
firmware: remove last vestiges of dabusb
2012-11-21 13:03:01 -08:00
digsig.txt
DMA-API-HOWTO.txt
Documentation DMA-API-HOWTO.txt Add dma mapping error check usage examples
2012-10-24 17:07:43 +02:00
DMA-API.txt
dma-debug: New interfaces to debug dma mapping errors
2012-10-24 17:06:43 +02:00
DMA-attributes.txt
common: DMA-mapping: add DMA_ATTR_FORCE_CONTIGUOUS attribute
2012-11-29 03:30:34 -08:00
dma-buf-sharing.txt
doc: fix quite a few typos within Documentation
2012-11-19 14:28:24 +01:00
DMA-ISA-LPC.txt
dmaengine.txt
dontdiff
x86: remove offsets.h from .gitignore and dontdiff
2012-11-19 14:10:53 +01:00
dynamic-debug-howto.txt
dynamic_debug: dynamic hex dump
2013-01-17 12:19:09 -08:00
edac.txt
eisa.txt
email-clients.txt
flexible-arrays.txt
futex-requeue-pi.txt
gcov.txt
gpio.txt
gpiolib: provide provision to register pin ranges
2012-11-11 19:06:00 +01:00
highuid.txt
HOWTO
HOWTO: fix double words typo
2012-12-10 15:54:27 +01:00
hw_random.txt
hwspinlock.txt
init.txt
initrd.txt
Intel-IOMMU.txt
intel_txt.txt
Documentation: remove depends on CONFIG_EXPERIMENTAL
2013-01-11 11:38:03 -08:00
io-mapping.txt
io_ordering.txt
iostats.txt
IPMI.txt
IPMI: Remove SMBus driver info from the docs
2012-10-16 18:07:12 -07:00
IRQ-affinity.txt
IRQ-domain.txt
irqdomain: update documentation
2012-12-05 23:52:10 +00:00
IRQ.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
Kernel-doc: Convention: Use a "Return" section to describe return values
2012-11-27 21:08:57 +01:00
kernel-docs.txt
kernel-parameters.txt
acpi, memory-hotplug: support getting hotplug info from SRAT
2013-02-23 17:50:14 -08:00
kmemcheck.txt
kmemleak.txt
kobject.txt
kprobes.txt
kref.txt
kref: Add kref_get_unless_zero documentation
2012-11-28 18:36:06 +10:00
ldm.txt
local_ops.txt
lockdep-design.txt
lockstat.txt
lockup-watchdogs.txt
logo.gif
logo.txt
magic-number.txt
wanrouter: completely decouple obsolete code from kernel.
2013-01-31 19:20:33 -05:00
Makefile
ManagementStyle
md.txt
media-framework.txt
memory-barriers.txt
Documentation: Memory barrier semantics of atomic_xchg()
2013-01-08 14:14:55 -08:00
memory-hotplug.txt
hotplug: update nodemasks management
2012-12-12 17:38:33 -08:00
mono.txt
mutex-design.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
padata.txt
parport-lowlevel.txt
parport.txt
percpu-rw-semaphore.txt
percpu-rw-semaphore: fix documentation typos
2012-09-26 19:56:15 +02:00
pi-futex.txt
pinctrl.txt
drivers/pinctrl: grab default handles from device core
2013-01-23 16:39:51 +01:00
pnp.txt
preempt-locking.txt
printk-formats.txt
lib/vsprintf.c: add %pa format specifier for phys_addr_t types
2013-02-21 17:22:20 -08:00
pwm.txt
ramoops.txt
rbtree.txt
rbtree: move augmented rbtree functionality to rbtree_augmented.h
2012-10-09 16:22:40 +09:00
remoteproc.txt
remoteproc: add rproc_report_crash function to notify rproc crashes
2012-09-18 12:53:22 +03:00
rfkill.txt
robust-futex-ABI.txt
robust-futexes.txt
rpmsg.txt
Documentation: remove __dev* attributes.
2013-01-03 15:57:16 -08:00
rt-mutex-design.txt
rt-mutex.txt
rtc.txt
rtc-proc: permit the /proc/driver/rtc device to use other devices
2012-10-06 03:05:01 +09:00
SAK.txt
SecurityBugs
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
SM501.txt
smsc_ece1099.txt
mfd: smsc: Add support for smsc gpio io/keypad driver
2012-10-01 15:27:48 +02:00
sparse.txt
Documentation/sparse.txt: document context annotations for lock checking
2012-12-17 17:15:23 -08:00
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt
static-keys.txt
SubmitChecklist
SubmittingDrivers
SubmittingPatches
svga.txt
sysfs-rules.txt
sysrq.txt
sparc64: Add global PMU register dumping via sysrq.
2012-10-16 09:34:01 -07:00
unaligned-memory-access.txt
unicode.txt
unshare.txt
vfio.txt
vfio: Trivial Documentation correction
2012-09-21 10:48:03 -06:00
VGA-softcursor.txt
vgaarbiter.txt
video-output.txt
vme_api.txt
volatile-considered-harmful.txt
workqueue.txt
xz.txt
zorro.txt