-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
More control over fuel consumption #5109
Comments
Oh, looks like wasmtime-fuzzing has a shim for https://github.com/bytecodealliance/wasmtime/blob/main/crates/fuzzing/src/oracles.rs#L790-L802 |
Hi I am curious why #5220 can help us set customized fuel for each opcode? |
Fixes: bytecodealliance#5109 Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
* Support set_fuel in store APIs Fixes: #5109 Signed-off-by: Tyler Rockwood <rockwood@redpanda.com> * rename set_fuel to reset_fuel To make it more clear that consumed fuel is being reset. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com> * update out of date documentation for fuel in C API Signed-off-by: Tyler Rockwood <rockwood@redpanda.com> --------- Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
Looks like #7240 only adds In particular,
this would be still desirable. |
Apologies for this getting closed. I was picking up #5220 which also would have closed this issue. Maybe @coolreader18 could update this issue to have it be more about a custom cost function for fuel APIs? Also if you have opinions on store fuel related APIs would love to hear there here #7255 |
Feature
A set of new APIs that provide more control over fuel consumption:
Benefit
Allows more direct control over fuel consumption and filling, letting users set custom fuel costs for each operand if they deem some to be more costly/intensive in their environment, as well letting them set precisely how much fuel they might allow a single function call or set of function calls.
OutOfFuelError
being made public allows users to check when a Trap was caused by fuel running out.Implementation
I have an implementation for the custom fuel cost configuration, and the methods on
Store
should be fairly trivial.Alternatives
fuel_remaining
andset_fuel
can be approximated byconsume_fuel(0)
andif new_fuel > fuel_remaining() { add_fuel(delta) } else { consume_fuel(delta) }
respectively.fuel_cost
cannot be emulated, so the alternative is to just accept wasmtime's default cost function. As an alternative in designing the API, thefuel_cost
closure could take a&wasmparser::Operator<'_>
as it did in the original version of this issue. However, that would require exposingwasmparser
in wasmtime's public api, which is undesirable.The text was updated successfully, but these errors were encountered: