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.