Commit graph

141 commits

Author SHA1 Message Date
Ryan Newton
d3f1af59a9 tweak timer lib to suppport new processor type
Summary: This is to enable development on my Alder Lake Fedora laptop.

Reviewed By: jasonwhite

Differential Revision: D37300482

fbshipit-source-id: cf881caa854ca4f8ab84b23454faa5dba0445e8a
2022-06-22 07:15:17 -07:00
Igor Sugak
53c3abb5da update goblin to 0.5.2
Summary: As titled.

Reviewed By: dtolnay

Differential Revision: D37300975

fbshipit-source-id: bdc6c97735c19ab789af902bfa2244e0f06c9440
2022-06-21 08:14:33 -07:00
Ryan Newton
a11fa11768 switch tests to only log reverie messages
Summary:
Right now we get a whole bunch of annoying messages from tokio that spam our test logs:

    2022-06-10T15:09:59.751928Z TRACE runtime.spawn{kind=block_on task.name= loc.file="hermetic_infra/reverie/reverie-ptrace/src/testing.rs" loc.line=58 loc.col=8}:runtime.spawn{kind=local task.name= loc.file="third-party/rust/vendor/tokio-1.15.0/src/task/local.rs" loc.line=302 loc.col=22}: tokio::task::waker: op="waker.drop" task.id=26

This diff makes the filter more restrictive for reverie tests.

Reviewed By: johnhurt

Differential Revision: D37071398

fbshipit-source-id: fe93ec3cc0cf61938be10d40df6fe2f46979fbf9
2022-06-10 09:06:33 -07:00
David Tolnay
3ca948fc77 third-party/rust: Update async-trait from 0.1.52 to 0.1.56
Summary:
Release notes:

- https://github.com/dtolnay/async-trait/releases/tag/0.1.53 (improved error messages)
- https://github.com/dtolnay/async-trait/releases/tag/0.1.54 (`impl Trait` support)
- https://github.com/dtolnay/async-trait/releases/tag/0.1.55 (compatibility with 2021 edition closure capture rules)
- https://github.com/dtolnay/async-trait/releases/tag/0.1.56 (more `impl Trait` work)

Reviewed By: zertosh

Differential Revision: D36881793

fbshipit-source-id: ce9b86693dd18efa6884d29419970b41ebff5447
2022-06-02 17:05:05 -07:00
Jason White
20c7020868 Appease the copyright linter
Summary: The OSS license linter doesn't like the word "its".

Reviewed By: johnhurt

Differential Revision: D36856385

fbshipit-source-id: 909037d96de8976f08004497d28b77838f8c6870
2022-06-02 11:51:06 -07:00
Jason White
d16ca7d7c0 Change Facebook -> Meta Platforms in Cargo.toml files
Reviewed By: johnhurt

Differential Revision: D36727976

fbshipit-source-id: 0449545ee3fb2faf4febcdec0be1d5940af5e937
2022-05-27 10:20:35 -07:00
Jason White
1bbfa8a5a2 Update copyright headers
Reviewed By: johnhurt

Differential Revision: D36727878

fbshipit-source-id: 2529052f6a81fb5a177ccdba51b7e0051577c148
2022-05-27 09:51:26 -07:00
Anastasios Andronidis
1aac7d0ad2 Get guest registers
Reviewed By: jasonwhite

Differential Revision: D36315857

fbshipit-source-id: bd00a87fea9b17a28d5afc438d640f2b68bd5975
2022-05-11 09:05:58 -07:00
CodemodService Bot
9899fe55c4 Daily common/rust/cargo_from_buck/bin/autocargo
Reviewed By: Croohand

Differential Revision: D36239957

fbshipit-source-id: 3f4cb4b55927f437e95dfd2d2563fdbafbeb2988
2022-05-09 04:05:21 -07:00
Jason White
f507b56319 third-party/rust: Update syscalls crate to v0.5.0
Summary:
See https://github.com/jasonwhite/syscalls/blob/master/CHANGELOG.md

The biggest change here is that the type of syscall registers and return values was changed from `u64` to `usize` (to support 32-bit architectures).

Reviewed By: zertosh

Differential Revision: D36157822

fbshipit-source-id: d8776b6809dd00df93b147ee34deb37df61a2675
2022-05-05 13:15:19 -07:00
Ryan Newton
05446620a2 minor compiler warning
Summary: Just another simple compiler warning fix.

Reviewed By: jasonwhite

Differential Revision: D35966952

fbshipit-source-id: 9656519ef0e0164cfda98326d0fa9b74e6a3f78d
2022-04-29 08:06:47 -07:00
Jason White
4d5c226d5a third-party/rust: Update tracing-subscriber from 0.3.10 to 0.3.11
Reviewed By: dtolnay

Differential Revision: D35956332

fbshipit-source-id: f92818417ec7ce6d655c171c180aac4696f84269
2022-04-27 19:09:17 -07:00
Ryan Newton
cdba957ddb just a minor lint
Summary: Fix compiler warning.

Reviewed By: jasonwhite

Differential Revision: D35905514

fbshipit-source-id: 5320c9cb543756ef68830b3e0a07c3284a67b693
2022-04-25 13:31:24 -07:00
Jason White
ab908fd184 third-party/rust: Update raw-cpuid to v10.
Summary: Updating raw-cpuid to get this fix: https://github.com/gz/rust-cpuid/issues/45

Reviewed By: dtolnay

Differential Revision: D35856229

fbshipit-source-id: 74e173e4db6d3e4270ce0993a5491adb2b776a1f
2022-04-22 18:48:48 -07:00
Ryan Newton
94cb7e879d minor: print args to syscall
Summary:
If we're going to print a trace message when we inject the syscall, we might as well show the raw args.

The specific use case I used this for was making sure when I am changing args between the Detcore and reverie layers, that they are changing in the expected way.  Detcore already prints log messages for the syscalls and arguments it receives from the guest.  This lets us see the actual arguments that are passed to the kernel.

Reviewed By: jasonwhite

Differential Revision: D35804814

fbshipit-source-id: 2fc5a1b526326b554d4f015bfd0cb41d0dfc4ab2
2022-04-22 13:14:18 -07:00
Jason White
7de9d81972 Fix PMU validation tests on GitHub's Ubuntu VM (#12)
Summary:
The Ubuntu VM that GitHub Actions uses doesn't seem to have permissions
to access the PMU. This exits the test successfully if it's not available.

Pull Request resolved: https://github.com/facebookexperimental/reverie/pull/12

Reviewed By: andronat

Differential Revision: D35838916

Pulled By: jasonwhite

fbshipit-source-id: 0e6cba4c170e3c7e293300e031ee41333c399040
2022-04-22 11:52:10 -07:00
Huapeng Zhou
e5f89a81e9 rust: update crossterm to 0.23.0 and arc-swap to 1.5.0
Summary:
Needed to import [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor).

(Note: this ignores all push blocking failures!)

Reviewed By: dtolnay

Differential Revision: D34434866

fbshipit-source-id: 69741b4ac767e0ab5ecc8307dd40267d9dcbf4ae
2022-04-12 23:50:06 -07:00
Jason White
f52262ef55 Fix some asm blocks
Reviewed By: andronat

Differential Revision: D35570647

fbshipit-source-id: 78dadc127ef2167d3c14cbe67fee853c7a51107a
2022-04-12 11:09:06 -07:00
Jason White
61c24a5a35 Support clock_getres as a vdso function
Summary: `clock_getres` is a vdso function in recent versions of glibc.

Reviewed By: andronat

Differential Revision: D35570102

fbshipit-source-id: d09850b4d1bec002af749452f80228e1542fafaa
2022-04-12 11:09:06 -07:00
Huapeng Zhou
f38f5c1cbc rust: update serde_json to 1.0.79 and serde to 1.0.136
Summary:
Needed to import [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor).

(Note: this ignores all push blocking failures!)

Reviewed By: dtolnay

Differential Revision: D34433589

fbshipit-source-id: f92ea3ba640d19f170513b558f3d5208790bab67
2022-04-10 23:39:55 -07:00
Andreas Backx
f9bb665df0 upgrade tracing-subscriber from 0.3.9 to 0.3.10
Summary: 0.3.10 adds a new EnvFilter builder that I would like to use. :)

Reviewed By: wqfish

Differential Revision: D35473723

fbshipit-source-id: df31dad09c8f8fc9c27a43c85b5d6ac8f97d69a3
2022-04-08 04:00:03 -07:00
Huapeng Zhou
0b18766e8d rust: update anyhow to 1.0.56
Summary:
Needed by cloud-hypervisor https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/Cargo.toml#L19.

(Note: this ignores all push blocking failures!)

Reviewed By: jsgf

Differential Revision: D34432496

fbshipit-source-id: deaa320c74a22e325a116bcc0d5b0120c4f3744b
2022-04-07 04:31:34 -07:00
Huapeng Zhou
413542a24f rust: update thiserror to 1.0.30
Summary: Needed to import [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/Cargo.toml#L31).

Reviewed By: dtolnay

Differential Revision: D34437972

fbshipit-source-id: 9f22bb1fde83308a319f40e138d9ab7f180c7fa0
2022-03-31 00:26:06 -07:00
David Tolnay
924aff3d5e Reformat with new rustfmt 4/7
Summary:
Generated by `tools/arcanist/lint/codemods/rustfmt-fbsource` with the rustfmt executable added by D35234535 (ce519e0af4).

drop-conflicts

Reviewed By: zertosh

Differential Revision: D35234536

fbshipit-source-id: 3e8b23b4abbb9bdd052d86dcd619f88bbcc5d454
2022-03-29 20:22:00 -07:00
Huapeng Zhou
7213f65761 rust: update libc from 0.2.117 to 0.2.121
Summary: Needed to import cloud-hypervisor https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/Cargo.toml#L25.

Reviewed By: dtolnay

Differential Revision: D35052728

fbshipit-source-id: bdd60925501c446ee6d429fad6e95d6593ff2544
2022-03-23 10:00:47 -07:00
Javier Honduvilla Coto
36515611d2 Bump nix crate from 0.22 => 0.23
Summary:
Updating to be able to use  `pwritev` and `preadv`.

- Followed [the documentation on how to update crates](https://www.internalfb.com/intern/wiki/Rust-at-facebook/Managing_fbsource_third-party_with_Reindeer/).
- These are all the changes between our current version and the updated one: https://github.com/nix-rust/nix/compare/v0.22.0..v0.23.1. See `CHANGELOG.md` for the most significant changes in this version.

Let me know if I missed anything, this is my first crate upgrade!

Reviewed By: jsgf

Differential Revision: D34820818

fbshipit-source-id: 89f59a759bf042112e7d48612a345a8164dc7176
2022-03-22 09:26:52 -07:00
David Barsky
7bfb3c0fe6 third-party: update tracing and related crates
Summary:
This diff does the following:
- Updates the tracing crates to the latest versions available. Changes include:
    - Experimental support for [Valuable](https://tokio.rs/blog/2021-05-valuable), which makes recording values much more like how serde does. Valuable also makes it easier to write a tracing-slog crate due to some implementation details of slog where buffering of values is necessary.
    - Combinators for combining filters in tracing-subscriber.
    - A `MakeWriter` implementation for `RollingFileAppender` in `tracing_appender`, which allows the `RollingFileAppender` without a background thread to being spun up.
    - Reduced the disabled span drop overhead by 50-70%—this might be most apparent in tests that don't set a subscriber.
- Move the tokio-console off git dependencies and to published versions on crates.io.

This diff also updates the following, non-exhaustive list of crates:
- parking_lot
- prost
- thread_local
- tonic
- hyper
- httparse
- h2

allow-large-files

Reviewed By: jsgf, fanzeyi

Differential Revision: D34801437

fbshipit-source-id: 2409de9194c8e00647ac5e4c514325fd2e23d247
2022-03-16 15:36:55 -07:00
CodemodService Bot
401e7f31ad Daily common/rust/cargo_from_buck/bin/autocargo
Reviewed By: krallin

Differential Revision: D34814289

fbshipit-source-id: bfff94231c3b3884537c4ea0b602d22eb916d4cb
2022-03-11 01:22:36 -08:00
Jason White
193965dfe5 Convert llvm_asm to asm
Summary:
The `llvm_asm` nightly feature was removed in Rust 1.59 and `asm!()` was simultaneously stabilized, so we need to make the switch so things continue compiling.

This retains the `llvm_asm` code so that it can continue compiling on old llvm versions. This will be removed when that is updated.

Reviewed By: johnhurt

Differential Revision: D34561246

fbshipit-source-id: 42cd2c7e83cea9a5c21bd5871463bb1a42be139d
2022-03-10 12:05:42 -08:00
Jason White
cd68557b4c Fix bug in check_for_xen_pmi_bug
Summary: The `count` wasn't getting initialized properly, so it was possible in theory that the check could have been failing. I noticed this while attempting to convert this chunk of `llvm_asm!()` to the new `asm!()` syntax. Also added documentation explaining what this code is doing because it's not easy to read.

Reviewed By: johnhurt

Differential Revision: D34542806

fbshipit-source-id: 0f79b9d36757756a1cf76e98830f9cc76f06336c
2022-03-01 15:50:23 -08:00
Kevin Guthrie
c2d7dc125f lowering the log level for spurious wakup messages
Summary: Quick fix to make remove the postential for warning messages to cause false determinism failures

Reviewed By: andronat

Differential Revision: D34243592

fbshipit-source-id: 30c025ad8c4921e9c15f72956937166bfaf5d598
2022-02-16 10:51:06 -08:00
Eddie Shen
3341465137 Command getter for TracerBuilder
Summary:
Adds a way to fetch the command provided to `TracerBuilder`.

We're running into a situation where we're constructing a TracerBuilder and using it much later, but we want to debug and print the command that we're tracing when we execute the traced program.

You can alternatively avoid this by storing the necessary info alongside in an adjacent struct, but it feels a little silly to have to carry around a separate struct just for debugging.

Reviewed By: jasonwhite

Differential Revision: D34231169

fbshipit-source-id: ef40cb396f5530ee1f4324694ce5d9122dfe281f
2022-02-14 18:20:14 -08:00
Andres Suarez
74cf894bea Update async-trait to 0.1.52
Summary:
Fixes some clippy issues:
685b68b090

Reviewed By: dtolnay

Differential Revision: D34100067

fbshipit-source-id: fa49e68645b6e99d87f92a7b9ac73ba5d567fa0b
2022-02-09 02:05:45 -08:00
Wez Furlong
12ad2e60f7 Back out "Bump parking-lot to version 0.12.0"
Summary:
Original commit changeset: ce571ef50289

Original Phabricator Diff: D33985872 (6dda2dafb9)

Reviewed By: dtolnay

Differential Revision: D34060091

fbshipit-source-id: c1ddcdd1848a51f83dcbc9b2eec5f316bb6e44e5
2022-02-08 11:37:29 -08:00
Mofei Zhang
6dda2dafb9 Bump parking-lot to version 0.12.0
Summary:
~~~Added new parking-lot version named parking_lot_0_12~~~
allow-large-files

previous versions of parking-lot are incompatible with wasm compilation targets

https://github.com/rustwasm/wasm-bindgen/issues/2160
https://github.com/Amanieu/parking_lot/pull/302

Reviewed By: dtolnay

Differential Revision: D33985872

fbshipit-source-id: ce571ef50289fe97ff89dbf72d2c7f39fbd47758
2022-02-07 05:21:03 -08:00
Kevin Guthrie
e5e0e2983d Adding retry handing for precise timers to account for anomalous wakeups
Summary: Something appears to be causing timer marker events to randomly be sent early or possibly multiple times. This commit adds some sanity check and retry handling to ensure that early wakeups do not impact the implementing tool or at least long runs of single steps (and thus the timeouts that originally sparked this investigation)

Reviewed By: jasonwhite

Differential Revision: D33828008

fbshipit-source-id: 008bf1793964053405643640155269603c4e6bcc
2022-02-04 13:47:53 -08:00
Kevin Guthrie
72b1376c6e Add check to catch PMU bugs
Summary: Mozilla-rr has a set of tests that it runs to determine if the host system's perf timers can be trusted. This diff transcribes that functionality (as close as possible) into reverie

Reviewed By: jasonwhite

Differential Revision: D33644553

fbshipit-source-id: 8ecd505bf339ceb4c8b2b8fea86a1f23b14a9b73
2022-01-26 05:22:32 -08:00
Andres Suarez
23b58143af Update tokio to 1.15
Reviewed By: Imxset21

Differential Revision: D33759920

fbshipit-source-id: 7fd02dc93a7c1c564454a1fece3ff4b12dba3d3e
2022-01-25 02:04:43 -08:00
Jason White
72ced7689b Give copyright attribution where needed (#10)
Summary:
Some code was derived from https://github.com/daniel5151/gdbstub. Although much of `gdbstub` has been rewritten for inclusion in Reverie, some parts still remain. This gives copyright attribution where it was missing. Fixes https://github.com/facebookexperimental/reverie/issues/9.

Pull Request resolved: https://github.com/facebookexperimental/reverie/pull/10

Reviewed By: asm89

Differential Revision: D33467315

Pulled By: jasonwhite

fbshipit-source-id: dc3b5391d02242adb9bd742b55369343dba43666
2022-01-07 12:09:23 -08:00
Jason White
256fc33dd5 Remove extern crate usage
Summary: This hasn't been necessary for quite a while now.

Reviewed By: wangbj

Differential Revision: D33411662

fbshipit-source-id: e6f88834521809b59323aa9d14796ff31571e7b6
2022-01-04 18:14:12 -08:00
facebook-github-bot
15d2f61411 Initial commit
fbshipit-source-id: c440d991296c92bdc5e109a11d269049e8840e94
2021-12-29 16:14:27 -08:00