kswapd oops with 2.4.32 and 2.1.8 / 2.1.9
Posted: Thu May 18, 2006 2:17 am
Hi,
we tried to run 2.4.32 with grsecurity 2.1.8 and consistently get a kswapd related Oops every morning when the machine runs through cron.daily (Debian sarge i386, Athlon XP 1800+, 256MB RAM). There are no disk problems (checked with smartctl and badblocks on the swap partition) and no RAM problems. The machine is stable over long times with 2.6.11.12 / grsec-2.1.6 and vanilla 2.4.32. The oops also occurs when using the pre-release 2.1.9 patch.
This is typically the first in a row of oops'es:
Unable to handle kernel paging request at virtual address 00081faa
c0191078
*pgd = 0000000000000000
Oops: 0000
CPU: 0
EIP: 0010:[<c0191078>] Tainted: P
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010202
eax: 00000000 ebx: cdae4060 ecx: cdae4070 edx: cdae4070
esi: 00081f8a edi: 00000000 ebp: 00004f7c esp: c12e1f54
ds: 0018 es: 0018 ss: 0018
Process kswapd (pid: 4, stackpage=c12e1000)
Stack: c92d4838 c92d4820 cdae4060 c018ed41 cdae4060 000001d0 0000003c 00000007
c03347f8 c018f055 0000905a c01759c8 00000006 000001d0 00000000 00000000
c03347f8 00000001 c12e0000 00000000 c0175b67 c0334720 00000000 c12e0245
Call Trace: [<c018ed41>] [<c018f055>] [<c01759c8>] [<c0175b67>] [<c0175bc6>]
[<c0175ce0>] [<c014a3f3>] [<c0175c50>]
Code: 8b 46 20 85 c0 74 11 89 c7 8b 40 18 85 c0 0f 85 24 02 00 00
>>EIP; c0191078 <iput+28/290> <=====
Trace; c018ed41 <prune_dcache+e1/140>
Trace; c018f055 <shrink_dcache_memory+25/40>
Trace; c01759c8 <try_to_free_pages_zone+68/e0>
Trace; c0175b67 <kswapd_balance_pgdat+57/a0>
Trace; c0175bc6 <kswapd_balance+16/30>
Trace; c0175ce0 <kswapd+90/c0>
Trace; c014a3f3 <arch_kernel_thread+23/30>
Trace; c0175c50 <kswapd+0/c0>
Code; c0191078 <iput+28/290>
00000000 <_EIP>:
Code; c0191078 <iput+28/290> <=====
0: 8b 46 20 mov 0x20(%esi),%eax <=====
Code; c019107b <iput+2b/290>
3: 85 c0 test %eax,%eax
Code; c019107d <iput+2d/290>
5: 74 11 je 18 <_EIP+0x18>
Code; c019107f <iput+2f/290>
7: 89 c7 mov %eax,%edi
Code; c0191081 <iput+31/290>
9: 8b 40 18 mov 0x18(%eax),%eax
Code; c0191084 <iput+34/290>
c: 85 c0 test %eax,%eax
Code; c0191086 <iput+36/290>
c: 85 c0 test %eax,%eax
Code; c0191086 <iput+36/290>
e: 0f 85 24 02 00 00 jne 238 <_EIP+0x238>
And this is the grsecurity section of the kernel config:
CONFIG_GRKERNSEC=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_SHA256=y
# CONFIG_GRKERNSEC_LOW is not set
# CONFIG_GRKERNSEC_MID is not set
CONFIG_GRKERNSEC_HI=y
# CONFIG_GRKERNSEC_CUSTOM is not set
CONFIG_GRKERNSEC_FLOODTIME=10
CONFIG_GRKERNSEC_FLOODBURST=4
CONFIG_GRKERNSEC_MODSTOP=y
CONFIG_GRKERNSEC_LINK=y
CONFIG_GRKERNSEC_FIFO=y
CONFIG_GRKERNSEC_RANDPID=y
CONFIG_GRKERNSEC_EXECVE=y
CONFIG_GRKERNSEC_DMESG=y
CONFIG_GRKERNSEC_RANDSRC=y
CONFIG_GRKERNSEC_FORKFAIL=y
CONFIG_GRKERNSEC_TIME=y
CONFIG_GRKERNSEC_SHM=y
CONFIG_GRKERNSEC_SIGNAL=y
CONFIG_GRKERNSEC_CHROOT_SHMAT=y
CONFIG_GRKERNSEC_CHROOT_UNIX=y
CONFIG_GRKERNSEC_CHROOT_MOUNT=y
CONFIG_GRKERNSEC_CHROOT_FCHDIR=y
CONFIG_GRKERNSEC_CHROOT_PIVOT=y
CONFIG_GRKERNSEC_CHROOT_DOUBLE=y
CONFIG_GRKERNSEC_CHROOT_CHDIR=y
CONFIG_GRKERNSEC_CHROOT_MKNOD=y
CONFIG_GRKERNSEC_CHROOT_CAPS=y
CONFIG_GRKERNSEC_CHROOT_SYSCTL=y
CONFIG_GRKERNSEC_CHROOT_FINDTASK=y
CONFIG_GRKERNSEC_PROC=y
# CONFIG_GRKERNSEC_PROC_IPADDR is not set
CONFIG_GRKERNSEC_PROC_MEMMAP=y
CONFIG_GRKERNSEC_HIDESYM=y
CONFIG_GRKERNSEC_BRUTE=y
CONFIG_GRKERNSEC_PROC_USERGROUP=y
CONFIG_GRKERNSEC_PROC_GID=10
CONFIG_GRKERNSEC_KMEM=y
CONFIG_GRKERNSEC_RESLOG=y
CONFIG_GRKERNSEC_RANDNET=y
# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set
# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set
CONFIG_GRKERNSEC_ACL_MAXTRIES=3
CONFIG_GRKERNSEC_ACL_TIMEOUT=30
CONFIG_GRKERNSEC_PROC_ADD=y
CONFIG_GRKERNSEC_CHROOT_CHMOD=y
CONFIG_GRKERNSEC_CHROOT_NICE=y
CONFIG_GRKERNSEC_PAX_RANDUSTACK=y
CONFIG_GRKERNSEC_PAX_ASLR=y
CONFIG_GRKERNSEC_PAX_RANDMMAP=y
CONFIG_GRKERNSEC_PAX_NOEXEC=y
# CONFIG_GRKERNSEC_PAX_PAGEEXEC is not set
# CONFIG_GRKERNSEC_PAX_NOELFRELOCS is not set
CONFIG_GRKERNSEC_PAX_MPROTECT=y
# CONFIG_GRKERNSEC_PAX_ETEXECRELOCS is not set
# CONFIG_GRKERNSEC_PAX_SOFTMODE is not set
CONFIG_GRKERNSEC_PAX_EI_PAX=y
CONFIG_GRKERNSEC_PAX_PT_PAX_FLAGS=y
CONFIG_GRKERNSEC_PAX_HAVE_ACL_FLAGS=y
# CONFIG_GRKERNSEC_IO is not set
# CONFIG_GRKERNSEC_PAX_RANDKSTACK is not set
CONFIG_GRKERNSEC_PAX_SEGMEXEC=y
# CONFIG_GRKERNSEC_PAX_EMUTRAMP is not set
# CONFIG_GRKERNSEC_PAX_EMUSIGRT is not set
CONFIG_GRKERNSEC_AUDIT_MOUNT=y
we tried to run 2.4.32 with grsecurity 2.1.8 and consistently get a kswapd related Oops every morning when the machine runs through cron.daily (Debian sarge i386, Athlon XP 1800+, 256MB RAM). There are no disk problems (checked with smartctl and badblocks on the swap partition) and no RAM problems. The machine is stable over long times with 2.6.11.12 / grsec-2.1.6 and vanilla 2.4.32. The oops also occurs when using the pre-release 2.1.9 patch.
This is typically the first in a row of oops'es:
Unable to handle kernel paging request at virtual address 00081faa
c0191078
*pgd = 0000000000000000
Oops: 0000
CPU: 0
EIP: 0010:[<c0191078>] Tainted: P
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010202
eax: 00000000 ebx: cdae4060 ecx: cdae4070 edx: cdae4070
esi: 00081f8a edi: 00000000 ebp: 00004f7c esp: c12e1f54
ds: 0018 es: 0018 ss: 0018
Process kswapd (pid: 4, stackpage=c12e1000)
Stack: c92d4838 c92d4820 cdae4060 c018ed41 cdae4060 000001d0 0000003c 00000007
c03347f8 c018f055 0000905a c01759c8 00000006 000001d0 00000000 00000000
c03347f8 00000001 c12e0000 00000000 c0175b67 c0334720 00000000 c12e0245
Call Trace: [<c018ed41>] [<c018f055>] [<c01759c8>] [<c0175b67>] [<c0175bc6>]
[<c0175ce0>] [<c014a3f3>] [<c0175c50>]
Code: 8b 46 20 85 c0 74 11 89 c7 8b 40 18 85 c0 0f 85 24 02 00 00
>>EIP; c0191078 <iput+28/290> <=====
Trace; c018ed41 <prune_dcache+e1/140>
Trace; c018f055 <shrink_dcache_memory+25/40>
Trace; c01759c8 <try_to_free_pages_zone+68/e0>
Trace; c0175b67 <kswapd_balance_pgdat+57/a0>
Trace; c0175bc6 <kswapd_balance+16/30>
Trace; c0175ce0 <kswapd+90/c0>
Trace; c014a3f3 <arch_kernel_thread+23/30>
Trace; c0175c50 <kswapd+0/c0>
Code; c0191078 <iput+28/290>
00000000 <_EIP>:
Code; c0191078 <iput+28/290> <=====
0: 8b 46 20 mov 0x20(%esi),%eax <=====
Code; c019107b <iput+2b/290>
3: 85 c0 test %eax,%eax
Code; c019107d <iput+2d/290>
5: 74 11 je 18 <_EIP+0x18>
Code; c019107f <iput+2f/290>
7: 89 c7 mov %eax,%edi
Code; c0191081 <iput+31/290>
9: 8b 40 18 mov 0x18(%eax),%eax
Code; c0191084 <iput+34/290>
c: 85 c0 test %eax,%eax
Code; c0191086 <iput+36/290>
c: 85 c0 test %eax,%eax
Code; c0191086 <iput+36/290>
e: 0f 85 24 02 00 00 jne 238 <_EIP+0x238>
And this is the grsecurity section of the kernel config:
CONFIG_GRKERNSEC=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_SHA256=y
# CONFIG_GRKERNSEC_LOW is not set
# CONFIG_GRKERNSEC_MID is not set
CONFIG_GRKERNSEC_HI=y
# CONFIG_GRKERNSEC_CUSTOM is not set
CONFIG_GRKERNSEC_FLOODTIME=10
CONFIG_GRKERNSEC_FLOODBURST=4
CONFIG_GRKERNSEC_MODSTOP=y
CONFIG_GRKERNSEC_LINK=y
CONFIG_GRKERNSEC_FIFO=y
CONFIG_GRKERNSEC_RANDPID=y
CONFIG_GRKERNSEC_EXECVE=y
CONFIG_GRKERNSEC_DMESG=y
CONFIG_GRKERNSEC_RANDSRC=y
CONFIG_GRKERNSEC_FORKFAIL=y
CONFIG_GRKERNSEC_TIME=y
CONFIG_GRKERNSEC_SHM=y
CONFIG_GRKERNSEC_SIGNAL=y
CONFIG_GRKERNSEC_CHROOT_SHMAT=y
CONFIG_GRKERNSEC_CHROOT_UNIX=y
CONFIG_GRKERNSEC_CHROOT_MOUNT=y
CONFIG_GRKERNSEC_CHROOT_FCHDIR=y
CONFIG_GRKERNSEC_CHROOT_PIVOT=y
CONFIG_GRKERNSEC_CHROOT_DOUBLE=y
CONFIG_GRKERNSEC_CHROOT_CHDIR=y
CONFIG_GRKERNSEC_CHROOT_MKNOD=y
CONFIG_GRKERNSEC_CHROOT_CAPS=y
CONFIG_GRKERNSEC_CHROOT_SYSCTL=y
CONFIG_GRKERNSEC_CHROOT_FINDTASK=y
CONFIG_GRKERNSEC_PROC=y
# CONFIG_GRKERNSEC_PROC_IPADDR is not set
CONFIG_GRKERNSEC_PROC_MEMMAP=y
CONFIG_GRKERNSEC_HIDESYM=y
CONFIG_GRKERNSEC_BRUTE=y
CONFIG_GRKERNSEC_PROC_USERGROUP=y
CONFIG_GRKERNSEC_PROC_GID=10
CONFIG_GRKERNSEC_KMEM=y
CONFIG_GRKERNSEC_RESLOG=y
CONFIG_GRKERNSEC_RANDNET=y
# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set
# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set
CONFIG_GRKERNSEC_ACL_MAXTRIES=3
CONFIG_GRKERNSEC_ACL_TIMEOUT=30
CONFIG_GRKERNSEC_PROC_ADD=y
CONFIG_GRKERNSEC_CHROOT_CHMOD=y
CONFIG_GRKERNSEC_CHROOT_NICE=y
CONFIG_GRKERNSEC_PAX_RANDUSTACK=y
CONFIG_GRKERNSEC_PAX_ASLR=y
CONFIG_GRKERNSEC_PAX_RANDMMAP=y
CONFIG_GRKERNSEC_PAX_NOEXEC=y
# CONFIG_GRKERNSEC_PAX_PAGEEXEC is not set
# CONFIG_GRKERNSEC_PAX_NOELFRELOCS is not set
CONFIG_GRKERNSEC_PAX_MPROTECT=y
# CONFIG_GRKERNSEC_PAX_ETEXECRELOCS is not set
# CONFIG_GRKERNSEC_PAX_SOFTMODE is not set
CONFIG_GRKERNSEC_PAX_EI_PAX=y
CONFIG_GRKERNSEC_PAX_PT_PAX_FLAGS=y
CONFIG_GRKERNSEC_PAX_HAVE_ACL_FLAGS=y
# CONFIG_GRKERNSEC_IO is not set
# CONFIG_GRKERNSEC_PAX_RANDKSTACK is not set
CONFIG_GRKERNSEC_PAX_SEGMEXEC=y
# CONFIG_GRKERNSEC_PAX_EMUTRAMP is not set
# CONFIG_GRKERNSEC_PAX_EMUSIGRT is not set
CONFIG_GRKERNSEC_AUDIT_MOUNT=y