Meaning of a kernel oops?

Anne (annekev@xs4all.nl)
Mon, 22 Sep 1997 22:59:15 +0200


I recently posted two messages to the list reporting kernel oopses with
squake under the kernels 2.1.54 and 2.1.55. In these messages I also
gave
the oops and the ksymoops output. I received several emails from
various
people telling me that probably this is not a kernel problem and that it
didn't belong on this list.

Now, I was under the impression that an oops was generated when the
kernel
discovered that some of its data structures were broken. Hence, I
thought
that _whenever_ you receive an oops, that this is a symptom of a kernel
bug.
Is this not true?

The emails that I received where mainly in two catagories:

- Perhaps I have a broken binary, and so I should download a new one.
- Perhaps I'm playing quake on a low memory machine (which is true), and
squake is known to SEGV with not enough memory.

All the correspondents also mentioned that they were playing quake on
2.1.5[45] with no problems.

The first suggestion is wrong, because:
- I don't get the problem on 2.0.3x.
- I do get the problem with both servers 1.06 and 1.09 (which is
advertised as being 1.1 on Linux Quake Page) on 2.1.5[4-6].
- I do get the problem with the shareware, commercial and missionpack
gamefiles on 2.1.5[4-6].

The second suggestion puzzles me, because surely quake would be unaware
of
how much memory a virtual memory OS has. Surely also, if the app
SEGV'd, it
would say 'segment vio...', kill the app and not hang the machine and
not
leave an oops in the log.

The squake oops is still present in 2.1.56. Until someone can convince
me
with something more concrete that I shouldn't be posting these, here
they
are:

These two are generated by using the 1.09 server and the second mission
pack
"Dissolution of Eternity".

----------------here's the first one----------------
Unable to handle kernel NULL pointer dereference at virtual address
00000c10
current->tss.cr3 = 00745000, (r3 = 00745000
*pde = 00000000
Oops: 0002
CPU: 0
EIP: 0010:[<c011ccfd>]
EFLAGS: 00013286
eax: 00000000 ebx: 0070c063 ecx: 00044000 edx: c073e000
esi: c001f860 edi: c0101c10 ebp: 00000304 esp: c0079f3c
ds: 0018 es: 0018 ss: 0018
Process squake (pid: 371, process nr: 16, stackpage=c0079000)
Stack: 00001000 c1043000 bffffc58 0000000c 00044000 00000003 00044000
00400000
c1044000 c0101c10 c011ce83 c1043000 00001000 00000002 00000002
c1006262
0000000c 800c5012 c01a1b00 bffffc58 00000007 c009c1e0 00000000
00000003
Call Trace: [<c1043000>] [<c1044000>] [<c0101c10>] [<c011ce83>]
[<c1043000>] [<c1006262>] [<c012a8be>]
[<c010924a>]
Code: 89 1c a8 8b 52 44 81 fa 00 60 10 c0 75 e5 8b 44 24 2c 05 00

Using `/System.map' to map addresses to symbols.

>>EIP: c011ccfd <vmalloc_area_pages+1f9/23c>
Trace: c1043000
Trace: c1044000
Trace: c0101c10 <swapper_pg_dir+c10/1000>
Trace: c011ce83 <vmalloc+3f/5c>
Trace: c1043000
Trace: c1006262
Trace: c012a8be <sys_ioctl+14e/164>
Trace: c010924a <system_call+3a/40>

Code: c011ccfd <vmalloc_area_pages+1f9/23c>
Code: c011ccfd <vmalloc_area_pages+1f9/23c> 89 1c a8 movl
%ebx,(%eax,%ebp,4)
Code: c011cd00 <vmalloc_area_pages+1fc/23c> 8b 52 44 movl
0x44(%edx),%edx
Code: c011cd03 <vmalloc_area_pages+1ff/23c> 81 fa 00 60 10 cmpl
$0xc0106000,%edx
Code: c011cd0e <vmalloc_area_pages+20a/23c> c0
Code: c011cd0f <vmalloc_area_pages+20b/23c> 75 e5 jne
fffffff3 <_EIP+fffffff3>
Code: c011cd11 <vmalloc_area_pages+20d/23c> 8b 44 24 2c movl
0x2c(%esp,1),%eax
Code: c011cd15 <vmalloc_area_pages+211/23c> 05 00 00 90 90 addl
$0x90900000,%eax
Code: c011cd20 <vmalloc_area_pages+21c/23c> 90 nop

----------------here's the second one----------------
Unable to handle kernel NULL pointer dereference at virtual address
00000c10
current->tss.cr3 = 005d0000, (r3 = 005d0000
*pde = 00000000
Oops: 0002
CPU: 0
EIP: 0010:[<c011ccfd>]
EFLAGS: 00013282
eax: 00000000 ebx: 0070c063 ecx: 00044000 edx: c01f2000
esi: c001f8e0 edi: c0101c10 ebp: 00000304 esp: c05cbf3c
ds: 0018 es: 0018 ss: 0018
Process squake (pid: 123, process nr: 4, stackpage=c05cb000)
Stack: 00001000 c1043000 bffd0de0 0000000c 00044000 00000003 00044000
00400000
c1044000 c0101c10 c011ce83 c1043000 00001000 00000002 00000002
c1006262
0000000c 800c5012 c01a1140 bffd0de0 00000007 c009c1e0 00000000
00000003
Call Trace: [<c1043000>] [<c1044000>] [<c0101c10>] [<c011ce83>]
[<c1043000>] [<c1006262>] [<c012a8be>]
[<c010924a>]
Code: 89 1c a8 8b 52 44 81 fa 00 60 10 c0 75 e5 8b 44 24 2c 05 00
Using `/System.map' to map addresses to symbols.

>>EIP: c011ccfd <vmalloc_area_pages+1f9/23c>
Trace: c1043000
Trace: c1044000
Trace: c0101c10 <swapper_pg_dir+c10/1000>
Trace: c011ce83 <vmalloc+3f/5c>
Trace: c1043000
Trace: c1006262
Trace: c012a8be <sys_ioctl+14e/164>
Trace: c010924a <system_call+3a/40>

Code: c011ccfd <vmalloc_area_pages+1f9/23c>
Code: c011ccfd <vmalloc_area_pages+1f9/23c> 89 1c a8 movl
%ebx,(%eax,%ebp,4)
Code: c011cd00 <vmalloc_area_pages+1fc/23c> 8b 52 44 movl
0x44(%edx),%edx
Code: c011cd03 <vmalloc_area_pages+1ff/23c> 81 fa 00 60 10 cmpl
$0xc0106000,%edx
Code: c011cd0e <vmalloc_area_pages+20a/23c> c0
Code: c011cd0f <vmalloc_area_pages+20b/23c> 75 e5 jne
fffffff3 <_EIP+fffffff3>
Code: c011cd11 <vmalloc_area_pages+20d/23c> 8b 44 24 2c movl
0x2c(%esp,1),%eax
Code: c011cd15 <vmalloc_area_pages+211/23c> 05 00 00 90 90 addl
$0x90900000,%eax
Code: c011cd20 <vmalloc_area_pages+21c/23c> 90 nop
------------------------------------

Just in case it's relevant, my boot log:

------------------------------------
klogd 1.3-3, log source = /proc/kmsg started.
Loaded 3863 symbols from /System.map.
Symbols match kernel version 2.1.56.
No module symbols loaded.
Memory: sized by int13 088h
Console: 16 point font, 400 scans
Console: colour VGA+ 80x25, 1 virtual console (max 63)
PCI: BIOS32 Service Directory structure at 0xc00fff70
PCI: BIOS32 Service Directory entry at 0xfdb27
PCI: PCI BIOS revision 2.00 entry at 0xfdb88
Probing PCI hardware.
PCI: Warning: Unknown PCI device (1004:8). Please read
include/linux/pci.h
Calibrating delay loop.. ok - 29.90 BogoMIPS
Memory: 6940k/8192k available (568k kernel code, 392k reserved, 276k
data, 16k init)
Swansea University Computer Society NET3.039 for Linux 2.1
NET3: Unix domain sockets 0.16 for Linux NET3.038.
Swansea University Computer Society TCP/IP for NET3.037
IP Protocols: IGMP, ICMP, UDP, TCP
Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
Checking 'hlt' instruction... Ok.
Linux version 2.1.56 (root@pcchippo.irdeto.nl) (gcc version 2.7.2.1) #3
Mon Sep 22 08:48:21 SAT 1997
POSIX conformance testing by UNIFIX
Starting kswapd v 1.23
ide0: buggy cmd640b interface on PCI (type1), config=0x1e
ide1: not serialized, secondary interface not responding
cmd640: drive0 timings/prefetch(on) preserved, clocks=2/3/3
cmd640: drive1 timings/prefetch(on) preserved, clocks=2/3/3
hda: HITACHI_DK222A-54, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: HITACHI_DK222A-54, 516MB w/64kB Cache, LBA, CHS=525/32/63
Partition check:
hda: hda1 hda2 hda3 hda4
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 16k freed
Adding Swap: 41324k swap-space (priority -1)
------------------------------------

And in case it's relevant, my .config

------------------------------------
#
# Automatically generated by make menuconfig: don't edit
#

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
CONFIG_KERNELD=y

#
# General setup
#
# CONFIG_MATH_EMULATION is not set
CONFIG_NET=y
CONFIG_PCI=y
CONFIG_PCI_BIOS=y
# CONFIG_PCI_DIRECT is not set
CONFIG_PCI_OPTIMIZE=y
# CONFIG_MCA is not set
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
# CONFIG_BINFMT_JAVA is not set
CONFIG_M586=y
# CONFIG_VIDEO_SELECT is not set
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m

#
# Plug and Play support
#
# CONFIG_PNP is not set

#
# Floppy, IDE, and other block devices
#
CONFIG_BLK_DEV_FD=m
CONFIG_BLK_DEV_IDE=y
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_BLK_DEV_IDECD is not set
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
CONFIG_BLK_DEV_CMD640=y
CONFIG_BLK_DEV_CMD640_ENHANCED=y
# CONFIG_BLK_DEV_RZ1000 is not set
# CONFIG_BLK_DEV_TRITON is not set
# CONFIG_IDE_CHIPSETS is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_XD is not set
# CONFIG_BLK_DEV_EZ is not set
# CONFIG_BLK_DEV_HD is not set

#
# Networking options
#
# CONFIG_NETLINK is not set
# CONFIG_FIREWALL is not set
# CONFIG_NET_ALIAS is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ACCT is not set
# CONFIG_IP_ROUTER is not set
# CONFIG_NET_IPIP is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_PCTCP is not set
# CONFIG_INET_RARP is not set
CONFIG_PATH_MTU_DISCOVERY=y
CONFIG_IP_NOSR=y
# CONFIG_SKB_LARGE is not set
# CONFIG_IPV6 is not set
CONFIG_IPX=m
# CONFIG_IPX_INTERN is not set
# CONFIG_IPX_PPROP_ROUTING is not set
CONFIG_ATALK=m
# CONFIG_AX25 is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_BRIDGE is not set
# CONFIG_LLC is not set
# CONFIG_WAN_ROUTER is not set

#
# SCSI support
#
# CONFIG_SCSI is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_ARCNET is not set
CONFIG_DUMMY=m
# CONFIG_EQUALIZER is not set
# CONFIG_ETHERTAP is not set
# CONFIG_NET_ETHERNET is not set
# CONFIG_FDDI is not set
# CONFIG_DLCI is not set
# CONFIG_LTPC is not set
# CONFIG_COPS is not set
# CONFIG_IPDDP is not set
CONFIG_PLIP=m
CONFIG_PPP=m
# CONFIG_NET_RADIO is not set
# CONFIG_SLIP is not set
CONFIG_TR=y
# CONFIG_IBMTR is not set
# CONFIG_SHAPER is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
#
# CONFIG_CD_NO_IDESCSI is not set

#
# Filesystems
#
# CONFIG_QUOTA is not set
# CONFIG_MINIX_FS is not set
CONFIG_EXT2_FS=y
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
# CONFIG_UMSDOS_FS is not set
CONFIG_PROC_FS=y
CONFIG_NFS_FS=m
CONFIG_NFSD=m
CONFIG_SUNRPC=m
CONFIG_LOCKD=m
CONFIG_SMB_FS=m
CONFIG_SMB_WIN95=y
# CONFIG_NCP_FS is not set
# CONFIG_ISO9660_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_MAC_PARTITION is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_SERIAL=m
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
CONFIG_PRINTER=m
CONFIG_PRINTER_READBACK=y
# CONFIG_MOUSE is not set
# CONFIG_UMISC is not set
# CONFIG_QIC02_TAPE is not set
# CONFIG_FTAPE is not set
# CONFIG_APM is not set
# CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set
# CONFIG_NVRAM is not set
# CONFIG_JOYSTICK is not set

#
# Sound
#
CONFIG_SOUND=m
# CONFIG_PAS is not set
CONFIG_SB=y
CONFIG_ADLIB=y
# CONFIG_GUS is not set
# CONFIG_MPU401 is not set
# CONFIG_PSS is not set
# CONFIG_GUS16 is not set
# CONFIG_GUSMAX is not set
# CONFIG_MSS is not set
# CONFIG_SSCAPE is not set
# CONFIG_TRIX is not set
# CONFIG_MAD16 is not set
# CONFIG_CS4232 is not set
# CONFIG_MAUI is not set
CONFIG_YM3812=y
SBC_BASE=220
SBC_IRQ=5
SBC_DMA=1
SB_DMA2=5
SB_MPU_BASE=330
SB_MPU_IRQ=10
# CONFIG_LOWLEVEL_SOUND is not set

#
# Kernel hacking
#
# CONFIG_PROFILE is not set
# CONFIG_MAGIC_SYSRQ is not set
------------------------------------

chippo