linux/arch/ia64
Christoph Lameter d8117ce5a6 [IA64] Fix race in the accessed/dirty bit handlers
A pte may be zapped by the swapper, exiting process, unmapping or page
migration while the accessed or dirty bit handers are about to run. In that
case the accessed bit or dirty is set on an zeroed pte which leads the VM to
conclude that this is a swap pte. This may lead to

- Messages from the vm like

swap_free: Bad swap file entry 4000000000000000

- Processes being aborted

swap_dup: Bad swap file entry 4000000000000000
VM: killing process ....

Page migration is particular suitable for the creation of this race since
it needs to remove and restore page table entries.

The fix here is to check for the present bit and simply not update
the pte if the page is not present anymore. If the page is not present
then the fault handler should run next which will take care of the problem
by bringing the page back and then mark the page dirty or move it onto the
active list.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2006-03-08 16:07:55 -08:00
..
configs [IA64] gensparse_defconfig: turn on PNPACPI 2006-03-07 15:25:29 -08:00
dig [PATCH] drive_info removal outside of arch/i386 2006-02-07 20:56:47 -05:00
hp [PATCH] remove unused tmp_buf_sem's 2006-01-14 10:41:42 -08:00
ia32 [IA64] sys32_signal() forgets to initialize ->sa_mask 2006-02-09 14:41:41 -08:00
kernel [IA64] Fix race in the accessed/dirty bit handlers 2006-03-08 16:07:55 -08:00
lib 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
mm [IA64] Simple memory hot-add for ia64. 2006-01-16 12:06:55 -08:00
oprofile [PATCH] remove gcc-2 checks 2006-01-08 20:14:02 -08:00
pci [IA64] Fix pcibios_setup 2006-02-27 15:37:41 -08:00
scripts
sn [IA64] don't report !sn2 or !summit hardware as an error 2006-03-07 15:26:49 -08:00
Kconfig Make Kprobes depend on modules 2006-02-26 20:24:40 -08:00
Kconfig.debug [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
Makefile [PATCH] remove gcc-2 checks 2006-01-08 20:14:02 -08:00
defconfig [IA64] refresh default config files 2006-02-27 17:07:14 -08:00
install.sh
module.lds