<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in profiling_agent.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>1d1c06f3 - Add basic support for profiling Pulley (#10034)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs#1d1c06f3</link>
        <description>Add basic support for profiling Pulley (#10034)* Add basic support for profiling PulleyThis commit adds basic support for profiling the Pulley interpreter.This is partially achievable previously through the use of nativeprofilers, but the downside of that approach is that you can find hotinstructions but it&apos;s not clear in what context the hot instructions arebeing executed nor what functions are hot. The goal of this profiler isto show pulley bytecode and time spent in bytecode itself to betterunderstand the shape of code around a hot instruction to identify newmacro opcodes for example.The general structure of this new profiler is:* There is a compile-time feature for Pulley which is off-by-default  where, when enabled, Pulley will record its current program counter  into an `AtomicUsize` before each instruction.* When the CLI has `--profile pulley` Wasmtime will spawn a sampling  thread in the same process which will periodically read from this  `AtomicUsize` to record where the program is currently executing.* The Pulley profiler additionally records all bytecode through the use  of the `ProfilingAgent` trait to ensure that the recording has access  to all bytecode as well.* Samples are taken throughout the process and emitted to a  `pulley-$pid.data` file. This file is then interpreted and printed by  an &quot;example&quot; program `profiler-html.rs` in the `pulley/examples`  directory.The end result is that hot functions of Pulley bytecode can be seen andinstructions are annotated with how frequently they were executed. Thisenables finding hot loops and understanding more about the whole loop,bytecodes that were selected, and such.* Add missing source file* Check the profile-pulley feature in CI* Miscellaneous fixes for CI* Fix type-checking of `become` on nightly Rust* Fix more misc CI issues* Fix dispatch in tail loop* Update test expectations* Review comments* Fix a feature combo

            List of files:
            /wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs</description>
        <pubDate>Thu, 16 Jan 2025 22:49:36 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>e3aab7d5 - Some minor portability tweaks (#9538)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs#e3aab7d5</link>
        <description>Some minor portability tweaks (#9538)* Change vtune platforms to be opt-inPreviously integration with the `ittapi` crate and vtune profiling wasstatically enabled for all platforms with an explicit list of platformsthat did not support it. Instead of requiring platforms to indicate theydon&apos;t support it (as it&apos;s an optional feature) this instead invertsthings to instead explicitly list platforms that do support it. The hopeis that this helps to make porting a bit easier where manual work isonly needed to get vtune running on a new platform.* Add illumos to tier listings* Improve check we compile on FreeBSDThe crate should compile by default (ideally) and it does now so assertthis in CI.* Clarify x86_64 freebsd is a tier 3 target

            List of files:
            /wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs</description>
        <pubDate>Fri, 01 Nov 2024 17:19:17 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>fd384cbe - add experimental support for illumos (#9535)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs#fd384cbe</link>
        <description>add experimental support for illumos (#9535)With this change, the basic wasm tests all pass on illumos. Note the additionof NORESERVE to mmap calls.However:While wasmtime appears to be functional on illumos, it is still quite slow,particularly in the wast tests. For example, the following test:```cargo +beta test --test wast -- Cranelift/pooling/tests/spec_testsuite/load.wast```takes 0.07 seconds on Linux, but over 5 seconds on illumos. Some profilingsuggests that this is due to lock contention inside the kernel while freeingmemory, so I don&apos;t think this is a wasmtime issue. I&apos;d like to pull someillumos experts in to do some debugging here as time permits, but I don&apos;t thinkthis PR should necessarily be held up on that.Thanks to iximeow for all the help with this!(One note is that due to a [rustc segfault onillumos](https://sunshowers.io/posts/rustc-segfault-illumos/), buildingwasmtime requires Rust 1.83 or higher. I did my building and testing with`+beta`.)

            List of files:
            /wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs</description>
        <pubDate>Fri, 01 Nov 2024 01:16:59 +0000</pubDate>
        <dc:creator>Rain &lt;rain@sunshowers.io&gt;</dc:creator>
    </item>
<item>
        <title>b5e31a5c - Refactor internal profiling APIs to be safer (#8914)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs#b5e31a5c</link>
        <description>Refactor internal profiling APIs to be safer (#8914)Pass around `&amp;[u8]` instead of `*const u8` and `usize` to avoid the needfor raw unsafe abstractions.Closes #8905

            List of files:
            /wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs</description>
        <pubDate>Mon, 08 Jul 2024 18:53:16 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>1512a954 - Add `anyhow` stuff to our internal `wasmtime` crate prelude (#8804)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs#1512a954</link>
        <description>Add `anyhow` stuff to our internal `wasmtime` crate prelude (#8804)* Add `anyhow` stuff to our internal `wasmtime` crate preludeWe use it basically everywhere and it is annoying to have to import.I also did an audit of existing `use` statements and removed the now-redundantones and replaced one-off imports with usage of the prelude, so that the preludeis available by default in more places.* Fix `cargo doc`

            List of files:
            /wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs</description>
        <pubDate>Fri, 14 Jun 2024 15:24:12 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>81a89169 - Add support for `#![no_std]` to the `wasmtime` crate (#8533)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs#81a89169</link>
        <description>Add support for `#![no_std]` to the `wasmtime` crate (#8533)* Always fall back to custom platform for WasmtimeThis commit updates Wasmtime&apos;s platform support to no longer require anopt-in `RUSTFLAGS` `--cfg` flag to be specified. With `no_std` becomingofficially supported this should provide a better onboarding experiencewhere the fallback custom platform is used. This will cause linkererrors if the symbols aren&apos;t implemented and searching/googling shouldlead back to our docs/repo (eventually, hopefully).* Change Wasmtime&apos;s TLS state to a single pointerThis commit updates the management of TLS to rely on just a singlepointer rather than a pair of a pointer and a `bool`. Additionallymanagement of the TLS state is pushed into platform-specific modules toenable different means of managing it, namely the &quot;custom&quot; platform nowhas a C function required to implement TLS state for Wasmtime.* Delay conversion to `Instant` in atomic intrinsicsThe `Duration` type is available in `no_std` but the `Instant` type isnot. The intention is to only support the `threads` proposal if `std` isactive but to assist with this split push the `Duration` further intoWasmtime to avoid using a type that can&apos;t be mentioned in `no_std`.* Gate more parts of Wasmtime on the `profiling` featureMove `serde_json` to an optional dependency and gate the guest profilerentirely on the `profiling` feature.* Refactor conversion to `anyhow::Error` in `wasmtime-environ`Have a dedicated trait for consuming `self` in addition to a`Result`-friendly trait.* Gate `gimli` in Wasmtime on `addr2line`Cut down the dependency list if `addr2line` isn&apos;t enabled since thenthe dependency is not used. While here additionally lift the versionrequirement for `addr2line` up to the workspace level.* Update `bindgen!` to have `no_std`-compatible outputPull most types from Wasmtime&apos;s `__internal` module as the source oftruth.* Use an `Option` for `gc_store` instead of `OnceCell`No need for synchronization here when mutability is already available inthe necessary contexts.* Enable embedder-defined host feature detection* Add `#![no_std]` support to the `wasmtime` crateThis commit enables compiling the `runtime`, `gc`, and `component-model`features of the `wasmtime` crate on targets that do not have `std`. Thistags the crate as `#![no_std]` and then updates everything internally toimport from `core` or `alloc` and adapt for the various idioms. Thisended up requiring some relatively extensive changes, but nothing tootoo bad in the grand scheme of things.* Require `std` for the perfmap profiling agentprtest:full* Fix build on wasm* Fix windows build* Remove unused import* Fix Windows/Unix build without `std` feature* Fix some doc links* Remove unused import* Fix build of wasi-common in isolation* Fix no_std build on macos* Re-fix build* Fix standalone build of wasmtime-cli-flags* Resolve a merge conflict* Review comments* Remove unused import

            List of files:
            /wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs</description>
        <pubDate>Sat, 04 May 2024 22:02:26 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>a8209097 - Fix more nightly warnings (#7907)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs#a8209097</link>
        <description>Fix more nightly warnings (#7907)Additionally give `-Zcheck-cfg` a spin with Cargo and fix some mistakeswith our `--cfg` and `#[cfg]` directives.

            List of files:
            /wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs</description>
        <pubDate>Fri, 09 Feb 2024 22:36:00 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>d4242001 - Support compilation-only build by adding a `runtime` feature (#7766)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs#d4242001</link>
        <description>Support compilation-only build by adding a `runtime` feature (#7766)* Add `runtime` feature to `wasmtime` crateThis feature can be disabled to build `wasmtime` only for compilation.This can be useful when cross-compiling, especially on a target thatcan&apos;t run wasmtime itself (e.g. `wasm32`).* prtest:full* don&apos;t round pages without runtime feature* fix async assertions* move profiling into runtime* enable runtime for wasmtime-wasi* enable runtime for c-api* fix build_artifacts in non-cache case* fix miri extensions* enable runtime for wast* enable runtime for explorer* support cranelift all-arch on wasm32* add doc links for `WeakEngine`* simplify lib runtime cfgs* move limits and resources to runtime* move stack to runtime* move coredump and debug to runtime* add runtime to coredump and async features* add wasm32 build job* combine engine modules* single compile mod* remove allow for macro paths* add comments

            List of files:
            /wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs</description>
        <pubDate>Mon, 29 Jan 2024 15:51:43 +0000</pubDate>
        <dc:creator>Adam Bratschi-Kaye &lt;adam.bratschikaye@dfinity.org&gt;</dc:creator>
    </item>
<item>
        <title>2fcf41f0 - Remove `wasmtime-jit` (#7769)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs#2fcf41f0</link>
        <description>Remove `wasmtime-jit` (#7769)* Move `jit` crate to `environ`Move the platform agnostic parts of the crate `wasmtime-jit` to`wasmtime-environ`. This is the first part of the refactoring discussedhere: https://github.com/bytecodealliance/wasmtime/issues/7652 and afollow up will move the remaining parts of `wasmtime-jit` so that thecrate can be deleted.* Move `jit` crate to `wasmtime`Move the remaining parts of `wasmtime-jit` to the `wasmtime` crate andremove `wasmtime-jit`. This is part of the refactoring discussed inhttps://github.com/bytecodealliance/wasmtime/issues/7652.* undo toml formatting* Trigger pipeline: prtest:full* Remove `jit` directory* move `ProfilingAgent` out of `profiling` feature* add links to ELF_NAME_DATA

            List of files:
            /wasmtime-44.0.1/crates/wasmtime/src/profiling_agent.rs</description>
        <pubDate>Tue, 16 Jan 2024 17:49:50 +0000</pubDate>
        <dc:creator>Adam Bratschi-Kaye &lt;adam.bratschikaye@dfinity.org&gt;</dc:creator>
    </item>
</channel>
</rss>
