Commit Graph

48 Commits

Author SHA1 Message Date
Michael Pratt 56cb004218 Migrate from gflags to absl flags
absl flags are more modern and we can easily depend on them directly.

The repo now successfully builds with --incompatible_load_cc_rules_from_bzl.

PiperOrigin-RevId: 269387081
2019-09-16 11:58:27 -07:00
Nicolas Lacasse e2528cae76 Bump bazel toolchain.
This fixes the RBE warning:
DEBUG: rbe_default not using checked in configs; Bazel version 0.29.1 was
picked/selected but no checked in config was found in map[...]
PiperOrigin-RevId: 268747944
2019-09-12 13:04:50 -07:00
Nicolas Lacasse f52dd451ed Bump bazel, rules_go, gazelle, and go toolchain to latest versions.
PiperOrigin-RevId: 268486127
2019-09-11 10:19:50 -07:00
Michael Pratt 98f7fbb59f Load C++ rules from @rules_cc
See https://github.com/bazelbuild/bazel/issues/8743. This will be required in
Bazel 1.0.

Protobuf was updated in
bf0c69e130 (diff-96239ee297e0a92ac6ff96a6bc434ef0).

GoogleTest was updated in
6fd262ecf7.

gflags has not yet been updated, so the repo still won't build with
--incompatible_load_cc_rules_from_bzl.

Tested with buildifier -warnings=native-cc -lint=warn **/BUILD.

PiperOrigin-RevId: 267638515
2019-09-06 11:29:00 -07:00
Adin Scannell 888e87909e Add C++ toolchain and fix compile issues.
This was accidentally introduced in 31f05d5d4f.

Fixes #788.

PiperOrigin-RevId: 266462843
2019-08-30 15:03:15 -07:00
gVisor bot 31f05d5d4f Internal change.
PiperOrigin-RevId: 266199211
2019-08-29 14:01:47 -07:00
Nicolas Lacasse d60d99cb61 Bump rules_go to v0.19.3 and bazel_gazelle to v0.18.1.
And bump go toolchain to v1.12.9.

Protobuf dependencies must be explicitly included now.

PiperOrigin-RevId: 263853370
2019-08-16 15:02:11 -07:00
Nicolas Lacasse fa3d0e6f63 Bump Bazel to v0.28.0
The new version has a change in behavior when using a custom platform:
* Old behavior: rules that don't require a toolchain used host_platform, no
  matter what execution platforms are specified.
* New behavior: rules that don't require a toolchain use standard platform
  resolution that starts with execution platforms.

As part of this change, we cannot use the "extra_exectution_platforms" flag
provided by the default bazelrc. I got rid of the default bazelrc file, and
made our custom .bazelrc as minimal as possible.

PiperOrigin-RevId: 263176802
2019-08-13 11:21:55 -07:00
Nicolas Lacasse 5fdb945a0d Rate limit the unimplemented syscall event handler.
This introduces two new types of Emitters:
1. MultiEmitter, which will forward events to other registered Emitters, and
2. RateLimitedEmitter, which will forward events to a wrapped Emitter, subject
	to given rate limits.

The methods in the eventchannel package itself act like a multiEmitter, but is
not actually an Emitter. Now we have a DefaultEmitter, and the methods in
eventchannel simply forward calls to the DefaultEmitter.

The unimplemented syscall handler now uses a RateLimetedEmitter that wraps the
DefaultEmitter.

PiperOrigin-RevId: 260612770
2019-07-29 17:12:50 -07:00
Nicolas Lacasse 07bb86080f Bump rules_go to v0.18.7 and go toolchain to v1.12.7.
PiperOrigin-RevId: 257703164
2019-07-11 16:20:43 -07:00
Adin Scannell dea3cb92f2 build: add nogo for static validation
PiperOrigin-RevId: 257297820
2019-07-09 16:44:06 -07:00
Nicolas Lacasse 94ab253d7e Bump rules_go to v0.18.6, and go toolchain to v1.12.6.
PiperOrigin-RevId: 253061432
2019-06-13 10:47:29 -07:00
Ian Lewis 74e397e39a Add introspection for Linux/AMD64 syscalls
Adds simple introspection for syscall compatibility information to Linux/AMD64.
Syscalls registered in the syscall table now have associated metadata like
name, support level, notes, and URLs to relevant issues.

Syscall information can be exported as a table, JSON, or CSV using the new
'runsc help syscalls' command. Users can use this info to debug and get info
on the compatibility of the version of runsc they are running or to generate
documentation.

PiperOrigin-RevId: 252558304
2019-06-10 23:38:36 -07:00
Nicolas Lacasse 3b950344b3 Bump googletest version.
PiperOrigin-RevId: 251716439
2019-06-05 14:17:22 -07:00
Adin Scannell f520d0d585 Resolve impossible dependencies.
PiperOrigin-RevId: 251377523
2019-06-03 23:00:40 -07:00
Adin Scannell 216da0b733 Add tooling for Go-compatible branch.
The WORKSPACE go_repositories can be generated from a standard go.mod file. Add
the necessary gazelle hooks to do so, and include a test that sanity checks
there are no changes. This go.mod file will be used in a subsequent commit to
generate a go gettable branch of the repository.

This commit also adds a tools/go_branch.sh script, which given an existing go
branch in the repository, will add an additional synthetic change to the branch
bringing it up-to-date with HEAD.

As a final step, a cloudbuild script is included, which can be used to automate
the process for every change pushed to the repository. This may be used after
an initial go branch is pushed, but this is manual process.

PiperOrigin-RevId: 251095016
2019-06-01 23:10:43 -07:00
Nicolas Lacasse 114bb3a234 Bump rules_go to 0.18.5 and go tool chain to 1.12.5.
PiperOrigin-RevId: 248719758
Change-Id: I0a87d8befd56c5a791585818e9b84ac0c443b0df
2019-05-17 07:57:23 -07:00
Tamir Duberstein 59442238d4 Remove syscall tests' dependency on glog
PiperOrigin-RevId: 245469859
Change-Id: I0610e477cc3a884275852e83028ecfb501f2c039
2019-04-26 12:47:46 -07:00
Nicolas Lacasse fbe7ba4661 Bump rules_go to v0.18.2 and go toolchain to v1.12.2.
PiperOrigin-RevId: 242493066
Change-Id: I2b2b590799d208895c5c16606e4f854dfd112dba
2019-04-08 10:51:18 -07:00
Nicolas Lacasse f44f2f73b0 Make it easier for humans to use RBE, and maintain our bazelrc.
This CL merges all RBE-specific configuration from .bazelrc_rbe into .bazelrc
so that it will be picked up by default by users running bazel.

It also checks in a bazelrc from the upstream bazel-toolchains repository, and
imports that into our repo-specific .bazelrc. This makes it easier to maintain
and update the bazelrc going forward.

Documentation was added to the README.

PiperOrigin-RevId: 242208733
Change-Id: Iea32de9be85b024bd74f88909b56b2a8ab34851a
2019-04-05 15:48:32 -07:00
Adin Scannell e9508967b0 Format workspace
Change-Id: Ibb77656c46942eb123cd6cff8b471a526468d2dd
PiperOrigin-RevId: 242007583
2019-04-04 14:23:32 -07:00
Andrei Vagin a046054ba3 gvisor/runsc: enable generic segmentation offload (GSO)
The linux packet socket can handle GSO packets, so we can segment packets to
64K instead of the MTU which is usually 1500.

Here are numbers for the nginx-1m test:
runsc:		579330.01 [Kbytes/sec] received
runsc-gso:	1794121.66 [Kbytes/sec] received
runc:		2122139.06 [Kbytes/sec] received

and for tcp_benchmark:

$ tcp_benchmark  --duration 15   --ideal
[  4]  0.0-15.0 sec  86647 MBytes  48456 Mbits/sec

$ tcp_benchmark --client --duration 15   --ideal
[  4]  0.0-15.0 sec  2173 MBytes  1214 Mbits/sec

$ tcp_benchmark --client --duration 15   --ideal --gso 65536
[  4]  0.0-15.0 sec  19357 MBytes  10825 Mbits/sec

PiperOrigin-RevId: 241072403
Change-Id: I20b03063a1a6649362b43609cbbc9b59be06e6d5
2019-03-29 16:27:38 -07:00
Andrei Vagin 79aca14a0c Use toolchain configs from bazel_0.23.0
bazel 0.24.0 isn't compatible with bazel_0.20.0 configs:
(10:32:27) ERROR:
bazel_toolchains/configs/ubuntu16_04_clang/1.1/bazel_0.20.0/default/BUILD:57:1:
no such attribute 'dynamic_runtime_libs' in 'cc_toolchain' rule

PiperOrigin-RevId: 240436868
Change-Id: Iee68c9b79d907ca2bdd124386aaa77c786e089ce
2019-03-26 15:10:49 -07:00
Nicolas Lacasse 6bece16b88 Bump rules_go to v0.18.1 and go toolchain to v1.12.1.
PiperOrigin-RevId: 238704915
Change-Id: I9f38162b27b4f401446593865bb857eb280ae426
2019-03-15 13:58:19 -07:00
Nicolas Lacasse 662da3350c Bump rules_go to v0.18.0
PiperOrigin-RevId: 236745227
Change-Id: Icddfdebe1f6c56bb95a7839b48773fca6794bad8
2019-03-04 16:13:03 -08:00
Michael Pratt f7df9d72cf Upgrade to Go 1.12
PiperOrigin-RevId: 236218980
Change-Id: I82cb4aeb2a56524ee1324bfea2ad41dce26db354
2019-02-28 16:26:14 -08:00
Nicolas Lacasse 53afa68988 Bump rules_go to v0.17.0, and go toolchain to v1.11.5.
PiperOrigin-RevId: 231506385
Change-Id: I739ca24a152b32130ab4c6cdd200242d2fb37e31
2019-01-29 17:32:20 -08:00
Nicolas Lacasse 7a3b4b7bdd Configure Kokoro build with RBE.
PiperOrigin-RevId: 226552586
Change-Id: I078502d46e2e4a8252ef0477309af8d3ffbbf88d
2018-12-21 15:42:59 -08:00
Michael Pratt 5c7f70a07d Update rules_go, gazelle, and Go
PiperOrigin-RevId: 226511383
Change-Id: I3a42572d44582d5713841799ec1fd9695d050938
2018-12-21 10:48:56 -08:00
Nicolas Lacasse 5301cbf843 Bump rules_go to v0.16.4 and go toolchain to v1.11.3.
PiperOrigin-RevId: 225465835
Change-Id: Iee467e493e5df0a9e149b131f54b0af84d221051
2018-12-13 17:37:55 -08:00
Nicolas Lacasse 7fa5179cbc Bump glog version.
PiperOrigin-RevId: 224551278
Change-Id: I76c537075ae291647d9e3e597ca1bd2477c9ce8d
2018-12-07 11:42:24 -08:00
Nicolas Lacasse edbd8a86d2 Explicitly load "http_archive" in WORKSPACE.
Fixes this error in bazel:

	The native http_archive rule is deprecated.
	load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") for a
	drop-in replacement.

PiperOrigin-RevId: 223595891
Change-Id: I4706dc5b92970e00b673d22edea82fa45d854f07
2018-11-30 16:41:08 -08:00
Bhasker Hariharan 33089561b1 Add an implementation of a SACK scoreboard as per RFC6675.
PiperOrigin-RevId: 220866996
Change-Id: I89d48215df57c00d6a6ec512fc18712a2ea9080b
2018-11-09 14:38:46 -08:00
Nicolas Lacasse 4af791f87c Bump rules_go to v0.16.1 and go toolchain to v1.11.2.
PiperOrigin-RevId: 220492705
Change-Id: I6b7bc11acd5d407982e0038e7f0762975a56f4d4
2018-11-07 11:00:21 -08:00
Brian Geffon 422863373f Add copybara rules to export C++ test code.
PiperOrigin-RevId: 219166541
Change-Id: Ieebadaed4096eb48f00fba663e1c76fb41438078
2018-10-29 11:55:27 -07:00
Adin Scannell 75cd70ecc9 Track paths and provide a rename hook.
This change also adds extensive testing to the p9 package via mocks. The sanity
checks and type checks are moved from the gofer into the core package, where
they can be more easily validated.

PiperOrigin-RevId: 218296768
Change-Id: I4fc3c326e7bf1e0e140a454cbacbcc6fd617ab55
2018-10-23 00:20:15 -07:00
Nicolas Lacasse fb46292778 Bump rules_go and gazelle versions.
PiperOrigin-RevId: 217526027
Change-Id: I21261f5172d8eb50820f1e9f1624d24603089f12
2018-10-17 08:55:41 -07:00
Nicolas Lacasse e98b14b4aa Bump rules_go to v0.15.4 and go toolchain to v1.11.1.
PiperOrigin-RevId: 215664253
Change-Id: Ice2500e669194630c9d03903c35622afb92dcba5
2018-10-03 18:16:43 -07:00
Nicolas Lacasse b4321f4447 runsc: Synchronize container metadata changes with a file lock.
Each container has associated metadata (particularly the container status) that
is manipulated by various runsc commands. This metadata is stored in a file
identified by the container id.

Different runsc processes may manipulate the same container metadata, and each
will read/write to the metadata file.

This CL adds a file lock per container which must be held when reading the
container metadata file, and when modifying and writing the container metadata.

PiperOrigin-RevId: 214019179
Change-Id: Ice4390ad233bc7f216c9a9a6cf05fb456c9ec0ad
2018-09-21 11:42:06 -07:00
Fabricio Voznika b873e388f3 Update gocapability commit to get bug fix
PiperOrigin-RevId: 213734203
Change-Id: I9cf5d3885fb88b41444c686168d4cab00f09988a
2018-09-19 18:17:14 -07:00
Michael Pratt 25a8e13a78 Bump to Go 1.11
The procid offset is unchanged.

PiperOrigin-RevId: 210551969
Change-Id: I33ba1ce56c2f5631b712417d870aa65ef24e6022
2018-08-28 09:22:41 -07:00
Michael Pratt 9144ddda09 Bump rules_go and gazelle to 0.14.0
PiperOrigin-RevId: 207977844
Change-Id: I980c1ad76339e9e4e8ea6d58c1caf5245befa18a
2018-08-08 18:07:41 -07:00
Nicolas Lacasse 6d7199bcff Add "github.com/cenkalti/backoff" dependency to WORKSPACE file.
PiperOrigin-RevId: 206193369
Change-Id: I70b67848f498f48c3ff809b60dd08b67001c9324
2018-07-26 11:37:31 -07:00
Nicolas Lacasse b363799bd8 Bump rules_go to v0.13.0, and go toolchain to 1.10.3
PiperOrigin-RevId: 204321643
Change-Id: Id52f9cb5aa12c0859ca6fc8012d7f20744773b88
2018-07-12 10:27:01 -07:00
Nicolas Lacasse e2720f91dc Put the http dependencies first in the WORKSPACE file.
PiperOrigin-RevId: 196131690
Change-Id: I3a4eec0dcca654380ea229e3ae388ca416200110
2018-05-10 10:07:14 -07:00
Nicolas Lacasse 0ca020dcb3 Use the go_repository rule from the Gazelle repo.
The one from rules_go is being deprecated.

PiperOrigin-RevId: 196128132
Change-Id: I7a4ab32696a1bcd221b0585b7a4e8109462a3609
2018-05-10 09:41:58 -07:00
Nicolas Lacasse d8c758cb15 Bump Bazel rules_go to v0.12.0, and Go toolchain to v1.10.2
PiperOrigin-RevId: 195866234
Change-Id: I81404d44a45b41c6cb81f83bd7b7a8d8493f5c98
2018-05-08 13:25:40 -07:00
Googler d02b74a5dc Check in gVisor.
PiperOrigin-RevId: 194583126
Change-Id: Ica1d8821a90f74e7e745962d71801c598c652463
2018-04-28 01:44:26 -04:00