Subject: panic: TLB IPI rendezvous failed (mask 1)
To: NetBSD amd64 <port-amd64@netbsd.org>
From: Nicolas Joly <njoly@pasteur.fr>
List: port-amd64
Date: 07/29/2004 19:50:22
Hi,
I just got a kernel crash on -current 20040729, during a kernel
profiling. I was running a small program that allocate 800MB
(initialized with MALLOC_OPTIONS).
The machine has a 1GB total memory + 4GB of swap. Just before starting
the program, top(1) reported about 750MB of free memory and the swap
was unused.
root@lanfeust [tmp/maxmem]> cat maxmem.c
#include<stdio.h>
#include<stdlib.h>
int main() {
char *p;
size_t len;
len = 800 * 1024 * 1024;
printf("len = %lu\n", len);
p = malloc(len);
if (p == NULL) {
printf("ARGH :[\n");
exit(1); }
printf("ptr = %p\n", p);
printf(" cool :]\n");
free(p);
exit(0); }
root@lanfeust [tmp/maxmem]> cc -o maxmem maxmem.c
root@lanfeust [tmp/maxmem]> cat kprofile.sh
#!/bin/sh
kgmon -b
${1+"$@"}
kgmon -h
kgmon -p
kgmon -r
root@lanfeust [tmp/maxmem]# MALLOC_OPTIONS=J kprofile.sh ./maxmem
kgmon: kernel profiling is running.
len = 838860800
ptr = 0x543000
cool :]
[CRASH]
panic: TLB IPI rendezvous failed (mask 1)
Stopped in pid 359.1 (maxmem) at netbsd:cpu_Debugger+0xa:
db{1}> bt
cpu_Debugger() at netbsd:cpu_Debugger+0xa
panic() at netbsd:panic+0x1cd
pmap_tlb_shootnow() at netbsd:pmap_tlb_shootnow+0x14c
pmap_kremove() at netbsd:pmap_kremove+0xa0
uvm_pagermapout() at netbsd:uvm_pagermapout+0x28
uvm_swap_io() at netbsd:uvm_swap_io+0x24d
uvm_swap_get() at netbsd:uvm_swap_get+0x4d
uvmfault_anonget() at netbsd:uvmfault_anonget+0x59a
uvm_fault() at netbsd:uvm_fault+0x382
trap() at netbsd:trap+0x377
[HANG]
At that point `ddb' is stuck, and i need to press the reset button to
restart ...
Thanks in advance,
Regards.
--
Nicolas Joly
Biological Software and Databanks.
Institut Pasteur, Paris.