mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-28 11:25:21 +01:00
posixshmcontrol(1): for regular shmfd, report used pages number
Tested by: pho
(cherry picked from commit 1bbc510134)
This commit is contained in:
1 parent
d689fda070
commit
376418fcbd
1 file changed
+7
-1
@@ -404,6 +404,8 @@ stat_one_shm(const char *path, bool hsize, bool uname)
|
||||
char sizebuf[8];
|
||||
struct stat st;
|
||||
int error, fd, ret;
|
||||
struct shm_largepage_conf conf_dummy;
|
||||
bool largepage;
|
||||
|
||||
fd = shm_open(path, O_RDONLY, 0);
|
||||
if (fd == -1) {
|
||||
@@ -442,9 +444,13 @@ stat_one_shm(const char *path, bool hsize, bool uname)
|
||||
(long)st.st_ctim.tv_nsec);
|
||||
printf("birth\t%ld.%09ld\n", (long)st.st_birthtim.tv_sec,
|
||||
(long)st.st_birthtim.tv_nsec);
|
||||
if (st.st_blocks != 0)
|
||||
error = ioctl(fd, FIOGSHMLPGCNF, &conf_dummy);
|
||||
largepage = error == 0;
|
||||
if (st.st_blocks != 0 && largepage)
|
||||
printf("pagesz\t%jd\n", roundup((uintmax_t)st.st_size,
|
||||
PAGE_SIZE) / st.st_blocks);
|
||||
else
|
||||
printf("pages\t%jd\n", st.st_blocks);
|
||||
}
|
||||
close(fd);
|
||||
return (ret);
|
||||
|
||||
Reference in new issue
Block a user