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
..
sn
[IA64-SGI] altix: pci_window fixup
2005-12-06 09:09:23 -08:00
a.out.h
acpi-ext.h
[ACPI] fix IA64 build warning
2005-08-04 22:29:34 -04:00
acpi.h
[IA64] Add ACPI based P-state support
2005-08-26 15:09:24 -07:00
agp.h
[PATCH] AGP fix for Xen VMM
2005-06-07 12:35:43 -07:00
asmmacro.h
atomic.h
[PATCH] atomic_long_t & include/asm-generic/atomic.h V2
2006-01-06 08:33:29 -08:00
auxvec.h
[PATCH] auxiliary vector cleanups
2005-09-07 16:57:21 -07:00
bitops.h
[FLS64]: generic version
2006-01-03 13:11:06 -08:00
break.h
[PATCH] Kprobes/IA64: kdebug die notification mechanism
2005-06-23 09:45:22 -07:00
bug.h
bugs.h
byteorder.h
cache.h
cacheflush.h
checksum.h
compat.h
[PATCH] compat: be more consistent about [ug]id_t
2005-09-07 16:57:19 -07:00
cpu.h
cputime.h
current.h
cyclone.h
delay.h
[IA64] disable preemption in udelay()
2005-12-16 10:00:24 -08:00
div64.h
dma-mapping.h
[PATCH] ia64: re-implement dma_get_cache_alignment to avoid EXPORT_SYMBOL
2005-11-07 07:53:23 -08:00
dma.h
elf.h
[PATCH] auxiliary vector cleanups
2005-09-07 16:57:21 -07:00
emergency-restart.h
[PATCH] Add emergency_restart()
2005-07-26 14:35:41 -07:00
errno.h
fcntl.h
[PATCH] Clean up struct flock definitions
2005-09-07 16:57:38 -07:00
fpswa.h
fpu.h
futex.h
[PATCH] Remove unused var from asm/futex.h
2005-09-21 16:16:29 -07:00
gcc_intrin.h
hardirq.h
hw_irq.h
[PATCH] x86/x86_64: deferred handling of writes to /proc/irqxx/smp_affinity
2005-09-07 16:57:15 -07:00
ia32.h
[IA64] Change SET_PERSONALITY to comply with comment in binfmt_elf.c.
2005-12-06 09:12:34 -08:00
ia64regs.h
ide.h
intel_intrin.h
intrinsics.h
io.h
Pull rationalise-regions into release branch
2005-08-29 15:50:32 -07:00
ioctl.h
ioctls.h
iosapic.h
[IA64] Minor cleanups - remove unnecessary function prototype in iosapic.h
2005-09-07 14:00:40 -07:00
ipcbuf.h
irq.h
[IA64] Manual merge fix for 3 files
2005-09-08 14:27:13 -07:00
kdebug.h
[IA64] Extend notify_die() hooks for IA64
2005-11-07 11:27:13 -08:00
kmap_types.h
kprobes.h
[PATCH] Kprobes: Track kprobe on a per_cpu basis - ia64 changes
2005-11-07 07:53:45 -08:00
kregs.h
linkage.h
local.h
[IA64] Fix missing parameter for local_add/sub
2005-12-07 11:30:11 -08:00
machvec.h
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
2005-10-28 21:09:26 -07:00
machvec_dig.h
machvec_hpsim.h
machvec_hpzx1.h
[IA64] more robust zx1/sx1000 machvec support
2005-09-14 16:22:11 -07:00
machvec_hpzx1_swiotlb.h
[IA64] more robust zx1/sx1000 machvec support
2005-09-14 16:22:11 -07:00
machvec_init.h
machvec_sn2.h
mc146818rtc.h
mca.h
[IA64] Wire in the MCA/INIT handler stacks
2005-09-22 13:24:19 -07:00
mca_asm.h
[PATCH] MCA/INIT: use per cpu stacks
2005-09-11 14:08:41 -07:00
meminit.h
Pull sparsemem-v5 into release branch
2005-10-28 14:32:56 -07:00
mman.h
[PATCH] madvise(MADV_REMOVE): remove pages from tmpfs shm backing store
2006-01-06 08:33:22 -08:00
mmu.h
[IA64] Fix race in mm-context wrap-around logic.
2005-08-12 15:05:21 -07:00
mmu_context.h
[IA64] make mmu_context.h and tlb.c 80-column friendly
2005-11-03 14:43:50 -08:00
mmzone.h
[PATCH] V5 ia64 SPARSEMEM - conditional changes for SPARSEMEM
2005-10-04 13:21:13 -07:00
module.h
msgbuf.h
msi.h
[PATCH] PCI: Change MSI to use physical delivery mode always
2005-11-10 16:09:18 -08:00
namei.h
nodedata.h
[PATCH] V5 ia64 SPARSEMEM - conditional changes for SPARSEMEM
2005-10-04 13:21:13 -07:00
numa.h
numnodes.h
page.h
[IA64] - Make pfn_valid more precise for SGI Altix systems
2005-11-29 09:24:10 -08:00
pal.h
[IA64] Add ACPI based P-state support
2005-08-26 15:09:24 -07:00
param.h
[PATCH] ia64: Selectable Timer Interrupt Frequency
2005-06-23 09:45:10 -07:00
parport.h
patch.h
pci.h
[PATCH] Make sparc64 use setup-res.c
2005-09-08 14:57:25 -07:00
percpu.h
[PATCH] adjust per_cpu definition in non-SMP case
2005-06-23 09:45:28 -07:00
perfmon.h
[IA64] alternate perfmon handler
2005-05-18 16:14:30 -07:00
perfmon_default_smpl.h
pgalloc.h
[IA64] 4-level page tables
2005-11-11 09:37:29 -08:00
pgtable.h
[IA64] 4-level page tables
2005-11-11 09:37:29 -08:00
poll.h
posix_types.h
processor.h
[PATCH] cpusets: Move the ia64 domain setup code to the generic code
2005-09-07 16:57:40 -07:00
ptrace.h
[PATCH] consolidate sys_ptrace()
2005-11-07 07:53:42 -08:00
ptrace_offsets.h
resource.h
rse.h
rwsem.h
[PATCH] add sem_is_read/write_locked()
2005-10-29 21:40:35 -07:00
sal.h
[IA64] Split 16-bit severity field in sal_log_record_header
2005-12-13 10:41:49 -08:00
scatterlist.h
sections.h
[PATCH] kprobes/ia64: refuse kprobe on ivt code
2005-06-27 15:23:54 -07:00
segment.h
semaphore.h
[PATCH] semaphore: Remove __MUTEX_INITIALIZER()
2005-10-30 17:37:27 -08:00
sembuf.h
serial.h
setup.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
smp.h
[PATCH] smp_processor_id() cleanup
2005-06-21 18:46:13 -07:00
socket.h
[NET]: Introduce SO_{SND,RCV}BUFFORCE socket options
2005-08-29 15:31:35 -07:00
sockios.h
sparsemem.h
[PATCH] V5 ia64 SPARSEMEM - conditional changes for SPARSEMEM
2005-10-04 13:21:13 -07:00
spinlock.h
[IA64] Define an ia64 version of __raw_read_trylock
2005-12-12 08:54:18 -08:00
spinlock_types.h
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
stat.h
statfs.h
string.h
suspend.h
system.h
[PATCH] Prefetch kernel stacks to speed up context switch
2005-09-09 13:57:31 -07:00
termbits.h
termios.h
thread_info.h
[IA64] fix circular dependency on generation of asm-offsets.h
2005-09-13 08:50:39 -07:00
timex.h
tlb.h
[PATCH] mm: tlb_finish_mmu forget rss
2005-10-29 21:40:37 -07:00
tlbflush.h
[IA64] Use bitmaps for efficient context allocation/free
2005-10-31 14:36:05 -08:00
topology.h
[PATCH] x86_64/ia64 : Fix compilation error for node_to_first_cpu
2005-12-24 12:30:22 -08:00
types.h
[PATCH] sab: consolidate kmem_bufctl_t
2005-09-05 00:05:48 -07:00
uaccess.h
[PATCH] ia64 basic __user annotations
2005-09-29 08:46:27 -07:00
ucontext.h
unaligned.h
uncached.h
[PATCH] ia64 uncached alloc
2005-06-21 18:46:18 -07:00
unistd.h
[PATCH] Swap Migration V5: sys_migrate_pages interface
2006-01-08 20:12:42 -08:00
unwind.h
[IA64] MCA/INIT: remove obsolete unwind code
2005-09-11 14:09:34 -07:00
user.h
ustack.h
vga.h
[IA64-SGI] pcdp: add PCDP pci interface support
2005-06-28 09:09:06 -07:00
xor.h