mirror of
https://github.com/containers/podman.git
synced 2025-08-06 19:44:14 +08:00
Add 'stats-dump' file to exported checkpoint
There was the question about how long it takes to create a checkpoint. CRIU already provides some statistics about how long it takes to create a checkpoint and similar. With this change the file 'stats-dump' is included in the checkpoint archive and the tool checkpointctl can be used to display these statistics: ./checkpointctl show -t /tmp/cp.tar --print-stats Displaying container checkpoint data from /tmp/dump.tar [...] CRIU dump statistics +---------------+-------------+--------------+---------------+---------------+---------------+ | FREEZING TIME | FROZEN TIME | MEMDUMP TIME | MEMWRITE TIME | PAGES SCANNED | PAGES WRITTEN | +---------------+-------------+--------------+---------------+---------------+---------------+ | 105405 us | 1376964 us | 504399 us | 446571 us | 492153 | 88689 | +---------------+-------------+--------------+---------------+---------------+---------------+ Signed-off-by: Adrian Reber <areber@redhat.com>
This commit is contained in:
2
go.mod
2
go.mod
@ -7,7 +7,7 @@ require (
|
|||||||
github.com/blang/semver v3.5.1+incompatible
|
github.com/blang/semver v3.5.1+incompatible
|
||||||
github.com/buger/goterm v0.0.0-20181115115552-c206103e1f37
|
github.com/buger/goterm v0.0.0-20181115115552-c206103e1f37
|
||||||
github.com/checkpoint-restore/checkpointctl v0.0.0-20210922093614-c31748bec9f2
|
github.com/checkpoint-restore/checkpointctl v0.0.0-20210922093614-c31748bec9f2
|
||||||
github.com/checkpoint-restore/go-criu/v5 v5.1.0
|
github.com/checkpoint-restore/go-criu/v5 v5.2.0
|
||||||
github.com/container-orchestrated-devices/container-device-interface v0.0.0-20210325223243-f99e8b6c10b9
|
github.com/container-orchestrated-devices/container-device-interface v0.0.0-20210325223243-f99e8b6c10b9
|
||||||
github.com/containernetworking/cni v1.0.1
|
github.com/containernetworking/cni v1.0.1
|
||||||
github.com/containernetworking/plugins v1.0.1
|
github.com/containernetworking/plugins v1.0.1
|
||||||
|
7
go.sum
7
go.sum
@ -139,8 +139,8 @@ github.com/checkpoint-restore/checkpointctl v0.0.0-20210922093614-c31748bec9f2/g
|
|||||||
github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
|
github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
|
||||||
github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
|
github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
|
||||||
github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M=
|
github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M=
|
||||||
github.com/checkpoint-restore/go-criu/v5 v5.1.0 h1:BkVH17kcwgmKMnFArsvLrxuBbMwfvPNYRB7mfJ0lzyI=
|
github.com/checkpoint-restore/go-criu/v5 v5.2.0 h1:QwsRK9EdBr2kQr44DqSdBrP4dULp2+4EkqounYQOnF8=
|
||||||
github.com/checkpoint-restore/go-criu/v5 v5.1.0/go.mod h1:iaS8bb7p6zKJanp1Qe8mpl7+bnkYBR500psJR6mwma0=
|
github.com/checkpoint-restore/go-criu/v5 v5.2.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E=
|
||||||
github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=
|
github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=
|
||||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8=
|
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8=
|
||||||
@ -1449,8 +1449,9 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
|
|||||||
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
|
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
|
||||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
|
|
||||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
|
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
|
||||||
|
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
|
gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
|
||||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
metadata "github.com/checkpoint-restore/checkpointctl/lib"
|
metadata "github.com/checkpoint-restore/checkpointctl/lib"
|
||||||
|
"github.com/checkpoint-restore/go-criu/v5/stats"
|
||||||
cdi "github.com/container-orchestrated-devices/container-device-interface/pkg"
|
cdi "github.com/container-orchestrated-devices/container-device-interface/pkg"
|
||||||
"github.com/containernetworking/plugins/pkg/ns"
|
"github.com/containernetworking/plugins/pkg/ns"
|
||||||
"github.com/containers/buildah/pkg/chrootuser"
|
"github.com/containers/buildah/pkg/chrootuser"
|
||||||
@ -1013,6 +1014,7 @@ func (c *Container) exportCheckpoint(options ContainerCheckpointOptions) error {
|
|||||||
metadata.ConfigDumpFile,
|
metadata.ConfigDumpFile,
|
||||||
metadata.SpecDumpFile,
|
metadata.SpecDumpFile,
|
||||||
metadata.NetworkStatusFile,
|
metadata.NetworkStatusFile,
|
||||||
|
stats.StatsDump,
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.LogDriver() == define.KubernetesLogging ||
|
if c.LogDriver() == define.KubernetesLogging ||
|
||||||
@ -1197,7 +1199,7 @@ func (c *Container) checkpoint(ctx context.Context, options ContainerCheckpointO
|
|||||||
if !options.Keep && !options.PreCheckPoint {
|
if !options.Keep && !options.PreCheckPoint {
|
||||||
cleanup := []string{
|
cleanup := []string{
|
||||||
"dump.log",
|
"dump.log",
|
||||||
"stats-dump",
|
stats.StatsDump,
|
||||||
metadata.ConfigDumpFile,
|
metadata.ConfigDumpFile,
|
||||||
metadata.SpecDumpFile,
|
metadata.SpecDumpFile,
|
||||||
}
|
}
|
||||||
@ -1564,8 +1566,8 @@ func (c *Container) restore(ctx context.Context, options ContainerCheckpointOpti
|
|||||||
cleanup := [...]string{
|
cleanup := [...]string{
|
||||||
"restore.log",
|
"restore.log",
|
||||||
"dump.log",
|
"dump.log",
|
||||||
"stats-dump",
|
stats.StatsDump,
|
||||||
"stats-restore",
|
stats.StatsRestore,
|
||||||
metadata.NetworkStatusFile,
|
metadata.NetworkStatusFile,
|
||||||
metadata.RootFsDiffTar,
|
metadata.RootFsDiffTar,
|
||||||
metadata.DeletedFilesFile,
|
metadata.DeletedFilesFile,
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
|
|
||||||
metadata "github.com/checkpoint-restore/checkpointctl/lib"
|
metadata "github.com/checkpoint-restore/checkpointctl/lib"
|
||||||
|
"github.com/checkpoint-restore/go-criu/v5/stats"
|
||||||
"github.com/containers/common/libimage"
|
"github.com/containers/common/libimage"
|
||||||
"github.com/containers/common/pkg/config"
|
"github.com/containers/common/pkg/config"
|
||||||
"github.com/containers/podman/v3/libpod"
|
"github.com/containers/podman/v3/libpod"
|
||||||
@ -39,6 +40,7 @@ func CRImportCheckpoint(ctx context.Context, runtime *libpod.Runtime, restoreOpt
|
|||||||
"volumes",
|
"volumes",
|
||||||
"ctr.log",
|
"ctr.log",
|
||||||
"artifacts",
|
"artifacts",
|
||||||
|
stats.StatsDump,
|
||||||
metadata.RootFsDiffTar,
|
metadata.RootFsDiffTar,
|
||||||
metadata.DeletedFilesFile,
|
metadata.DeletedFilesFile,
|
||||||
metadata.NetworkStatusFile,
|
metadata.NetworkStatusFile,
|
||||||
|
5
vendor/github.com/checkpoint-restore/go-criu/v5/.gitignore
generated
vendored
5
vendor/github.com/checkpoint-restore/go-criu/v5/.gitignore
generated
vendored
@ -1,5 +1,6 @@
|
|||||||
test/test
|
test/test
|
||||||
|
test/test.coverage
|
||||||
test/piggie/piggie
|
test/piggie/piggie
|
||||||
test/phaul
|
test/phaul/phaul
|
||||||
|
test/phaul/phaul.coverage
|
||||||
image
|
image
|
||||||
stats/stats.proto
|
|
||||||
|
56
vendor/github.com/checkpoint-restore/go-criu/v5/Makefile
generated
vendored
56
vendor/github.com/checkpoint-restore/go-criu/v5/Makefile
generated
vendored
@ -1,5 +1,7 @@
|
|||||||
|
SHELL = /bin/bash
|
||||||
GO ?= go
|
GO ?= go
|
||||||
CC ?= gcc
|
CC ?= gcc
|
||||||
|
COVERAGE_PATH ?= $(shell pwd)/.coverage
|
||||||
|
|
||||||
all: build test phaul-test
|
all: build test phaul-test
|
||||||
|
|
||||||
@ -9,13 +11,15 @@ lint:
|
|||||||
build:
|
build:
|
||||||
$(GO) build -v ./...
|
$(GO) build -v ./...
|
||||||
|
|
||||||
TEST_BINARIES := test/test test/piggie/piggie test/phaul/phaul
|
TEST_PAYLOAD := test/piggie/piggie
|
||||||
|
TEST_BINARIES := test/test $(TEST_PAYLOAD) test/phaul/phaul
|
||||||
|
COVERAGE_BINARIES := test/test.coverage test/phaul/phaul.coverage
|
||||||
test-bin: $(TEST_BINARIES)
|
test-bin: $(TEST_BINARIES)
|
||||||
|
|
||||||
test/piggie/piggie: test/piggie/piggie.c
|
test/piggie/piggie: test/piggie/piggie.c
|
||||||
$(CC) $^ -o $@
|
$(CC) $^ -o $@
|
||||||
|
|
||||||
test/test: test/*.go
|
test/test: test/main.go
|
||||||
$(GO) build -v -o $@ $^
|
$(GO) build -v -o $@ $^
|
||||||
|
|
||||||
test: $(TEST_BINARIES)
|
test: $(TEST_BINARIES)
|
||||||
@ -27,7 +31,7 @@ test: $(TEST_BINARIES)
|
|||||||
}
|
}
|
||||||
rm -rf image
|
rm -rf image
|
||||||
|
|
||||||
test/phaul/phaul: test/phaul/*.go
|
test/phaul/phaul: test/phaul/main.go
|
||||||
$(GO) build -v -o $@ $^
|
$(GO) build -v -o $@ $^
|
||||||
|
|
||||||
phaul-test: $(TEST_BINARIES)
|
phaul-test: $(TEST_BINARIES)
|
||||||
@ -37,10 +41,39 @@ phaul-test: $(TEST_BINARIES)
|
|||||||
pkill -9 piggie; \
|
pkill -9 piggie; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test/test.coverage: test/*.go
|
||||||
|
$(GO) test \
|
||||||
|
-covermode=count \
|
||||||
|
-coverpkg=./... \
|
||||||
|
-mod=vendor \
|
||||||
|
-tags coverage \
|
||||||
|
-buildmode=pie -c -o $@ $^
|
||||||
|
|
||||||
|
test/phaul/phaul.coverage: test/phaul/*.go
|
||||||
|
$(GO) test \
|
||||||
|
-covermode=count \
|
||||||
|
-coverpkg=./... \
|
||||||
|
-mod=vendor \
|
||||||
|
-tags coverage \
|
||||||
|
-buildmode=pie -c -o $@ $^
|
||||||
|
|
||||||
|
coverage: $(COVERAGE_BINARIES) $(TEST_PAYLOAD)
|
||||||
|
mkdir -p $(COVERAGE_PATH)
|
||||||
|
mkdir -p image
|
||||||
|
PID=$$(test/piggie/piggie) && { \
|
||||||
|
test/test.coverage -test.coverprofile=coverprofile.integration.$$RANDOM -test.outputdir=${COVERAGE_PATH} COVERAGE dump $$PID image && \
|
||||||
|
test/test.coverage -test.coverprofile=coverprofile.integration.$$RANDOM -test.outputdir=${COVERAGE_PATH} COVERAGE restore image; \
|
||||||
|
pkill -9 piggie; \
|
||||||
|
}
|
||||||
|
rm -rf image
|
||||||
|
PID=$$(test/piggie/piggie) && { \
|
||||||
|
test/phaul/phaul.coverage -test.coverprofile=coverprofile.integration.$$RANDOM -test.outputdir=${COVERAGE_PATH} COVERAGE $$PID; \
|
||||||
|
pkill -9 piggie; \
|
||||||
|
}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -f $(TEST_BINARIES)
|
@rm -f $(TEST_BINARIES) $(COVERAGE_BINARIES) codecov
|
||||||
@rm -rf image
|
@rm -rf image $(COVERAGE_PATH)
|
||||||
@rm -f rpc/rpc.proto stats/stats.proto
|
|
||||||
|
|
||||||
rpc/rpc.proto:
|
rpc/rpc.proto:
|
||||||
curl -sSL https://raw.githubusercontent.com/checkpoint-restore/criu/master/images/rpc.proto -o $@
|
curl -sSL https://raw.githubusercontent.com/checkpoint-restore/criu/master/images/rpc.proto -o $@
|
||||||
@ -49,14 +82,19 @@ stats/stats.proto:
|
|||||||
curl -sSL https://raw.githubusercontent.com/checkpoint-restore/criu/master/images/stats.proto -o $@
|
curl -sSL https://raw.githubusercontent.com/checkpoint-restore/criu/master/images/stats.proto -o $@
|
||||||
|
|
||||||
rpc/rpc.pb.go: rpc/rpc.proto
|
rpc/rpc.pb.go: rpc/rpc.proto
|
||||||
protoc --go_out=. --go_opt=Mrpc/rpc.proto=rpc/ $^
|
protoc --go_out=. --go_opt=M$^=rpc/ $^
|
||||||
|
|
||||||
stats/stats.pb.go: stats/stats.proto
|
stats/stats.pb.go: stats/stats.proto
|
||||||
protoc --go_out=. $^
|
protoc --go_out=. --go_opt=M$^=stats/ $^
|
||||||
|
|
||||||
vendor:
|
vendor:
|
||||||
GO111MODULE=on $(GO) mod tidy
|
GO111MODULE=on $(GO) mod tidy
|
||||||
GO111MODULE=on $(GO) mod vendor
|
GO111MODULE=on $(GO) mod vendor
|
||||||
GO111MODULE=on $(GO) mod verify
|
GO111MODULE=on $(GO) mod verify
|
||||||
|
|
||||||
.PHONY: build test phaul-test test-bin clean lint vendor
|
codecov:
|
||||||
|
curl -Os https://uploader.codecov.io/latest/linux/codecov
|
||||||
|
chmod +x codecov
|
||||||
|
./codecov -f '.coverage/*'
|
||||||
|
|
||||||
|
.PHONY: build test phaul-test test-bin clean lint vendor coverage codecov
|
||||||
|
3
vendor/github.com/checkpoint-restore/go-criu/v5/README.md
generated
vendored
3
vendor/github.com/checkpoint-restore/go-criu/v5/README.md
generated
vendored
@ -16,7 +16,7 @@ The following example would print the version of CRIU:
|
|||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/checkpoint/restore/go-criu/v5"
|
"github.com/checkpoint-restore/go-criu/v5"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -50,6 +50,7 @@ The following table shows the relation between go-criu and criu versions:
|
|||||||
|
|
||||||
| Major version | Latest release | CRIU version |
|
| Major version | Latest release | CRIU version |
|
||||||
| -------------- | -------------- | ------------ |
|
| -------------- | -------------- | ------------ |
|
||||||
|
| v5 | 5.2.0 | 3.16 |
|
||||||
| v5 | 5.0.0 | 3.15 |
|
| v5 | 5.0.0 | 3.15 |
|
||||||
| v4 | 4.1.0 | 3.14 |
|
| v4 | 4.1.0 | 3.14 |
|
||||||
|
|
||||||
|
3
vendor/github.com/checkpoint-restore/go-criu/v5/go.mod
generated
vendored
3
vendor/github.com/checkpoint-restore/go-criu/v5/go.mod
generated
vendored
@ -3,7 +3,6 @@ module github.com/checkpoint-restore/go-criu/v5
|
|||||||
go 1.13
|
go 1.13
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/golang/protobuf v1.5.2
|
|
||||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c
|
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c
|
||||||
google.golang.org/protobuf v1.26.0
|
google.golang.org/protobuf v1.27.1
|
||||||
)
|
)
|
||||||
|
6
vendor/github.com/checkpoint-restore/go-criu/v5/go.sum
generated
vendored
6
vendor/github.com/checkpoint-restore/go-criu/v5/go.sum
generated
vendored
@ -1,6 +1,4 @@
|
|||||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
|
||||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
|
||||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
||||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk=
|
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk=
|
||||||
@ -8,5 +6,5 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
|
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
|
||||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
|
12
vendor/github.com/checkpoint-restore/go-criu/v5/magic/types.go
generated
vendored
Normal file
12
vendor/github.com/checkpoint-restore/go-criu/v5/magic/types.go
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package magic
|
||||||
|
|
||||||
|
const (
|
||||||
|
ImgCommonMagic = 0x54564319 /* Sarov (a.k.a. Arzamas-16) */
|
||||||
|
ImgServiceMagic = 0x55105940 /* Zlatoust */
|
||||||
|
StatsMagic = 0x57093306 /* Ostashkov */
|
||||||
|
|
||||||
|
PrimaryMagicOffset = 0x0
|
||||||
|
SecondaryMagicOffset = 0x4
|
||||||
|
SizeOffset = 0x8
|
||||||
|
PayloadOffset = 0xC
|
||||||
|
)
|
4
vendor/github.com/checkpoint-restore/go-criu/v5/rpc/rpc.pb.go
generated
vendored
4
vendor/github.com/checkpoint-restore/go-criu/v5/rpc/rpc.pb.go
generated
vendored
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.26.0
|
// protoc-gen-go v1.27.1
|
||||||
// protoc v3.14.0
|
// protoc v3.12.4
|
||||||
// source: rpc/rpc.proto
|
// source: rpc/rpc.proto
|
||||||
|
|
||||||
package rpc
|
package rpc
|
||||||
|
462
vendor/github.com/checkpoint-restore/go-criu/v5/stats/stats.pb.go
generated
vendored
Normal file
462
vendor/github.com/checkpoint-restore/go-criu/v5/stats/stats.pb.go
generated
vendored
Normal file
@ -0,0 +1,462 @@
|
|||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.27.1
|
||||||
|
// protoc v3.12.4
|
||||||
|
// source: stats/stats.proto
|
||||||
|
|
||||||
|
package stats
|
||||||
|
|
||||||
|
import (
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
reflect "reflect"
|
||||||
|
sync "sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
// This one contains statistics about dump/restore process
|
||||||
|
type DumpStatsEntry struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
FreezingTime *uint32 `protobuf:"varint,1,req,name=freezing_time,json=freezingTime" json:"freezing_time,omitempty"`
|
||||||
|
FrozenTime *uint32 `protobuf:"varint,2,req,name=frozen_time,json=frozenTime" json:"frozen_time,omitempty"`
|
||||||
|
MemdumpTime *uint32 `protobuf:"varint,3,req,name=memdump_time,json=memdumpTime" json:"memdump_time,omitempty"`
|
||||||
|
MemwriteTime *uint32 `protobuf:"varint,4,req,name=memwrite_time,json=memwriteTime" json:"memwrite_time,omitempty"`
|
||||||
|
PagesScanned *uint64 `protobuf:"varint,5,req,name=pages_scanned,json=pagesScanned" json:"pages_scanned,omitempty"`
|
||||||
|
PagesSkippedParent *uint64 `protobuf:"varint,6,req,name=pages_skipped_parent,json=pagesSkippedParent" json:"pages_skipped_parent,omitempty"`
|
||||||
|
PagesWritten *uint64 `protobuf:"varint,7,req,name=pages_written,json=pagesWritten" json:"pages_written,omitempty"`
|
||||||
|
IrmapResolve *uint32 `protobuf:"varint,8,opt,name=irmap_resolve,json=irmapResolve" json:"irmap_resolve,omitempty"`
|
||||||
|
PagesLazy *uint64 `protobuf:"varint,9,req,name=pages_lazy,json=pagesLazy" json:"pages_lazy,omitempty"`
|
||||||
|
PagePipes *uint64 `protobuf:"varint,10,opt,name=page_pipes,json=pagePipes" json:"page_pipes,omitempty"`
|
||||||
|
PagePipeBufs *uint64 `protobuf:"varint,11,opt,name=page_pipe_bufs,json=pagePipeBufs" json:"page_pipe_bufs,omitempty"`
|
||||||
|
ShpagesScanned *uint64 `protobuf:"varint,12,opt,name=shpages_scanned,json=shpagesScanned" json:"shpages_scanned,omitempty"`
|
||||||
|
ShpagesSkippedParent *uint64 `protobuf:"varint,13,opt,name=shpages_skipped_parent,json=shpagesSkippedParent" json:"shpages_skipped_parent,omitempty"`
|
||||||
|
ShpagesWritten *uint64 `protobuf:"varint,14,opt,name=shpages_written,json=shpagesWritten" json:"shpages_written,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) Reset() {
|
||||||
|
*x = DumpStatsEntry{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_stats_stats_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*DumpStatsEntry) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_stats_stats_proto_msgTypes[0]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use DumpStatsEntry.ProtoReflect.Descriptor instead.
|
||||||
|
func (*DumpStatsEntry) Descriptor() ([]byte, []int) {
|
||||||
|
return file_stats_stats_proto_rawDescGZIP(), []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetFreezingTime() uint32 {
|
||||||
|
if x != nil && x.FreezingTime != nil {
|
||||||
|
return *x.FreezingTime
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetFrozenTime() uint32 {
|
||||||
|
if x != nil && x.FrozenTime != nil {
|
||||||
|
return *x.FrozenTime
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetMemdumpTime() uint32 {
|
||||||
|
if x != nil && x.MemdumpTime != nil {
|
||||||
|
return *x.MemdumpTime
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetMemwriteTime() uint32 {
|
||||||
|
if x != nil && x.MemwriteTime != nil {
|
||||||
|
return *x.MemwriteTime
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetPagesScanned() uint64 {
|
||||||
|
if x != nil && x.PagesScanned != nil {
|
||||||
|
return *x.PagesScanned
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetPagesSkippedParent() uint64 {
|
||||||
|
if x != nil && x.PagesSkippedParent != nil {
|
||||||
|
return *x.PagesSkippedParent
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetPagesWritten() uint64 {
|
||||||
|
if x != nil && x.PagesWritten != nil {
|
||||||
|
return *x.PagesWritten
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetIrmapResolve() uint32 {
|
||||||
|
if x != nil && x.IrmapResolve != nil {
|
||||||
|
return *x.IrmapResolve
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetPagesLazy() uint64 {
|
||||||
|
if x != nil && x.PagesLazy != nil {
|
||||||
|
return *x.PagesLazy
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetPagePipes() uint64 {
|
||||||
|
if x != nil && x.PagePipes != nil {
|
||||||
|
return *x.PagePipes
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetPagePipeBufs() uint64 {
|
||||||
|
if x != nil && x.PagePipeBufs != nil {
|
||||||
|
return *x.PagePipeBufs
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetShpagesScanned() uint64 {
|
||||||
|
if x != nil && x.ShpagesScanned != nil {
|
||||||
|
return *x.ShpagesScanned
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetShpagesSkippedParent() uint64 {
|
||||||
|
if x != nil && x.ShpagesSkippedParent != nil {
|
||||||
|
return *x.ShpagesSkippedParent
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DumpStatsEntry) GetShpagesWritten() uint64 {
|
||||||
|
if x != nil && x.ShpagesWritten != nil {
|
||||||
|
return *x.ShpagesWritten
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type RestoreStatsEntry struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
PagesCompared *uint64 `protobuf:"varint,1,req,name=pages_compared,json=pagesCompared" json:"pages_compared,omitempty"`
|
||||||
|
PagesSkippedCow *uint64 `protobuf:"varint,2,req,name=pages_skipped_cow,json=pagesSkippedCow" json:"pages_skipped_cow,omitempty"`
|
||||||
|
ForkingTime *uint32 `protobuf:"varint,3,req,name=forking_time,json=forkingTime" json:"forking_time,omitempty"`
|
||||||
|
RestoreTime *uint32 `protobuf:"varint,4,req,name=restore_time,json=restoreTime" json:"restore_time,omitempty"`
|
||||||
|
PagesRestored *uint64 `protobuf:"varint,5,opt,name=pages_restored,json=pagesRestored" json:"pages_restored,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RestoreStatsEntry) Reset() {
|
||||||
|
*x = RestoreStatsEntry{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_stats_stats_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RestoreStatsEntry) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*RestoreStatsEntry) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *RestoreStatsEntry) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_stats_stats_proto_msgTypes[1]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use RestoreStatsEntry.ProtoReflect.Descriptor instead.
|
||||||
|
func (*RestoreStatsEntry) Descriptor() ([]byte, []int) {
|
||||||
|
return file_stats_stats_proto_rawDescGZIP(), []int{1}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RestoreStatsEntry) GetPagesCompared() uint64 {
|
||||||
|
if x != nil && x.PagesCompared != nil {
|
||||||
|
return *x.PagesCompared
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RestoreStatsEntry) GetPagesSkippedCow() uint64 {
|
||||||
|
if x != nil && x.PagesSkippedCow != nil {
|
||||||
|
return *x.PagesSkippedCow
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RestoreStatsEntry) GetForkingTime() uint32 {
|
||||||
|
if x != nil && x.ForkingTime != nil {
|
||||||
|
return *x.ForkingTime
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RestoreStatsEntry) GetRestoreTime() uint32 {
|
||||||
|
if x != nil && x.RestoreTime != nil {
|
||||||
|
return *x.RestoreTime
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *RestoreStatsEntry) GetPagesRestored() uint64 {
|
||||||
|
if x != nil && x.PagesRestored != nil {
|
||||||
|
return *x.PagesRestored
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type StatsEntry struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Dump *DumpStatsEntry `protobuf:"bytes,1,opt,name=dump" json:"dump,omitempty"`
|
||||||
|
Restore *RestoreStatsEntry `protobuf:"bytes,2,opt,name=restore" json:"restore,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StatsEntry) Reset() {
|
||||||
|
*x = StatsEntry{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_stats_stats_proto_msgTypes[2]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StatsEntry) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*StatsEntry) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *StatsEntry) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_stats_stats_proto_msgTypes[2]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use StatsEntry.ProtoReflect.Descriptor instead.
|
||||||
|
func (*StatsEntry) Descriptor() ([]byte, []int) {
|
||||||
|
return file_stats_stats_proto_rawDescGZIP(), []int{2}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StatsEntry) GetDump() *DumpStatsEntry {
|
||||||
|
if x != nil {
|
||||||
|
return x.Dump
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *StatsEntry) GetRestore() *RestoreStatsEntry {
|
||||||
|
if x != nil {
|
||||||
|
return x.Restore
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_stats_stats_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
var file_stats_stats_proto_rawDesc = []byte{
|
||||||
|
0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x70, 0x72,
|
||||||
|
0x6f, 0x74, 0x6f, 0x22, 0xad, 0x04, 0x0a, 0x10, 0x64, 0x75, 0x6d, 0x70, 0x5f, 0x73, 0x74, 0x61,
|
||||||
|
0x74, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x65, 0x65,
|
||||||
|
0x7a, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0d, 0x52,
|
||||||
|
0x0c, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a,
|
||||||
|
0x0b, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x02,
|
||||||
|
0x28, 0x0d, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21,
|
||||||
|
0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x64, 0x75, 0x6d, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03,
|
||||||
|
0x20, 0x02, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x64, 0x75, 0x6d, 0x70, 0x54, 0x69, 0x6d,
|
||||||
|
0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69,
|
||||||
|
0x6d, 0x65, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x77, 0x72, 0x69,
|
||||||
|
0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x67, 0x65, 0x73, 0x5f,
|
||||||
|
0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x05, 0x20, 0x02, 0x28, 0x04, 0x52, 0x0c, 0x70,
|
||||||
|
0x61, 0x67, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x70,
|
||||||
|
0x61, 0x67, 0x65, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x72,
|
||||||
|
0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x02, 0x28, 0x04, 0x52, 0x12, 0x70, 0x61, 0x67, 0x65, 0x73,
|
||||||
|
0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a,
|
||||||
|
0x0d, 0x70, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x07,
|
||||||
|
0x20, 0x02, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x61, 0x67, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74, 0x74,
|
||||||
|
0x65, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x72, 0x6d, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x73, 0x6f,
|
||||||
|
0x6c, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x69, 0x72, 0x6d, 0x61, 0x70,
|
||||||
|
0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x73,
|
||||||
|
0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x09, 0x20, 0x02, 0x28, 0x04, 0x52, 0x09, 0x70, 0x61, 0x67,
|
||||||
|
0x65, 0x73, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x70,
|
||||||
|
0x69, 0x70, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65,
|
||||||
|
0x50, 0x69, 0x70, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x69,
|
||||||
|
0x70, 0x65, 0x5f, 0x62, 0x75, 0x66, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70,
|
||||||
|
0x61, 0x67, 0x65, 0x50, 0x69, 0x70, 0x65, 0x42, 0x75, 0x66, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73,
|
||||||
|
0x68, 0x70, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0c,
|
||||||
|
0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x68, 0x70, 0x61, 0x67, 0x65, 0x73, 0x53, 0x63, 0x61,
|
||||||
|
0x6e, 0x6e, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x68, 0x70, 0x61, 0x67, 0x65, 0x73, 0x5f,
|
||||||
|
0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x0d,
|
||||||
|
0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x73, 0x68, 0x70, 0x61, 0x67, 0x65, 0x73, 0x53, 0x6b, 0x69,
|
||||||
|
0x70, 0x70, 0x65, 0x64, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x68,
|
||||||
|
0x70, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x0e, 0x20,
|
||||||
|
0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x68, 0x70, 0x61, 0x67, 0x65, 0x73, 0x57, 0x72, 0x69, 0x74,
|
||||||
|
0x74, 0x65, 0x6e, 0x22, 0xd5, 0x01, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f,
|
||||||
|
0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x70,
|
||||||
|
0x61, 0x67, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20,
|
||||||
|
0x02, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x61, 0x67, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72,
|
||||||
|
0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70,
|
||||||
|
0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x02, 0x28, 0x04, 0x52, 0x0f, 0x70,
|
||||||
|
0x61, 0x67, 0x65, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x77, 0x12, 0x21,
|
||||||
|
0x0a, 0x0c, 0x66, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03,
|
||||||
|
0x20, 0x02, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d,
|
||||||
|
0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d,
|
||||||
|
0x65, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65,
|
||||||
|
0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x67, 0x65, 0x73, 0x5f, 0x72, 0x65,
|
||||||
|
0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x61,
|
||||||
|
0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x22, 0x64, 0x0a, 0x0b, 0x73,
|
||||||
|
0x74, 0x61, 0x74, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x04, 0x64, 0x75,
|
||||||
|
0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x64, 0x75, 0x6d, 0x70, 0x5f,
|
||||||
|
0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x75, 0x6d,
|
||||||
|
0x70, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01,
|
||||||
|
0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61,
|
||||||
|
0x74, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72,
|
||||||
|
0x65,
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
file_stats_stats_proto_rawDescOnce sync.Once
|
||||||
|
file_stats_stats_proto_rawDescData = file_stats_stats_proto_rawDesc
|
||||||
|
)
|
||||||
|
|
||||||
|
func file_stats_stats_proto_rawDescGZIP() []byte {
|
||||||
|
file_stats_stats_proto_rawDescOnce.Do(func() {
|
||||||
|
file_stats_stats_proto_rawDescData = protoimpl.X.CompressGZIP(file_stats_stats_proto_rawDescData)
|
||||||
|
})
|
||||||
|
return file_stats_stats_proto_rawDescData
|
||||||
|
}
|
||||||
|
|
||||||
|
var file_stats_stats_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||||
|
var file_stats_stats_proto_goTypes = []interface{}{
|
||||||
|
(*DumpStatsEntry)(nil), // 0: dump_stats_entry
|
||||||
|
(*RestoreStatsEntry)(nil), // 1: restore_stats_entry
|
||||||
|
(*StatsEntry)(nil), // 2: stats_entry
|
||||||
|
}
|
||||||
|
var file_stats_stats_proto_depIdxs = []int32{
|
||||||
|
0, // 0: stats_entry.dump:type_name -> dump_stats_entry
|
||||||
|
1, // 1: stats_entry.restore:type_name -> restore_stats_entry
|
||||||
|
2, // [2:2] is the sub-list for method output_type
|
||||||
|
2, // [2:2] is the sub-list for method input_type
|
||||||
|
2, // [2:2] is the sub-list for extension type_name
|
||||||
|
2, // [2:2] is the sub-list for extension extendee
|
||||||
|
0, // [0:2] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_stats_stats_proto_init() }
|
||||||
|
func file_stats_stats_proto_init() {
|
||||||
|
if File_stats_stats_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !protoimpl.UnsafeEnabled {
|
||||||
|
file_stats_stats_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*DumpStatsEntry); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_stats_stats_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*RestoreStatsEntry); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
file_stats_stats_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*StatsEntry); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: file_stats_stats_proto_rawDesc,
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 3,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_stats_stats_proto_goTypes,
|
||||||
|
DependencyIndexes: file_stats_stats_proto_depIdxs,
|
||||||
|
MessageInfos: file_stats_stats_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_stats_stats_proto = out.File
|
||||||
|
file_stats_stats_proto_rawDesc = nil
|
||||||
|
file_stats_stats_proto_goTypes = nil
|
||||||
|
file_stats_stats_proto_depIdxs = nil
|
||||||
|
}
|
40
vendor/github.com/checkpoint-restore/go-criu/v5/stats/stats.proto
generated
vendored
Normal file
40
vendor/github.com/checkpoint-restore/go-criu/v5/stats/stats.proto
generated
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
syntax = "proto2";
|
||||||
|
|
||||||
|
// This one contains statistics about dump/restore process
|
||||||
|
message dump_stats_entry {
|
||||||
|
required uint32 freezing_time = 1;
|
||||||
|
required uint32 frozen_time = 2;
|
||||||
|
required uint32 memdump_time = 3;
|
||||||
|
required uint32 memwrite_time = 4;
|
||||||
|
|
||||||
|
required uint64 pages_scanned = 5;
|
||||||
|
required uint64 pages_skipped_parent = 6;
|
||||||
|
required uint64 pages_written = 7;
|
||||||
|
|
||||||
|
optional uint32 irmap_resolve = 8;
|
||||||
|
|
||||||
|
required uint64 pages_lazy = 9;
|
||||||
|
optional uint64 page_pipes = 10;
|
||||||
|
optional uint64 page_pipe_bufs = 11;
|
||||||
|
|
||||||
|
optional uint64 shpages_scanned = 12;
|
||||||
|
optional uint64 shpages_skipped_parent = 13;
|
||||||
|
optional uint64 shpages_written = 14;
|
||||||
|
}
|
||||||
|
|
||||||
|
message restore_stats_entry {
|
||||||
|
required uint64 pages_compared = 1;
|
||||||
|
required uint64 pages_skipped_cow = 2;
|
||||||
|
|
||||||
|
required uint32 forking_time = 3;
|
||||||
|
required uint32 restore_time = 4;
|
||||||
|
|
||||||
|
optional uint64 pages_restored = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message stats_entry {
|
||||||
|
optional dump_stats_entry dump = 1;
|
||||||
|
optional restore_stats_entry restore = 2;
|
||||||
|
}
|
6
vendor/github.com/checkpoint-restore/go-criu/v5/stats/types.go
generated
vendored
Normal file
6
vendor/github.com/checkpoint-restore/go-criu/v5/stats/types.go
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
package stats
|
||||||
|
|
||||||
|
const (
|
||||||
|
StatsDump = "stats-dump"
|
||||||
|
StatsRestore = "stats-restore"
|
||||||
|
)
|
54
vendor/github.com/checkpoint-restore/go-criu/v5/stats/utils.go
generated
vendored
Normal file
54
vendor/github.com/checkpoint-restore/go-criu/v5/stats/utils.go
generated
vendored
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
package stats
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/binary"
|
||||||
|
"errors"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
|
"github.com/checkpoint-restore/go-criu/v5/magic"
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
|
)
|
||||||
|
|
||||||
|
func readStatisticsFile(imgDir *os.File, fileName string) (*StatsEntry, error) {
|
||||||
|
buf, err := ioutil.ReadFile(filepath.Join(imgDir.Name(), fileName))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if binary.LittleEndian.Uint32(buf[magic.PrimaryMagicOffset:magic.SecondaryMagicOffset]) != magic.ImgServiceMagic {
|
||||||
|
return nil, errors.New("Primary magic not found")
|
||||||
|
}
|
||||||
|
|
||||||
|
if binary.LittleEndian.Uint32(buf[magic.SecondaryMagicOffset:magic.SizeOffset]) != magic.StatsMagic {
|
||||||
|
return nil, errors.New("Secondary magic not found")
|
||||||
|
}
|
||||||
|
|
||||||
|
payloadSize := binary.LittleEndian.Uint32(buf[magic.SizeOffset:magic.PayloadOffset])
|
||||||
|
|
||||||
|
st := &StatsEntry{}
|
||||||
|
if err := proto.Unmarshal(buf[magic.PayloadOffset:magic.PayloadOffset+payloadSize], st); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return st, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func CriuGetDumpStats(imgDir *os.File) (*DumpStatsEntry, error) {
|
||||||
|
st, err := readStatisticsFile(imgDir, StatsDump)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return st.GetDump(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func CriuGetRestoreStats(imgDir *os.File) (*RestoreStatsEntry, error) {
|
||||||
|
st, err := readStatisticsFile(imgDir, StatsRestore)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return st.GetRestore(), nil
|
||||||
|
}
|
3
vendor/google.golang.org/protobuf/encoding/prototext/decode.go
generated
vendored
3
vendor/google.golang.org/protobuf/encoding/prototext/decode.go
generated
vendored
@ -744,9 +744,6 @@ func (d decoder) skipValue() error {
|
|||||||
// Skip items. This will not validate whether skipped values are
|
// Skip items. This will not validate whether skipped values are
|
||||||
// of the same type or not, same behavior as C++
|
// of the same type or not, same behavior as C++
|
||||||
// TextFormat::Parser::AllowUnknownField(true) version 3.8.0.
|
// TextFormat::Parser::AllowUnknownField(true) version 3.8.0.
|
||||||
if err := d.skipValue(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
5
vendor/google.golang.org/protobuf/internal/encoding/text/encode.go
generated
vendored
5
vendor/google.golang.org/protobuf/internal/encoding/text/encode.go
generated
vendored
@ -263,3 +263,8 @@ func (e *Encoder) Snapshot() encoderState {
|
|||||||
func (e *Encoder) Reset(es encoderState) {
|
func (e *Encoder) Reset(es encoderState) {
|
||||||
e.encoderState = es
|
e.encoderState = es
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AppendString appends the escaped form of the input string to b.
|
||||||
|
func AppendString(b []byte, s string) []byte {
|
||||||
|
return appendString(b, s, false)
|
||||||
|
}
|
||||||
|
7
vendor/google.golang.org/protobuf/internal/impl/legacy_message.go
generated
vendored
7
vendor/google.golang.org/protobuf/internal/impl/legacy_message.go
generated
vendored
@ -440,6 +440,13 @@ func legacyMerge(in piface.MergeInput) piface.MergeOutput {
|
|||||||
if !ok {
|
if !ok {
|
||||||
return piface.MergeOutput{}
|
return piface.MergeOutput{}
|
||||||
}
|
}
|
||||||
|
if !in.Source.IsValid() {
|
||||||
|
// Legacy Marshal methods may not function on nil messages.
|
||||||
|
// Check for a typed nil source only after we confirm that
|
||||||
|
// legacy Marshal/Unmarshal methods are present, for
|
||||||
|
// consistency.
|
||||||
|
return piface.MergeOutput{Flags: piface.MergeComplete}
|
||||||
|
}
|
||||||
b, err := marshaler.Marshal()
|
b, err := marshaler.Marshal()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return piface.MergeOutput{}
|
return piface.MergeOutput{}
|
||||||
|
4
vendor/google.golang.org/protobuf/internal/version/version.go
generated
vendored
4
vendor/google.golang.org/protobuf/internal/version/version.go
generated
vendored
@ -52,8 +52,8 @@ import (
|
|||||||
// 10. Send out the CL for review and submit it.
|
// 10. Send out the CL for review and submit it.
|
||||||
const (
|
const (
|
||||||
Major = 1
|
Major = 1
|
||||||
Minor = 26
|
Minor = 27
|
||||||
Patch = 0
|
Patch = 1
|
||||||
PreRelease = ""
|
PreRelease = ""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
39
vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go
generated
vendored
39
vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go
generated
vendored
@ -94,7 +94,8 @@ type Files struct {
|
|||||||
// Note that enum values are in the top-level since that are in the same
|
// Note that enum values are in the top-level since that are in the same
|
||||||
// scope as the parent enum.
|
// scope as the parent enum.
|
||||||
descsByName map[protoreflect.FullName]interface{}
|
descsByName map[protoreflect.FullName]interface{}
|
||||||
filesByPath map[string]protoreflect.FileDescriptor
|
filesByPath map[string][]protoreflect.FileDescriptor
|
||||||
|
numFiles int
|
||||||
}
|
}
|
||||||
|
|
||||||
type packageDescriptor struct {
|
type packageDescriptor struct {
|
||||||
@ -117,18 +118,17 @@ func (r *Files) RegisterFile(file protoreflect.FileDescriptor) error {
|
|||||||
r.descsByName = map[protoreflect.FullName]interface{}{
|
r.descsByName = map[protoreflect.FullName]interface{}{
|
||||||
"": &packageDescriptor{},
|
"": &packageDescriptor{},
|
||||||
}
|
}
|
||||||
r.filesByPath = make(map[string]protoreflect.FileDescriptor)
|
r.filesByPath = make(map[string][]protoreflect.FileDescriptor)
|
||||||
}
|
}
|
||||||
path := file.Path()
|
path := file.Path()
|
||||||
if prev := r.filesByPath[path]; prev != nil {
|
if prev := r.filesByPath[path]; len(prev) > 0 {
|
||||||
r.checkGenProtoConflict(path)
|
r.checkGenProtoConflict(path)
|
||||||
err := errors.New("file %q is already registered", file.Path())
|
err := errors.New("file %q is already registered", file.Path())
|
||||||
err = amendErrorWithCaller(err, prev, file)
|
err = amendErrorWithCaller(err, prev[0], file)
|
||||||
if r == GlobalFiles && ignoreConflict(file, err) {
|
if !(r == GlobalFiles && ignoreConflict(file, err)) {
|
||||||
err = nil
|
|
||||||
}
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for name := file.Package(); name != ""; name = name.Parent() {
|
for name := file.Package(); name != ""; name = name.Parent() {
|
||||||
switch prev := r.descsByName[name]; prev.(type) {
|
switch prev := r.descsByName[name]; prev.(type) {
|
||||||
@ -168,7 +168,8 @@ func (r *Files) RegisterFile(file protoreflect.FileDescriptor) error {
|
|||||||
rangeTopLevelDescriptors(file, func(d protoreflect.Descriptor) {
|
rangeTopLevelDescriptors(file, func(d protoreflect.Descriptor) {
|
||||||
r.descsByName[d.FullName()] = d
|
r.descsByName[d.FullName()] = d
|
||||||
})
|
})
|
||||||
r.filesByPath[path] = file
|
r.filesByPath[path] = append(r.filesByPath[path], file)
|
||||||
|
r.numFiles++
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,6 +309,7 @@ func (s *nameSuffix) Pop() (name protoreflect.Name) {
|
|||||||
// FindFileByPath looks up a file by the path.
|
// FindFileByPath looks up a file by the path.
|
||||||
//
|
//
|
||||||
// This returns (nil, NotFound) if not found.
|
// This returns (nil, NotFound) if not found.
|
||||||
|
// This returns an error if multiple files have the same path.
|
||||||
func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) {
|
func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) {
|
||||||
if r == nil {
|
if r == nil {
|
||||||
return nil, NotFound
|
return nil, NotFound
|
||||||
@ -316,13 +318,19 @@ func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error)
|
|||||||
globalMutex.RLock()
|
globalMutex.RLock()
|
||||||
defer globalMutex.RUnlock()
|
defer globalMutex.RUnlock()
|
||||||
}
|
}
|
||||||
if fd, ok := r.filesByPath[path]; ok {
|
fds := r.filesByPath[path]
|
||||||
return fd, nil
|
switch len(fds) {
|
||||||
}
|
case 0:
|
||||||
return nil, NotFound
|
return nil, NotFound
|
||||||
|
case 1:
|
||||||
|
return fds[0], nil
|
||||||
|
default:
|
||||||
|
return nil, errors.New("multiple files named %q", path)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NumFiles reports the number of registered files.
|
// NumFiles reports the number of registered files,
|
||||||
|
// including duplicate files with the same name.
|
||||||
func (r *Files) NumFiles() int {
|
func (r *Files) NumFiles() int {
|
||||||
if r == nil {
|
if r == nil {
|
||||||
return 0
|
return 0
|
||||||
@ -331,10 +339,11 @@ func (r *Files) NumFiles() int {
|
|||||||
globalMutex.RLock()
|
globalMutex.RLock()
|
||||||
defer globalMutex.RUnlock()
|
defer globalMutex.RUnlock()
|
||||||
}
|
}
|
||||||
return len(r.filesByPath)
|
return r.numFiles
|
||||||
}
|
}
|
||||||
|
|
||||||
// RangeFiles iterates over all registered files while f returns true.
|
// RangeFiles iterates over all registered files while f returns true.
|
||||||
|
// If multiple files have the same name, RangeFiles iterates over all of them.
|
||||||
// The iteration order is undefined.
|
// The iteration order is undefined.
|
||||||
func (r *Files) RangeFiles(f func(protoreflect.FileDescriptor) bool) {
|
func (r *Files) RangeFiles(f func(protoreflect.FileDescriptor) bool) {
|
||||||
if r == nil {
|
if r == nil {
|
||||||
@ -344,12 +353,14 @@ func (r *Files) RangeFiles(f func(protoreflect.FileDescriptor) bool) {
|
|||||||
globalMutex.RLock()
|
globalMutex.RLock()
|
||||||
defer globalMutex.RUnlock()
|
defer globalMutex.RUnlock()
|
||||||
}
|
}
|
||||||
for _, file := range r.filesByPath {
|
for _, files := range r.filesByPath {
|
||||||
|
for _, file := range files {
|
||||||
if !f(file) {
|
if !f(file) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// NumFilesByPackage reports the number of registered files in a proto package.
|
// NumFilesByPackage reports the number of registered files in a proto package.
|
||||||
func (r *Files) NumFilesByPackage(name protoreflect.FullName) int {
|
func (r *Files) NumFilesByPackage(name protoreflect.FullName) int {
|
||||||
|
82
vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go
generated
vendored
82
vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go
generated
vendored
@ -43,7 +43,6 @@ package descriptorpb
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
protoiface "google.golang.org/protobuf/runtime/protoiface"
|
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
sync "sync"
|
sync "sync"
|
||||||
@ -829,15 +828,6 @@ func (*ExtensionRangeOptions) Descriptor() ([]byte, []int) {
|
|||||||
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3}
|
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3}
|
||||||
}
|
}
|
||||||
|
|
||||||
var extRange_ExtensionRangeOptions = []protoiface.ExtensionRangeV1{
|
|
||||||
{Start: 1000, End: 536870911},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use ExtensionRangeOptions.ProtoReflect.Descriptor.ExtensionRanges instead.
|
|
||||||
func (*ExtensionRangeOptions) ExtensionRangeArray() []protoiface.ExtensionRangeV1 {
|
|
||||||
return extRange_ExtensionRangeOptions
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption {
|
func (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.UninterpretedOption
|
return x.UninterpretedOption
|
||||||
@ -1520,15 +1510,6 @@ func (*FileOptions) Descriptor() ([]byte, []int) {
|
|||||||
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10}
|
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10}
|
||||||
}
|
}
|
||||||
|
|
||||||
var extRange_FileOptions = []protoiface.ExtensionRangeV1{
|
|
||||||
{Start: 1000, End: 536870911},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use FileOptions.ProtoReflect.Descriptor.ExtensionRanges instead.
|
|
||||||
func (*FileOptions) ExtensionRangeArray() []protoiface.ExtensionRangeV1 {
|
|
||||||
return extRange_FileOptions
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FileOptions) GetJavaPackage() string {
|
func (x *FileOptions) GetJavaPackage() string {
|
||||||
if x != nil && x.JavaPackage != nil {
|
if x != nil && x.JavaPackage != nil {
|
||||||
return *x.JavaPackage
|
return *x.JavaPackage
|
||||||
@ -1776,15 +1757,6 @@ func (*MessageOptions) Descriptor() ([]byte, []int) {
|
|||||||
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{11}
|
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{11}
|
||||||
}
|
}
|
||||||
|
|
||||||
var extRange_MessageOptions = []protoiface.ExtensionRangeV1{
|
|
||||||
{Start: 1000, End: 536870911},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use MessageOptions.ProtoReflect.Descriptor.ExtensionRanges instead.
|
|
||||||
func (*MessageOptions) ExtensionRangeArray() []protoiface.ExtensionRangeV1 {
|
|
||||||
return extRange_MessageOptions
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *MessageOptions) GetMessageSetWireFormat() bool {
|
func (x *MessageOptions) GetMessageSetWireFormat() bool {
|
||||||
if x != nil && x.MessageSetWireFormat != nil {
|
if x != nil && x.MessageSetWireFormat != nil {
|
||||||
return *x.MessageSetWireFormat
|
return *x.MessageSetWireFormat
|
||||||
@ -1930,15 +1902,6 @@ func (*FieldOptions) Descriptor() ([]byte, []int) {
|
|||||||
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12}
|
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12}
|
||||||
}
|
}
|
||||||
|
|
||||||
var extRange_FieldOptions = []protoiface.ExtensionRangeV1{
|
|
||||||
{Start: 1000, End: 536870911},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use FieldOptions.ProtoReflect.Descriptor.ExtensionRanges instead.
|
|
||||||
func (*FieldOptions) ExtensionRangeArray() []protoiface.ExtensionRangeV1 {
|
|
||||||
return extRange_FieldOptions
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *FieldOptions) GetCtype() FieldOptions_CType {
|
func (x *FieldOptions) GetCtype() FieldOptions_CType {
|
||||||
if x != nil && x.Ctype != nil {
|
if x != nil && x.Ctype != nil {
|
||||||
return *x.Ctype
|
return *x.Ctype
|
||||||
@ -2030,15 +1993,6 @@ func (*OneofOptions) Descriptor() ([]byte, []int) {
|
|||||||
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13}
|
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13}
|
||||||
}
|
}
|
||||||
|
|
||||||
var extRange_OneofOptions = []protoiface.ExtensionRangeV1{
|
|
||||||
{Start: 1000, End: 536870911},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use OneofOptions.ProtoReflect.Descriptor.ExtensionRanges instead.
|
|
||||||
func (*OneofOptions) ExtensionRangeArray() []protoiface.ExtensionRangeV1 {
|
|
||||||
return extRange_OneofOptions
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption {
|
func (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.UninterpretedOption
|
return x.UninterpretedOption
|
||||||
@ -2101,15 +2055,6 @@ func (*EnumOptions) Descriptor() ([]byte, []int) {
|
|||||||
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{14}
|
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{14}
|
||||||
}
|
}
|
||||||
|
|
||||||
var extRange_EnumOptions = []protoiface.ExtensionRangeV1{
|
|
||||||
{Start: 1000, End: 536870911},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use EnumOptions.ProtoReflect.Descriptor.ExtensionRanges instead.
|
|
||||||
func (*EnumOptions) ExtensionRangeArray() []protoiface.ExtensionRangeV1 {
|
|
||||||
return extRange_EnumOptions
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *EnumOptions) GetAllowAlias() bool {
|
func (x *EnumOptions) GetAllowAlias() bool {
|
||||||
if x != nil && x.AllowAlias != nil {
|
if x != nil && x.AllowAlias != nil {
|
||||||
return *x.AllowAlias
|
return *x.AllowAlias
|
||||||
@ -2183,15 +2128,6 @@ func (*EnumValueOptions) Descriptor() ([]byte, []int) {
|
|||||||
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{15}
|
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{15}
|
||||||
}
|
}
|
||||||
|
|
||||||
var extRange_EnumValueOptions = []protoiface.ExtensionRangeV1{
|
|
||||||
{Start: 1000, End: 536870911},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use EnumValueOptions.ProtoReflect.Descriptor.ExtensionRanges instead.
|
|
||||||
func (*EnumValueOptions) ExtensionRangeArray() []protoiface.ExtensionRangeV1 {
|
|
||||||
return extRange_EnumValueOptions
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *EnumValueOptions) GetDeprecated() bool {
|
func (x *EnumValueOptions) GetDeprecated() bool {
|
||||||
if x != nil && x.Deprecated != nil {
|
if x != nil && x.Deprecated != nil {
|
||||||
return *x.Deprecated
|
return *x.Deprecated
|
||||||
@ -2258,15 +2194,6 @@ func (*ServiceOptions) Descriptor() ([]byte, []int) {
|
|||||||
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16}
|
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16}
|
||||||
}
|
}
|
||||||
|
|
||||||
var extRange_ServiceOptions = []protoiface.ExtensionRangeV1{
|
|
||||||
{Start: 1000, End: 536870911},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use ServiceOptions.ProtoReflect.Descriptor.ExtensionRanges instead.
|
|
||||||
func (*ServiceOptions) ExtensionRangeArray() []protoiface.ExtensionRangeV1 {
|
|
||||||
return extRange_ServiceOptions
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ServiceOptions) GetDeprecated() bool {
|
func (x *ServiceOptions) GetDeprecated() bool {
|
||||||
if x != nil && x.Deprecated != nil {
|
if x != nil && x.Deprecated != nil {
|
||||||
return *x.Deprecated
|
return *x.Deprecated
|
||||||
@ -2335,15 +2262,6 @@ func (*MethodOptions) Descriptor() ([]byte, []int) {
|
|||||||
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17}
|
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17}
|
||||||
}
|
}
|
||||||
|
|
||||||
var extRange_MethodOptions = []protoiface.ExtensionRangeV1{
|
|
||||||
{Start: 1000, End: 536870911},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use MethodOptions.ProtoReflect.Descriptor.ExtensionRanges instead.
|
|
||||||
func (*MethodOptions) ExtensionRangeArray() []protoiface.ExtensionRangeV1 {
|
|
||||||
return extRange_MethodOptions
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *MethodOptions) GetDeprecated() bool {
|
func (x *MethodOptions) GetDeprecated() bool {
|
||||||
if x != nil && x.Deprecated != nil {
|
if x != nil && x.Deprecated != nil {
|
||||||
return *x.Deprecated
|
return *x.Deprecated
|
||||||
|
6
vendor/modules.txt
vendored
6
vendor/modules.txt
vendored
@ -45,9 +45,11 @@ github.com/buger/goterm
|
|||||||
github.com/cespare/xxhash/v2
|
github.com/cespare/xxhash/v2
|
||||||
# github.com/checkpoint-restore/checkpointctl v0.0.0-20210922093614-c31748bec9f2
|
# github.com/checkpoint-restore/checkpointctl v0.0.0-20210922093614-c31748bec9f2
|
||||||
github.com/checkpoint-restore/checkpointctl/lib
|
github.com/checkpoint-restore/checkpointctl/lib
|
||||||
# github.com/checkpoint-restore/go-criu/v5 v5.1.0
|
# github.com/checkpoint-restore/go-criu/v5 v5.2.0
|
||||||
github.com/checkpoint-restore/go-criu/v5
|
github.com/checkpoint-restore/go-criu/v5
|
||||||
|
github.com/checkpoint-restore/go-criu/v5/magic
|
||||||
github.com/checkpoint-restore/go-criu/v5/rpc
|
github.com/checkpoint-restore/go-criu/v5/rpc
|
||||||
|
github.com/checkpoint-restore/go-criu/v5/stats
|
||||||
# github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e
|
# github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e
|
||||||
github.com/chzyer/readline
|
github.com/chzyer/readline
|
||||||
# github.com/container-orchestrated-devices/container-device-interface v0.0.0-20210325223243-f99e8b6c10b9
|
# github.com/container-orchestrated-devices/container-device-interface v0.0.0-20210325223243-f99e8b6c10b9
|
||||||
@ -754,7 +756,7 @@ google.golang.org/grpc/serviceconfig
|
|||||||
google.golang.org/grpc/stats
|
google.golang.org/grpc/stats
|
||||||
google.golang.org/grpc/status
|
google.golang.org/grpc/status
|
||||||
google.golang.org/grpc/tap
|
google.golang.org/grpc/tap
|
||||||
# google.golang.org/protobuf v1.26.0
|
# google.golang.org/protobuf v1.27.1
|
||||||
google.golang.org/protobuf/encoding/prototext
|
google.golang.org/protobuf/encoding/prototext
|
||||||
google.golang.org/protobuf/encoding/protowire
|
google.golang.org/protobuf/encoding/protowire
|
||||||
google.golang.org/protobuf/internal/descfmt
|
google.golang.org/protobuf/internal/descfmt
|
||||||
|
Reference in New Issue
Block a user