rmuir commented on PR #13381: URL: https://github.com/apache/lucene/pull/13381#issuecomment-2119287234
Maybe if we didn't close the fd in mmapdir we could eventually think about making use of this on modern linux. it doesn't have a glibc wrapper yet... here is minimal sample code, but maybe just look at `fincore` for a more functional example: https://github.com/util-linux/util-linux/blob/master/misc-utils/fincore.c ```c #include <sys/syscall.h> #include <linux/mman.h> #include <fcntl.h> #include <stdio.h> #include <unistd.h> int cachestat(int fd, struct cachestat_range *range, struct cachestat *stats, int flags) { return syscall(SYS_cachestat, fd, range, stats, flags); } int main(int argc, char **argv) { int fd; if (argc != 2) { printf("usage: %s <file>\n", argv[0]); return 2; } if ((fd = open(argv[1], O_RDONLY)) < 0) { perror("couldn't open"); return 1; } struct cachestat_range range = { 0, 0 }; struct cachestat cstats; if (cachestat(fd, &range, &cstats, 0) != 0) { perror("couldn't cachestat"); return 1; } printf("cached: %llu\ndirty: %llu\nwriteback: %llu\nevicted: %llu\nrecently_evicted: %llu\n", cstats.nr_cache, cstats.nr_dirty, cstats.nr_writeback, cstats.nr_evicted, cstats.nr_recently_evicted); return 0; } ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
