Filepaths in VM map for tmpfs files

Konstantin Belousov kostikbel at gmail.com
Mon Feb 2 09:30:42 UTC 2015


On Sun, Feb 01, 2015 at 08:38:29PM -0600, Eric Badger wrote:
> 
> On 01/31/2015 09:36 AM, Konstantin Belousov wrote:
> > First, shouldn't the kve_type changed to KVME_TYPE_VNODE as well ?
> My thinking is no, because KVME_TYPE_SWAP is in fact the correct type; 
> I'd opine that it is better to be transparent than make it look like 
> there is an OBJT_VNODE object there. It may be that some programs would 
> be confused by VNODE info returned on a SWAP type mapping, though I know 
> that dtrace handles it OK.
kve_vn_* and kve_path fields are defined only for KVME_TYPE_VNODE kve_type.
So this is in fact a bug in whatever used the API to access kve_path
for KVE_TYPE_SWAP.

> 
> > Second, note that it is possible that the vnode is recycled, so
> > OBJ_TMPFS flag is cleared for tmpfs swap object.  The OBJ_TMPFS_NODE
> > flag is still set then.  I am not sure what to do in this case,
> > should the type changed to KVME_TYPE_VNODE still, but kve_vn_*
> > fields left invalid ?
> I think if we changed to KVME_TYPE_VNODE in some cases, it should be 
> done in all cases, even if the vnode has been recycled (but leave vp == 
> NULL in that case). Though if it is left as KVME_TYPE_SWAP, then that 
> concern goes away on its own.
Concern is not vp == NULL, but the fact that kve_vn* cannot be filled,
there is simply no (easy) way to fetch this information.


More information about the freebsd-current mailing list