Skip to content

Commit

Permalink
unix: add linux cachestat system call
Browse files Browse the repository at this point in the history
The cachestat system call is an alternative to mincore that offers more
extensive page cache statistics, aiming to enhance scalability. It was added
on Linux 6.5.

Fixes golang/go#61917

Change-Id: If1b6b96f859dd6bf09f1a0c048abfa743a42c540
GitHub-Last-Rev: d18fbb9
GitHub-Pull-Request: #176
Reviewed-on: https://go-review.googlesource.com/c/sys/+/533242
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
  • Loading branch information
mauri870 authored and gopherbot committed Oct 10, 2023
1 parent 8ccaaf0 commit 1d9f0b6
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 0 deletions.
17 changes: 17 additions & 0 deletions unix/linux/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -461,6 +461,20 @@ struct my_can_bittiming_const {
struct riscv_hwprobe {};
#endif
// copied from /usr/include/uapi/linux/mman.h
struct cachestat_range {
__u64 off;
__u64 len;
};
struct cachestat {
__u64 nr_cache;
__u64 nr_dirty;
__u64 nr_writeback;
__u64 nr_evicted;
__u64 nr_recently_evicted;
};
*/
import "C"

Expand Down Expand Up @@ -5813,3 +5827,6 @@ const (
type SchedAttr C.struct_sched_attr

const SizeofSchedAttr = C.sizeof_struct_sched_attr

type Cachestat_t C.struct_cachestat
type CachestatRange C.struct_cachestat_range
2 changes: 2 additions & 0 deletions unix/syscall_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -2482,3 +2482,5 @@ func SchedGetAttr(pid int, flags uint) (*SchedAttr, error) {
}
return attr, nil
}

//sys Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error)
10 changes: 10 additions & 0 deletions unix/zsyscall_linux.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions unix/ztypes_linux.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 1d9f0b6

Please sign in to comment.