cvs commit: src/sys/dev/random harvest.c hash.c randomdev.c randomdev.h yarrow.c

Dag-ErlingSmørgrav des at des.no
Tue Nov 18 02:38:56 PST 2003


Mark Murray <markm at FreeBSD.org> writes:
>   Log:
>   Overhaul the entropy device:
>   [...]

This causes a 100% reproducable panic on my machine, which I've worked
around by disabling harvesting in rc.conf.  I'm not sure if the bug is
in your code or in UMA, though.  Here's a backtrace:

root at dwp /var/crash# gdb -k symbols.0 vmcore.0
GNU gdb 5.2.1 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-undermydesk-freebsd"...
panic: pmap_invalidate_page: interrupts disabled
panic messages:
---
panic: pmap_invalidate_page: interrupts disabled
cpuid = 0;
Dumping 1023 MB
 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 272 288 304 320 336 352 368 384 400 416 432 448 464 480 496 512 528 544 560 576 592 608 624 640 656 672 688 704 720 736 752 768 784 800 816 832 848 864 880 896 912 928 944 960 976 992 1008
---
Reading symbols from /boot/kernel/snd_ich.ko...done.
Loaded symbols for /boot/kernel/snd_ich.ko
Reading symbols from /boot/kernel/snd_pcm.ko...done.
Loaded symbols for /boot/kernel/snd_pcm.ko
Reading symbols from /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/procfs/procfs.ko.debug...done.
Loaded symbols for /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/procfs/procfs.ko.debug
Reading symbols from /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/pseudofs/pseudofs.ko.debug...done.
Loaded symbols for /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/pseudofs/pseudofs.ko.debug
Reading symbols from /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/linprocfs/linprocfs.ko.debug...done.
Loaded symbols for /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/linprocfs/linprocfs.ko.debug
Reading symbols from /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/linux/linux.ko.debug...done.
Loaded symbols for /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/linux/linux.ko.debug
Reading symbols from /boot/kernel/sysvmsg.ko...done.
Loaded symbols for /boot/kernel/sysvmsg.ko
Reading symbols from /boot/kernel/sysvsem.ko...done.
Loaded symbols for /boot/kernel/sysvsem.ko
Reading symbols from /boot/kernel/sysvshm.ko...done.
Loaded symbols for /boot/kernel/sysvshm.ko
Reading symbols from /boot/kernel/if_fxp.ko...done.
Loaded symbols for /boot/kernel/if_fxp.ko
Reading symbols from /boot/kernel/miibus.ko...done.
Loaded symbols for /boot/kernel/miibus.ko
Reading symbols from /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/ums/ums.ko.debug...done.
Loaded symbols for /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/ums/ums.ko.debug
Reading symbols from /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/usb/usb.ko.debug...done.
Loaded symbols for /usr/obj/usr/src/sys/dwp_smp/modules/usr/src/sys/modules/usb/usb.ko.debug
#0  doadump () at /usr/src/sys/kern/kern_shutdown.c:240
240             dumping++;
(kgdb) where
#0  doadump () at /usr/src/sys/kern/kern_shutdown.c:240
#1  0xc0443a0e in db_fncall (dummy1=0, dummy2=0, dummy3=-1067432000,
    dummy4=0xebe3f908 "$ùãëÒÊIÀÀG`À\001") at /usr/src/sys/ddb/db_command.c:548
#2  0xc044381c in db_command (last_cmdp=0xc05f3040, cmd_table=0x0,
    aux_cmd_tablep=0xc05cae38, aux_cmd_tablep_end=0xc05cae3c)
    at /usr/src/sys/ddb/db_command.c:346
#3  0xc04438f4 in db_command_loop () at /usr/src/sys/ddb/db_command.c:472
#4  0xc0445f69 in db_trap (type=3, code=0) at /usr/src/sys/ddb/db_trap.c:73
#5  0xc0574cc5 in kdb_trap (type=3, code=0, regs=0xebe3fa34)
    at /usr/src/sys/i386/i386/db_interface.c:171
#6  0xc0586c34 in trap (frame=
      {tf_fs = 24, tf_es = 16, tf_ds = 16, tf_edi = -1067683308, tf_esi = 1, tf_ebp = -337380744, tf_isp = -337380768, tf_ebx = 0, tf_edx = 0, tf_ecx = 1, tf_eax = 18, tf_trapno = 3, tf_err = 0, tf_eip = -1068019838, tf_cs = 8, tf_eflags = 12438, tf_esp = -337380700, tf_ss = -337380712})
    at /usr/src/sys/i386/i386/trap.c:580
#7  0xc0576268 in calltrap () at {standard input}:94
#8  0xc04a4229 in panic (fmt=0xc05c7214 "%s: interrupts disabled")
    at /usr/src/sys/kern/kern_shutdown.c:534
#9  0xc0582212 in pmap_invalidate_page (pmap=0xc061bcc0, va=3333619712)
    at /usr/src/sys/i386/i386/pmap.c:597
#10 0xc0583a7c in pmap_enter (pmap=0xc061bcc0, va=3333619712, m=0xc197ebd8,
    prot=7 '\a', wired=1) at /usr/src/sys/i386/i386/pmap.c:2036
#11 0xc0547d8c in kmem_malloc (map=0xc0c310a0, size=4096, flags=1)
    at /usr/src/sys/vm/vm_kern.c:443
#12 0xc05550b2 in page_alloc (zone=0xc0c3ba80, bytes=4096, pflag=0x0, wait=1)
    at /usr/src/sys/vm/uma_core.c:845
#13 0xc0554e5e in slab_zalloc (zone=0xc0c3ba80, wait=1)
    at /usr/src/sys/vm/uma_core.c:753
#14 0xc0555bdd in uma_zone_slab (zone=0xc0c3ba80, flags=1)
    at /usr/src/sys/vm/uma_core.c:1539
#15 0xc0555dc8 in uma_zalloc_bucket (zone=0xc0c3ba80, flags=1)
    at /usr/src/sys/vm/uma_core.c:1635
#16 0xc0555ada in uma_zalloc_arg (zone=0xc0c3ba80, udata=0x0, flags=1)
    at /usr/src/sys/vm/uma_core.c:1469
#17 0xc049b6c3 in malloc (size=3234052736, type=0xc05d3240, flags=1)
    at /usr/src/sys/vm/uma.h:234
#18 0xc0472bfe in random_harvest_internal (somecounter=168282886354,
    entropy=0xebe3fc44, count=8, bits=0, frac=0, origin=RANDOM_INTERRUPT)
    at /usr/src/sys/dev/random/randomdev.c:370
#19 0xc04725f9 in random_harvest (entropy=0xebe3fc44, count=8, bits=2, frac=0,
    origin=RANDOM_INTERRUPT) at machine/cpu.h:104
#20 0xc04949aa in ithread_schedule (ithread=0xc25a5600, do_switch=1)
    at /usr/src/sys/kern/kern_intr.c:378
#21 0xc0579b5e in intr_execute_handlers (isrc=0xc259fdac, iframe=0x16)
    at /usr/src/sys/i386/i386/intr_machdep.c:206
#22 0xc057bc6a in lapic_handle_intr (frame=
      {if_vec = 64, if_fs = 24, if_es = -1067778032, if_ds = 16, if_edi = -964573952, if_esi = -1067681663, if_ebp = -337380124, if_ebx = 1006, if_edx = -964573952, if_ecx = -961720212, if_eax = 4, if_eip = -1068906191, if_cs = 8, if_eflags = 12870, if_esp = -961720212, if_ss = -961720320})
    at /usr/src/sys/i386/i386/local_apic.c:488
#23 0xc0571e63 in Xapic_isr2 () at {standard input}:37
#24 0xc0587398 in syscall (frame=
      {tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 6, tf_esi = 400, tf_ebp = -1077941528, tf_isp = -337379980, tf_ebx = 140448768, tf_edx = 0, tf_ecx = 0, tf_eax = 3, tf_trapno = 12, tf_err = 2, tf_eip = -2011007837, tf_cs = 31, tf_eflags = 12950, tf_esp = -1077941572, tf_ss = 47})
    at /usr/src/sys/i386/i386/trap.c:1006
#25 0xc05762bd in Xint0x80_syscall () at {standard input}:136
---Can't read userspace from dump, or kernel process---

DES
-- 
Dag-Erling Smørgrav - des at des.no


More information about the cvs-src mailing list