From f5cea64ac7a99e20f6b7c2719071253bca4007f1 Mon Sep 17 00:00:00 2001 From: Lokesh Mandvekar Date: Mon, 26 Apr 2021 10:32:29 -0400 Subject: [PATCH] bump github.com/iovisor/gobpf to v0.1.1 This fixes a build issue on armv7hl Signed-off-by: Lokesh Mandvekar --- go.mod | 2 +- go.sum | 9 ++---- vendor/github.com/iovisor/gobpf/bcc/perf.go | 2 +- vendor/github.com/iovisor/gobpf/bcc/table.go | 31 +++++++++++++++++++ .../iovisor/gobpf/pkg/cpuonline/cpuonline.go | 18 +++++++++++ .../gobpf/pkg/cpupossible/cpupossible.go | 18 +++++++++++ .../pkg/{cpuonline => cpurange}/cpu_range.go | 16 ++-------- vendor/modules.txt | 4 ++- 8 files changed, 76 insertions(+), 24 deletions(-) create mode 100644 vendor/github.com/iovisor/gobpf/pkg/cpuonline/cpuonline.go create mode 100644 vendor/github.com/iovisor/gobpf/pkg/cpupossible/cpupossible.go rename vendor/github.com/iovisor/gobpf/pkg/{cpuonline => cpurange}/cpu_range.go (65%) diff --git a/go.mod b/go.mod index 0e8ecdf..75b9424 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/containers/oci-seccomp-bpf-hook go 1.14 require ( - github.com/iovisor/gobpf v0.0.0-20210109143822-fb892541d416 + github.com/iovisor/gobpf v0.1.1 github.com/opencontainers/runtime-spec v1.0.3-0.20200728170252-4d89ac9fbff6 github.com/pkg/errors v0.9.1 github.com/seccomp/containers-golang v0.6.0 diff --git a/go.sum b/go.sum index f6aff00..fd327c1 100644 --- a/go.sum +++ b/go.sum @@ -7,9 +7,8 @@ github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/U github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.0 h1:B9UzwGQJehnUY1yNrnwREHc3fGbC2xefo8g4TbElacI= github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= -github.com/iovisor/gobpf v0.0.0-20210109143822-fb892541d416 h1:KIP9lHDm4Y+rNr6ONL+5fC5lX+79FgRlF6Xmi9VasVk= -github.com/iovisor/gobpf v0.0.0-20210109143822-fb892541d416/go.mod h1:+5U5qu5UOu8YJ5oHVLvWKH7/Dr5QNHU7mZ2RfPEeXg8= -github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= +github.com/iovisor/gobpf v0.1.1 h1:4LGPE9xTZmhI2BscCzKFDWvm8hn4NbTEvSIyKRrJUcg= +github.com/iovisor/gobpf v0.1.1/go.mod h1:WSY9Jj5RhdgC3ci1QaacvbFdQ8cbrEjrpiZbLHLt2s4= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/opencontainers/runtime-spec v1.0.3-0.20200710190001-3e4195d92445/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20200728170252-4d89ac9fbff6 h1:NhsM2gc769rVWDqJvapK37r+7+CBXI8xHhnfnt8uQsg= @@ -26,12 +25,10 @@ github.com/seccomp/containers-golang v0.6.0 h1:VWPMMIDr8pAtNjCX0WvLEEK9EQi5lAm4H github.com/seccomp/containers-golang v0.6.0/go.mod h1:Dd9mONHvW4YdbSzdm23yf2CFw0iqvqLhO0mEFvPIvm4= github.com/seccomp/libseccomp-golang v0.9.1 h1:NJjM5DNFOs0s3kYE1WUOr6G8V97sdt46rlXTMfXGWBo= github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= @@ -46,11 +43,9 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666 h1:gVCS+QOncANNPlmlO1AhlU3oxs4V9z+gTtPwIk3p2N8= golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78 h1:nVuTkr9L6Bq62qpUqKo/RnZCFfzDBL0bYo6w9OJUqZY= golang.org/x/sys v0.0.0-20210113181707-4bcb84eeeb78/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/vendor/github.com/iovisor/gobpf/bcc/perf.go b/vendor/github.com/iovisor/gobpf/bcc/perf.go index a9881a4..b8395ec 100644 --- a/vendor/github.com/iovisor/gobpf/bcc/perf.go +++ b/vendor/github.com/iovisor/gobpf/bcc/perf.go @@ -95,7 +95,7 @@ func rawCallback(cbCookie unsafe.Pointer, raw unsafe.Pointer, rawSize C.int) { } //export lostCallback -func lostCallback(cbCookie unsafe.Pointer, lost C.ulong) { +func lostCallback(cbCookie unsafe.Pointer, lost C.uint64_t) { callbackData := lookupCallback(uint64(uintptr(cbCookie))) if callbackData.lostChan != nil { callbackData.lostChan <- uint64(lost) diff --git a/vendor/github.com/iovisor/gobpf/bcc/table.go b/vendor/github.com/iovisor/gobpf/bcc/table.go index d745b80..34ae038 100644 --- a/vendor/github.com/iovisor/gobpf/bcc/table.go +++ b/vendor/github.com/iovisor/gobpf/bcc/table.go @@ -20,11 +20,14 @@ import ( "fmt" "os" "unsafe" + + "github.com/iovisor/gobpf/pkg/cpupossible" ) /* #cgo CFLAGS: -I/usr/include/bcc/compat #cgo LDFLAGS: -lbcc +#include #include #include */ @@ -141,6 +144,15 @@ func (table *Table) Get(key []byte) ([]byte, error) { keyP := unsafe.Pointer(&key[0]) leafSize := C.bpf_table_leaf_size_id(mod, table.id) + mapType := C.bpf_table_type_id(mod, table.id) + switch mapType { + case C.BPF_MAP_TYPE_PERCPU_HASH, C.BPF_MAP_TYPE_PERCPU_ARRAY: + cpus, err := cpupossible.Get() + if err != nil { + return nil, fmt.Errorf("get possible cpus: %w", err) + } + leafSize *= C.ulong(len(cpus)) + } leaf := make([]byte, leafSize) leafP := unsafe.Pointer(&leaf[0]) @@ -161,6 +173,15 @@ func (table *Table) GetP(key unsafe.Pointer) (unsafe.Pointer, error) { fd := C.bpf_table_fd_id(table.module.p, table.id) leafSize := C.bpf_table_leaf_size_id(table.module.p, table.id) + mapType := C.bpf_table_type_id(table.module.p, table.id) + switch mapType { + case C.BPF_MAP_TYPE_PERCPU_HASH, C.BPF_MAP_TYPE_PERCPU_ARRAY: + cpus, err := cpupossible.Get() + if err != nil { + return nil, fmt.Errorf("get possible cpus: %w", err) + } + leafSize *= C.ulong(len(cpus)) + } leaf := make([]byte, leafSize) leafP := unsafe.Pointer(&leaf[0]) @@ -289,6 +310,16 @@ func (it *TableIterator) Next() bool { } leafSize := C.bpf_table_leaf_size_id(it.table.module.p, it.table.id) + mapType := C.bpf_table_type_id(it.table.module.p, it.table.id) + switch mapType { + case C.BPF_MAP_TYPE_PERCPU_HASH, C.BPF_MAP_TYPE_PERCPU_ARRAY: + cpus, err := cpupossible.Get() + if err != nil { + it.err = fmt.Errorf("get possible cpus: %w", err) + return false + } + leafSize *= C.ulong(len(cpus)) + } leaf := make([]byte, leafSize) it.key = key diff --git a/vendor/github.com/iovisor/gobpf/pkg/cpuonline/cpuonline.go b/vendor/github.com/iovisor/gobpf/pkg/cpuonline/cpuonline.go new file mode 100644 index 0000000..1fcec7a --- /dev/null +++ b/vendor/github.com/iovisor/gobpf/pkg/cpuonline/cpuonline.go @@ -0,0 +1,18 @@ +package cpuonline + +import ( + "io/ioutil" + + "github.com/iovisor/gobpf/pkg/cpurange" +) + +const cpuOnline = "/sys/devices/system/cpu/online" + +// Get returns a slice with the online CPUs, for example `[0, 2, 3]` +func Get() ([]uint, error) { + buf, err := ioutil.ReadFile(cpuOnline) + if err != nil { + return nil, err + } + return cpurange.ReadCPURange(string(buf)) +} diff --git a/vendor/github.com/iovisor/gobpf/pkg/cpupossible/cpupossible.go b/vendor/github.com/iovisor/gobpf/pkg/cpupossible/cpupossible.go new file mode 100644 index 0000000..ec07361 --- /dev/null +++ b/vendor/github.com/iovisor/gobpf/pkg/cpupossible/cpupossible.go @@ -0,0 +1,18 @@ +package cpupossible + +import ( + "io/ioutil" + + "github.com/iovisor/gobpf/pkg/cpurange" +) + +const cpuPossible = "/sys/devices/system/cpu/possible" + +// Get returns a slice with the online CPUs, for example `[0, 2, 3]` +func Get() ([]uint, error) { + buf, err := ioutil.ReadFile(cpuPossible) + if err != nil { + return nil, err + } + return cpurange.ReadCPURange(string(buf)) +} diff --git a/vendor/github.com/iovisor/gobpf/pkg/cpuonline/cpu_range.go b/vendor/github.com/iovisor/gobpf/pkg/cpurange/cpu_range.go similarity index 65% rename from vendor/github.com/iovisor/gobpf/pkg/cpuonline/cpu_range.go rename to vendor/github.com/iovisor/gobpf/pkg/cpurange/cpu_range.go index aa87830..3031931 100644 --- a/vendor/github.com/iovisor/gobpf/pkg/cpuonline/cpu_range.go +++ b/vendor/github.com/iovisor/gobpf/pkg/cpurange/cpu_range.go @@ -1,15 +1,12 @@ -package cpuonline +package cpurange import ( - "io/ioutil" "strconv" "strings" ) -const cpuOnline = "/sys/devices/system/cpu/online" - // loosely based on https://github.com/iovisor/bcc/blob/v0.3.0/src/python/bcc/utils.py#L15 -func readCPURange(cpuRangeStr string) ([]uint, error) { +func ReadCPURange(cpuRangeStr string) ([]uint, error) { var cpus []uint cpuRangeStr = strings.Trim(cpuRangeStr, "\n ") for _, cpuRange := range strings.Split(cpuRangeStr, ",") { @@ -32,12 +29,3 @@ func readCPURange(cpuRangeStr string) ([]uint, error) { } return cpus, nil } - -// Get returns a slice with the online CPUs, for example `[0, 2, 3]` -func Get() ([]uint, error) { - buf, err := ioutil.ReadFile(cpuOnline) - if err != nil { - return nil, err - } - return readCPURange(string(buf)) -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 7d6de29..2e2c9f3 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,9 +1,11 @@ # github.com/davecgh/go-spew v1.1.1 github.com/davecgh/go-spew/spew -# github.com/iovisor/gobpf v0.0.0-20210109143822-fb892541d416 +# github.com/iovisor/gobpf v0.1.1 ## explicit github.com/iovisor/gobpf/bcc github.com/iovisor/gobpf/pkg/cpuonline +github.com/iovisor/gobpf/pkg/cpupossible +github.com/iovisor/gobpf/pkg/cpurange # github.com/opencontainers/runtime-spec v1.0.3-0.20200728170252-4d89ac9fbff6 ## explicit github.com/opencontainers/runtime-spec/specs-go