mirror of
https://github.com/containers/podman.git
synced 2025-11-13 09:38:05 +08:00
vendor containers/common@7482cf851d
Make sure that image events are written *after* execution. Fixes: #10812 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
30
vendor/github.com/containers/common/pkg/sysinfo/nummem_linux.go
generated
vendored
Normal file
30
vendor/github.com/containers/common/pkg/sysinfo/nummem_linux.go
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
// +build linux
|
||||
|
||||
package sysinfo
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
// NUMANodeCount queries the system for the count of Memory Nodes available
|
||||
// for use to this process.
|
||||
func NUMANodeCount() int {
|
||||
MPOL_F_MEMS_ALLOWED := (1 << 2)
|
||||
var mask [1024 / 64]uintptr
|
||||
_, _, err := unix.RawSyscall6(unix.SYS_GET_MEMPOLICY, 0, uintptr(unsafe.Pointer(&mask[0])), uintptr(len(mask)*8), 0, uintptr(MPOL_F_MEMS_ALLOWED), 0)
|
||||
if err != 0 {
|
||||
return 0
|
||||
}
|
||||
|
||||
// For every available thread a bit is set in the mask.
|
||||
nmem := 0
|
||||
for _, e := range mask {
|
||||
if e == 0 {
|
||||
continue
|
||||
}
|
||||
nmem += int(popcnt(uint64(e)))
|
||||
}
|
||||
return nmem
|
||||
}
|
||||
Reference in New Issue
Block a user