kernel BUG at slab.c:1244 (delsi(
Miroslav BENES
mbenes na tenez.cz
Středa Červen 27 15:51:59 CEST 2001
kernel BUG at slab.c:1244!
invalid operand: 0000
CPU: 0
EIP: 0010:[<c012b3d4>]
EFLAGS: 00010082
eax: 0000001b ebx: c188d768 ecx: 00000001 edx: 00002370
esi: dba5a000 edi: dba5a9aa ebp: 00012800 esp: dc0fde2c
ds: 0018 es: 0018 ss: 0018
Process mingetty (pid: 1014, stackpage=dc0fd000)
Stack: c01d9d6f 000004dc dba5a000 00001000 dba5a9aa ...
Call Trace: [<c01618cd>] [<c0162545>] ...
Code: 0f 0b 58 8b 6b 10 5a 81 e5 00 04 00 00 74 4d b8 a5 c2 0f 17
Preji krasny den !
Tak tohle se mi objevilo vcera misto prihlasovaciho dialogu. Nemate
nekdo poneti o co jde ?
System RH7.1cz, kernel 2.4.5-0.4 z RawHide prekladany s celkem
normalnimi volbami.
Ve zminenem zdrojaku mm/slab.c je asi toto (hvezdickou oznacen tradek
vyvolavajici hlasku) :
...
#if DEBUG
if (cachep->flags & SLAB_POISON)
if (kmem_check_poison_obj(cachep, objp))
(*) BUG();
if (cachep->flags & SLAB_RED_ZONE) {
/* Set alloc red-zone, and check old one. */
if (xchg((unsigned long *)objp, RED_MAGIC2) !=
RED_MAGIC1)
BUG();
if (xchg((unsigned long *)(objp+cachep->objsize -
BYTES_PER_WORD), RED_MAGIC2) != RED_MAGIC1)
BUG();
objp += BYTES_PER_WORD;
}
#endif
...
Vola se funkce kmem_check_poison_obj, ktera vypada takto :
...
static inline int kmem_check_poison_obj (kmem_cache_t *cachep, void
*addr) {
int size = cachep->objsize;
void *end;
if (cachep->flags & SLAB_RED_ZONE) {
addr += BYTES_PER_WORD;
size -= 2*BYTES_PER_WORD;
}
end = memchr(addr, POISON_END, size);
if (end != (addr+size-1))
return 1;
return 0;
}
...
Takze to vypada, ze kernel ma nejaky bordel v kesi ?!?
Je neco v neporadku se spravou pameti v posledich 2.4.x kernelech ?
Jen tak na okraj - v te masine je 512 MB, startuje se textovy rezim a
mam dojem, ze to co bezi by se do te pameti muselo vejit aspon 5x.
Diky za kazdy tip.
--------------------------
Miroslav BENES
E-mail : mbenes na tenez.cz
TENEZ Chotebor, a.s
--------------------------
Další informace o konferenci Linux