The vmalloc pool runs from 0xf800 to FIXADDR_START,
which is a few pages below the top of virtual address space.
The pkmap area is from 0xfe00 to 0xfe40, which fits
within the vmalloc pool.
There does not seem to be any mechanism to prevent these two
from stepping on each other's toe
Quite a few functions in the 2.3 kernels and up are marked as __exit.
This puts the functions in the .text.exit section that is marked as
DISCARD
in vmlinux.lds.
It turns out that if the function is static, ld never puts it into the
symbol
table of vmlinux; however, if the function is global, ld
efore a bigmem
page in the array, which in turn leads to the writing of uninitialized
(garbage)
pages to the raw device.
The corruption happens rather infrequently. It has been reproduced both
with
the SAP DB and without. It appears that intense paging activity
increases its
chance of occurr
3 matches
Mail list logo