Fatal trap 18: integer divide fault while in kernel mode

Alexander Leidinger Alexander at Leidinger.net
Wed Jan 4 09:42:16 PST 2006


On Wed, 4 Jan 2006 06:51:18 -1000
Randy Bush <randy at psg.com> wrote:

> Fatal trap 18: integer divide fault while in kernel mode
> cpuid = 0; apic id = 00
> instruction pointer     = 0x20:0xc05e6295
> stack pointer           = 0x28:0xc0820d04
> frame pointer           = 0x28:0xc0820d14
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = interrupt enabled, resume, IOPL = 0
> current process         = 0 ()
> [thread pid 0 tid 0 ]
> Stopped at      vm_coloring_init+0x35:  idivl   pq_cachenways,%eax
> db> trace
> Tracing pid 0 tid 0 td 0xc0692660
> vm_coloring_init(3,c0820d60,c05e156a,c069d7a4,c065ad0e) at vm_coloring_init+0x35
> vm_pageq_init(c069d7a4,c065ad0e,0,1,c04caf4b) at vm_pageq_init+0x9
> vm_page_startup(c0c3d000,a,c0820d88,c049dbf5,0) at vm_page_startup+0x10a
> vm_mem_init(0,81e000,81ec00,81e000,0) at vm_mem_init+0x18
> mi_startup() at mi_startup+0xb5
> begin() at begin+0x2c

Uhm... this looks like my fault...

Can you please try the attached diff and report back if it works?

If it doesn't work I need more debugging output:
 - the content of pq_cachesize and pq_cachenways
 - the line where it's panicing

Bye,
Alexander.

-- 
                Where do you think you're going today?
http://www.Leidinger.net                       Alexander @ Leidinger.net
  GPG fingerprint = C518 BC70 E67F 143F BE91  3365 79E2 9C60 B006 3FE7
WL http://www.amazon.de/exec/obidos/registry/1FZ4DTHQE9PQ8/ref=wl_em_to/
-------------- next part --------------
Index: sys/vm/vm_pageq.c
===================================================================
RCS file: /big/FreeBSD-CVS/src/sys/vm/vm_pageq.c,v
retrieving revision 1.19
diff -u -u -r1.19 vm_pageq.c
--- sys/vm/vm_pageq.c	31 Dec 2005 14:39:20 -0000	1.19
+++ sys/vm/vm_pageq.c	4 Jan 2006 17:39:09 -0000
@@ -79,7 +79,7 @@
 
 	setPQL2(&pq_cachesize, &pq_cachenways);
 
-	if (pq_cachesize > 0)
+	if (pq_cachesize > 0 && pq_cachenways > 0 && PAGE_SIZE > 1024)
 		PQ_NUMCOLORS = pq_cachesize / (PAGE_SIZE/1024) / \
 		    pq_cachenways;
 	else


More information about the freebsd-current mailing list