From owner-freebsd-emulation@FreeBSD.ORG Tue May 24 15:48:47 2005 Return-Path: X-Original-To: freebsd-emulation@freebsd.org Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0097D16A41C for ; Tue, 24 May 2005 15:48:46 +0000 (GMT) (envelope-from cracauer@schlepper.zs64.net) Received: from schlepper.zs64.net (schlepper.zs64.net [212.12.50.230]) by mx1.FreeBSD.org (Postfix) with ESMTP id 771E043D49 for ; Tue, 24 May 2005 15:48:44 +0000 (GMT) (envelope-from cracauer@schlepper.zs64.net) Received: from schlepper.zs64.net (schlepper [212.12.50.230]) by schlepper.zs64.net (8.13.1/8.12.9) with ESMTP id j4OFmhf8092861 for ; Tue, 24 May 2005 17:48:43 +0200 (CEST) (envelope-from cracauer@schlepper.zs64.net) Received: (from cracauer@localhost) by schlepper.zs64.net (8.13.1/8.12.9/Submit) id j4OFmhQV092860 for freebsd-emulation@freebsd.org; Tue, 24 May 2005 11:48:43 -0400 (EDT) (envelope-from cracauer) Date: Tue, 24 May 2005 11:48:43 -0400 From: Martin Cracauer To: freebsd-emulation@freebsd.org Message-ID: <20050524114827.A92721@cons.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Subject: Problem in linprocfs proc//maps X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 May 2005 15:48:47 -0000 I have a Linux process with some big mappings, overall 2.5 GB or so. I notice that in /compat/linux/proc//maps there are no entries for the biggest entries (should be read-only file mappings), reading the map is delayed and syslog says: May 24 07:43:39 pud kernel: malloc(M_WAITOK) of "1024", forcing M_NOWAIT with the following non-sleepable locks held: May 24 07:43:39 pud kernel: exclusive sleep mutex vm object (standard object) r = 0 (0xc50b6a50) locked @ /usr/src/sys/modules/linprocfs/../../compat/linprocfs/linprocfs.c:875 May 24 07:43:39 pud kernel: KDB: stack backtrace: May 24 07:43:39 pud kernel: kdb_backtrace(1,1,1,400,c1052b00) at kdb_backtrace+0x29 May 24 07:43:39 pud kernel: witness_warn(5,0,c0859fc3,c0804a0a,ecd56890) at witness_warn+0x19a May 24 07:43:39 pud kernel: uma_zalloc_arg(c1052b00,0,2) at uma_zalloc_arg+0x46 May 24 07:43:39 pud kernel: malloc(400,c08a18a0,2,36b,c50b6a50) at malloc+0xae May 24 07:43:39 pud kernel: vn_fullpath(c38e6480,c4829990,ecd568f8,ecd568fc,c4829990) at vn_fullpath+0x3b May 24 07:43:39 pud kernel: linprocfs_doprocmaps(c38e6480,c3bd0000,c38e0600,c4335b80,ecd56c78) at linprocfs_doprocmaps+0x2a1 May 24 07:43:39 pud kernel: pfs_read(ecd56c04) at pfs_read+0x2ca May 24 07:43:39 pud kernel: VOP_READ_APV(c089d520,ecd56c04) at VOP_READ_APV+0x7e May 24 07:43:39 pud kernel: vn_read(c4f89510,ecd56c78,c46af980,0,c38e6480) at vn_read+0x196 May 24 07:43:39 pud kernel: dofileread(c38e6480,c4f89510,4,806d01c,2000) at dofileread+0xad May 24 07:43:39 pud kernel: read(c38e6480,ecd56d04,3,15,246) at read+0x3b May 24 07:43:39 pud kernel: syscall(3b,3b,3b,806d000,0) at syscall+0x227 May 24 07:43:39 pud kernel: Xint0x80_syscall() at Xint0x80_syscall+0x1f May 24 07:43:39 pud kernel: --- syscall (3, FreeBSD ELF32, read), eip = 0x400996b7, esp = 0xbfbfdf4c, ebp = 0xbfbfdf68 --- Trying to gain that info from the FreeBSD map: $ cat /proc/786/map cat: /proc/786/map: File too large (no entry in syslog) I'll file a PR, just as a hook, did anybody see this before? Martin -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Martin Cracauer http://www.cons.org/cracauer/ No warranty. This email is probably produced by one of my cats stepping on the keys. No, I don't have an infinite number of cats.