linux/arch/i386/kernel
Christoph Lameter 39743889aa [PATCH] Swap Migration V5: sys_migrate_pages interface
sys_migrate_pages implementation using swap based page migration

This is the original API proposed by Ray Bryant in his posts during the first
half of 2005 on linux-mm@kvack.org and linux-kernel@vger.kernel.org.

The intent of sys_migrate is to migrate memory of a process.  A process may
have migrated to another node.  Memory was allocated optimally for the prior
context.  sys_migrate_pages allows to shift the memory to the new node.

sys_migrate_pages is also useful if the processes available memory nodes have
changed through cpuset operations to manually move the processes memory.  Paul
Jackson is working on an automated mechanism that will allow an automatic
migration if the cpuset of a process is changed.  However, a user may decide
to manually control the migration.

This implementation is put into the policy layer since it uses concepts and
functions that are also needed for mbind and friends.  The patch also provides
a do_migrate_pages function that may be useful for cpusets to automatically
move memory.  sys_migrate_pages does not modify policies in contrast to Ray's
implementation.

The current code here is based on the swap based page migration capability and
thus is not able to preserve the physical layout relative to it containing
nodeset (which may be a cpuset).  When direct page migration becomes available
then the implementation needs to be changed to do a isomorphic move of pages
between different nodesets.  The current implementation simply evicts all
pages in source nodeset that are not in the target nodeset.

Patch supports ia64, i386 and x86_64.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-08 20:12:42 -08:00
..
acpi [ACPI] properly detect pmtimer on ASUS a8v motherboard 2005-11-30 22:27:16 -05:00
cpu [PATCH] Base support for AMD Geode GX/LX processors 2006-01-06 08:33:38 -08:00
timers [PATCH] fix cpu frequency detection in arch/i386/kernel/timers/timer_tsc.c::recalibrate_cpu_khz() 2006-01-06 08:33:39 -08:00
apic.c [PATCH] x86: missing printk newline in apic boot option parser 2006-01-06 08:33:38 -08:00
apm.c [PATCH] APM Screen Blanking fix 2006-01-06 08:33:39 -08:00
asm-offsets.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bootflag.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpuid.c [PATCH] arch/i386/kernel/cpuid.c: unused variable 2006-01-06 08:33:38 -08:00
crash.c [PATCH] drop "[PATCH] i386 kexec-on-panic: Don't shutdown the apics" 2005-11-15 08:59:18 -08:00
dmi_scan.c [PATCH] fix: dmi_check_system 2005-09-07 16:57:44 -07:00
doublefault.c [PATCH] i386: inline assembler: cleanup and encapsulate descriptor and task register management 2005-09-05 00:06:11 -07:00
early_printk.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
efi.c [PATCH] i386: inline assembler: cleanup and encapsulate descriptor and task register management 2005-09-05 00:06:11 -07:00
efi_stub.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
entry.S [PATCH] x86/x86_64: mark rodata section read-only: make some datastructures const 2006-01-06 08:33:36 -08:00
head.S [PATCH] x86: Fixed pnp bios limits 2006-01-06 08:33:35 -08:00
i386_ksyms.c [PATCH] x86: GDT alignment fix 2006-01-06 08:33:33 -08:00
i387.c x86: make restore_fpu() use alternative assembler instructions 2005-07-22 16:06:16 -04:00
i8237.c [PATCH] ISA DMA suspend for i386 2005-09-05 00:06:14 -07:00
i8259.c Revert "i386: move apic init in init_IRQs" 2005-10-31 19:16:17 -08:00
init_task.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
io_apic.c [PATCH] i386: ioapic virtual wire mode fix 2006-01-06 08:33:39 -08:00
ioport.c [PATCH] reset tss->io_bitmap_owner in sys_ioperm() 2005-11-05 16:31:36 -08:00
irq.c [PATCH] x86: hot plug CPU to support physical add of new processors 2005-10-30 17:37:12 -08:00
kprobes.c [PATCH] kprobes: increment kprobe missed count for multiprobes 2005-12-12 08:57:45 -08:00
ldt.c [PATCH] arch/i386/kernel/ldt.c should #include <asm/mmu_context.h> 2005-11-07 07:53:29 -08:00
machine_kexec.c [PATCH] x86: more asm cleanups 2005-09-05 00:06:12 -07:00
Makefile Merge linux-2.6 with linux-acpi-2.6 2005-09-08 01:45:47 -04:00
mca.c [PATCH] arch/i386: Use ARRAY_SIZE macro 2005-11-07 07:53:28 -08:00
microcode.c [PATCH] i386: cleanup serialize msr 2005-09-05 00:06:11 -07:00
module.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mpparse.c [PATCH] make bigsmp the default mode if CONFIG_HOTPLUG_CPU 2006-01-06 08:33:37 -08:00
msr.c [PATCH] arch/i386/kernel/msr.c: removed unused variable 2006-01-06 08:33:38 -08:00
nmi.c [PATCH] i386 nmi_watchdog: Merge check_nmi_watchdog fixes from x86_64 2005-10-30 17:37:13 -08:00
numaq.c [PATCH] re-disable TSC on NUMAQ 2005-07-28 21:46:05 -07:00
pci-dma.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
process.c [PATCH] x86: Deprecate useless bug 2006-01-06 08:33:35 -08:00
ptrace.c [PATCH] i386: PTRACE_POKEUSR: allow changing RF bit in EFLAGS register. 2006-01-05 20:50:51 -08:00
quirks.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
reboot.c [PATCH] i386: Handle HP laptop rebooting properly. 2006-01-06 08:33:39 -08:00
reboot_fixups.c [PATCH] arch/i386/kernel/reboot_fixups.c should #include <linux/reboot_fixups.h> 2005-11-07 07:53:29 -08:00
relocate_kernel.S [PATCH] kexec: x86 kexec core 2005-06-25 16:24:49 -07:00
scx200.c [PATCH] arch/i386/kernel/scx200.c should #include <linux/scx200_gpio.h> 2005-11-07 07:53:29 -08:00
semaphore.c [PATCH] unify x86/x86-64 semaphore code 2005-09-05 00:06:14 -07:00
setup.c [PATCH] i386 sparsemem for single node systems 2006-01-06 08:33:37 -08:00
sigframe.h [PATCH] __user annotations for pointers in i386 sigframe 2005-09-09 10:31:59 -07:00
signal.c [PATCH] i386: fix stack alignment for signal handlers 2005-10-10 08:45:06 -07:00
smp.c [PATCH] useless includes of linux/irq.h in arch/i386 2005-09-26 18:29:50 -07:00
smpboot.c [PATCH] x86: GDT alignment fix 2006-01-06 08:33:33 -08:00
srat.c [PATCH] x86_64: Make i386 compile again with fourth DMA32 zone 2005-11-14 19:55:13 -08:00
summit.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sys_i386.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
syscall_table.S [PATCH] Swap Migration V5: sys_migrate_pages interface 2006-01-08 20:12:42 -08:00
sysenter.c [PATCH] sep initializing rework 2005-06-25 16:24:29 -07:00
time.c Revert "i386: move apic init in init_IRQs" 2005-10-31 19:16:17 -08:00
time_hpet.c [PATCH] hpet-RTC: cache the comparator register 2005-10-30 17:37:30 -08:00
trampoline.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
traps.c [PATCH] i386: fix bound check IDT gate 2006-01-06 08:33:34 -08:00
vm86.c [PATCH] mm: i386 sh sh64 ready for split ptlock 2005-10-29 21:40:41 -07:00
vmlinux.lds.S [PATCH] i386 / uml: add dwarf sections to static link script 2005-09-10 12:00:17 -07:00
vsyscall-int80.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vsyscall-note.S [PATCH] i386 vDSO: add PT_NOTE segment 2005-04-16 15:24:48 -07:00
vsyscall-sigreturn.S kbuild: full dependency check on asm-offsets.h 2005-09-09 19:28:28 +02:00
vsyscall-sysenter.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vsyscall.lds.S kbuild: full dependency check on asm-offsets.h 2005-09-09 19:28:28 +02:00
vsyscall.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00