>The attached program sometimes causes a lockmgr panic. I do not think is always >did. I am running 4.0-CURRENT form Feb 19. > >The trace is: > panic lockmgr: locking against self > lockmgr > mv_map_growstack > grow_stack > trap_pfault > trap > calltrap > subyte > syscall > ... > >A command on a running image such as this usually does it, though I do not >know what >conditions are neccessary: > > fincore /usr/local/netscape-4.5/communicator-4.5.bin
Here is a simpler example. --- #include <sys/param.h> #include <sys/mman.h> #include <err.h> #include <stdlib.h> #define SIZE (32 * 1024 * 1024) int main(void) { void *p; char vec[SIZE / PAGE_SIZE]; p = malloc(SIZE); if (mincore(p, SIZE, vec) != 0) err(1, "mincore"); return (0); } --- mincore() locks the vmspace map, and initialises vec[] a byte at a time using subyte(). When vec[] is sufficiently large, it is not all in core initially and a page fault occurs in subyte(). The new stack growing code locks the vmspace map early and panics. Bruce To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-current" in the body of the message