Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 May 2005 11:48:43 -0400
From:      Martin Cracauer <cracauer@cons.org>
To:        freebsd-emulation@freebsd.org
Subject:   Problem in linprocfs proc/<pid>/maps
Message-ID:  <20050524114827.A92721@cons.org>

next in thread | raw e-mail | index | archive | help
I have a Linux process with some big mappings, overall 2.5 GB or so.

I notice that in /compat/linux/proc/<pid>/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 <cracauer@cons.org>   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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050524114827.A92721>