Date: Sat, 31 Jan 2015 09:07:23 -0600 From: Eric Badger <eric@badgerio.us> To: freebsd-current@freebsd.org Subject: Filepaths in VM map for tmpfs files Message-ID: <54CCEFAB.9040406@badgerio.us>
next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------010102060709010900020003 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit In FreeBSD 9, examining the VM map of a process (with e.g. 'procstat -v') with a tmpfs file mapped showed a VNODE type and displayed the file path. In 10.0 up to CURRENT (I believe this started at r250030), instead SWAP is shown without a filepath. This has some unfortunate consequences; I discovered this problem when trying to use dtrace's pid provider, which fails to find symbols for executables running from tmpfs. I've attached a patch which will repair procstat/dtrace. There are a few other places such a patch would be needed. I'm willing to put together such a patch, but would like to first hear some feedback that this seems like a reasonable approach, or if there's anything I've missed. Thoughts? Eric --------------010102060709010900020003 Content-Type: text/x-patch; name="tmpfs_vnode.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="tmpfs_vnode.diff" Index: sys/kern/kern_proc.c =================================================================== --- sys/kern/kern_proc.c (revision 277957) +++ sys/kern/kern_proc.c (working copy) @@ -2337,6 +2337,11 @@ break; case OBJT_SWAP: kve->kve_type = KVME_TYPE_SWAP; + if ((lobj->flags & OBJ_TMPFS) != 0) + { + vp = lobj->un_pager.swp.swp_tmpfs; + vref(vp); + } break; case OBJT_DEVICE: kve->kve_type = KVME_TYPE_DEVICE; --------------010102060709010900020003--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54CCEFAB.9040406>