[PATCH] Teach procstat/fstat about details of a shm_open() object

John Baldwin jhb at freebsd.org
Mon Mar 26 15:10:56 UTC 2012


This patch changes the kernel to export a few details (mode, size, and path) 
of an object created via shm_open() to userland via the kinfo_file structure.  
It then updates fstat and procstat to parse these details.  A few questions I 
had:

1) Rather than creating a new sub-structure in kinfo_file for shm objects, I 
just populate two of the fields in the existing kf_file.

2) For the non-path details I just ran fo_stat() on the shm and used the 
returned buffer.  In hindsight, it seems it might have been nice to make 
kinfo_file just include a 'struct stat' and use fo_stat() to populate it for 
each fd.  Would have reduced the need for some of the current type-specific 
logic I think.

3) I think we should probably change procstat to always try to print the path 
if it is set (so make the current VNODE|SHM, etc. case the "default" case).

4) I made fstat print out the pathname of the shm in the "MOUNT" field.  Not 
sure how to document this sanely in the fstat manpage though.

5) I make anonymous objects created with SHM_ANON report a path of "SHM_ANON".  
They could just as easily report a path of "-" like an unlinked shm, I just 
made this different so I could tell them apart.  However, perhaps that is too 
weird and they should report an empty path instead (like an unlinked shm or 
unlinked file).

http://www.FreeBSD.org/~jhb/patches/shm_info.patch

I did not bother doing this for in-kernel POSIX semaphores since they are 
deprecated.

-- 
John Baldwin


More information about the freebsd-arch mailing list