Pankaj Garg
c86e160438
Add runtime environment to FailedVerification tombstones ( #31991 )
...
* Add runtime environment to FailedVerification tombstones
* modify default variant
* prune update
* add DelayVisibility in prune_feature_set_transition
2023-06-06 22:24:39 +00:00
Alexander Meißner
89207a3fe5
Feature - Prune on feature set transition ( #31945 )
...
* Call create_program_runtime_environment() in Bank::apply_builtin_program_feature_transitions().
* Adds LoadedPrograms::prune_feature_set_transition().
2023-06-06 17:49:02 +02:00
Pankaj Garg
1b30de4f32
Retain runtime environment config for unloaded programs ( #31953 )
...
* Retain runtime environment config for unloaded programs
2023-06-03 09:38:11 +02:00
Pankaj Garg
37ebb709e6
Evict program cache using transaction usage counter ( #31927 )
...
* Evict program cache using tx usage counter
* address review feedback
* address review feedback
2023-06-02 11:26:56 -07:00
Alexander Meißner
3792204598
Bump solana_rbpf to v0.5.0 ( #31943 )
...
* Renames RBPF BuiltIn to Builtin.
* Bump solana_rbpf to v0.5.0
2023-06-02 16:34:01 +02:00
Pankaj Garg
29d7a57cce
Reset program cache stats after submit ( #31929 )
2023-06-02 01:16:49 -07:00
Pankaj Garg
29904bb06b
More metrics for LoadedPrograms cache ( #31735 )
2023-05-22 07:53:54 -07:00
Alexander Meißner
83f692ce67
Refactor - Share RBPF config and syscall registry globally ( #31727 )
...
* Adds LoadedPrograms::program_runtime_environment_v1.
* No need to explicitly remove precompiles from program_accounts_map.
2023-05-20 20:28:00 +02:00
Pankaj Garg
8fbe471cc8
Remove special handling of builtin while pruning ( #31719 )
2023-05-19 09:35:48 -07:00
Pankaj Garg
e6d490708a
Do not overwrite builtin program in the same slot ( #31718 )
2023-05-19 05:26:31 -07:00
Trent Nelson
a0850a7501
runtime: rename executor cache datapoint ( #31716 )
2023-05-18 20:37:01 +00:00
Alexander Meißner
520c647918
Refactor - Merges `BuiltinPrograms` into `LoadedPrograms` ( #31654 )
...
* Merges BuiltinPrograms into LoadedPrograms.
* Prevents built-ins from being pruned.
2023-05-18 22:18:28 +02:00
Pankaj Garg
b03422968b
Remove Rc and RefCell to carry program cache in invoke_context ( #31684 )
2023-05-17 06:10:50 -07:00
Alexander Meißner
5c8b5a2a68
Bump solana_rbpf to v0.4.0 ( #31594 )
...
* Moves "disable_deploy_of_alloc_free_syscall" parameter inside create_loader().
* Removes the "is_abi_v2" flag.
* Bumps solana_rbpf to v0.4.0
2023-05-12 18:07:13 +02:00
Pankaj Garg
a649459fc6
LoadedPrograms::extract() code cleanup and unit tests ( #31604 )
2023-05-12 08:55:03 -07:00
Illia Bobyr
43c0f05ca0
Bumps base64 from 0.13.1 to 0.21.0. ( #31522 )
...
Changes:
marshallpierce/rust-base64@v0.13.1...v0.21.0
`base64::{encode,decode}` are now deprecated in favor of an API that
explicitly selects an `Engine`. Migrated all calls to the new API.
2023-05-11 11:34:58 -07:00
dependabot[bot]
c22b87e49a
Bump serde from 1.0.162 to 1.0.163 ( #31591 )
...
* Bump serde from 1.0.162 to 1.0.163
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.162 to 1.0.163.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.162...v1.0.163 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2023-05-11 09:59:55 -06:00
Alexander Meißner
bbd8be6cbe
Refactor - Renames loader-v3 to loader-v4. ( #31570 )
...
Renames loader-v3 to loader-v4.
2023-05-11 08:29:06 +02:00
Pankaj Garg
04425b81ce
Add stats for LoadedPrograms ( #31577 )
2023-05-10 12:08:55 -07:00
Pankaj Garg
ab89e2cb15
Remove executor cache from the codebase ( #31566 )
2023-05-10 07:11:04 -07:00
Pankaj Garg
2210af60ee
Replace executor cache usage with LoadedPrograms cache ( #31462 )
...
* Replace executor cache usage with LoadedPrograms cache
* clippy fixes
* update cache with updated programs
* fixes
* more cleanup
* update tx batch cache with the tx results
* address review comments
* handle program closing backward compatibility
* handle unloaded programs during extraction
2023-05-09 15:44:38 -07:00
Pankaj Garg
3fd3e6d4e1
Use current root slot to disambiguate pruning of old programs ( #31548 )
...
* Use current root slot to unambiguate pruning of old programs
* simplify the change
* address comment
2023-05-09 11:28:56 -07:00
Pankaj Garg
3845423e17
Generalize matching criteria for tombstone at boot up ( #31547 )
...
Generalize matching criteria for tombstone at bootup
2023-05-09 08:26:42 -07:00
Pankaj Garg
b20024c705
Refactor implicit handling of delay visibility tombstones ( #31537 )
2023-05-08 09:15:04 -07:00
Pankaj Garg
d98aaf0614
Programs deployed before the latest root available on all current forks ( #31530 )
...
* Programs deployed before the latest root available on all current forks
* remove special case of slot 0
2023-05-08 07:51:32 -07:00
dependabot[bot]
d6dd842b8a
Bump serde from 1.0.160 to 1.0.162 ( #31506 )
...
* Bump serde from 1.0.160 to 1.0.162
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.160 to 1.0.162.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.160...1.0.162 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* [auto-commit] Update all Cargo lock files
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2023-05-05 13:30:49 -06:00
Pankaj Garg
9c6e7e0435
Return implicit delay visibility tombstone ( #31493 )
2023-05-05 06:08:57 -07:00
Pankaj Garg
de43ac44fd
Allow replacing tombstone with a non-tombstone ( #31494 )
2023-05-04 13:56:39 -07:00
Pankaj Garg
96e170bd37
Do not evict unloaded programs ( #31465 )
...
* Do not evict unloaded programs
* cleanup
2023-05-04 07:49:54 -07:00
Alexander Meißner
ae75c7cb3f
Refactoring - Remove redundant definition of `BuiltinProgram` ( #31429 )
...
* Replaces BuiltinProgram in the program-runtime with the one from solana_rbpf.
* Adjusts the runtimes built-ins to use Arc<LoadedProgram>.
* Adjusts the tests and benchmarks.
2023-05-02 23:01:28 +02:00
dependabot[bot]
021daea9ec
Bump serde from 1.0.159 to 1.0.160 ( #31427 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.159 to 1.0.160.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](serde-rs/serde@v1.0.159...v1.0.160)
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: illia.bobyr@solana.com
2023-05-01 17:37:29 -07:00
Pankaj Garg
8eebf64464
Add a second level cache to contain tx batch specific programs ( #31413 )
...
* Add a second level cache to contain tx batch specific programs
* fix clippy
* address review comments
2023-05-01 09:09:43 -07:00
Dmitri Makarov
aa7baaff29
Save nested traces on syscall context pop in InvokeContext ( #31397 )
2023-04-28 19:03:45 -04:00
Pankaj Garg
94dc8fed55
Check program modification slots during cold start ( #31331 )
2023-04-28 06:22:14 -07:00
Dmitri Makarov
c658d4e737
Overload with_mock_invoke_context with custom BuiltinPrograms option ( #31347 )
2023-04-26 07:45:33 -07:00
Alexander Meißner
7002c568fb
Cleanup - Removes the CLI option "no-bpf-jit" ( #31329 )
...
* Enables JIT everywhere by default.
* Removes the CLI argument "no-bpf-jit" and its plumbering through out the validator code base.
* Removes with_jit bpf_loader variants.
* Removes the to_builtin!() macro.
2023-04-25 19:04:11 +02:00
Alexander Meißner
4b0e16d06f
Refactor - `BuiltinPrograms` ( #31324 )
...
* Moves BuiltinProgram of the program runtime into its own file.
* Unifies the runtimes Builtin and program runtimes BuiltinProgram definitions.
* Moves BuiltinPrograms from bank.rs into the program runtime.
2023-04-24 19:01:40 +02:00
Pankaj Garg
a35e31f269
Do not evict tombstones ( #31311 )
2023-04-21 16:36:22 -07:00
Alexander Meißner
e5490b8d09
Refactor - Use builtin function interface from rbpf ( #31221 )
...
* Removes test_program_entry_debug().
* Uses declare_process_instruction!() in all tests and benchmarks.
* Replaces with ProcessInstructionWithContext with solana_rbpf::BuiltInFunction.
2023-04-21 18:08:32 +02:00
Pankaj Garg
9629ef3095
Fix finding ancestor during program cache pruning ( #31118 )
2023-04-20 04:45:05 -07:00
Eric Semeniuc
7f9f81d4cb
Fix incorrect ExecuteAccessoryTimings ( #31167 )
...
* Fix incorrect ExecuteAccessoryTimings
* cargo fmt
2023-04-16 22:40:52 +02:00
Alexander Meißner
8eb31f6cfd
Refactor - Syscalls in RBPF CLI ( #31109 )
...
* Makes members of SyscallContext public.
Removes check_aligned and check_size from SyscallContext.
* Replaces InvokeContext::set_syscall_context() in tests with mock_create_vm!().
* Passes SyscallContext directly to InvokeContext::set_syscall_context().
* Merges TraceLogStackFrame into SyscallContext.
* Removes the create_vm!() macro.
* Moves BpfAllocator from bpf_loader into program_runtime.
* Frees BpfAllocator from Rc<RefCell<>>.
* Removes unused code from BpfAllocator.
* Consume CUs for heap before doing the allocation.
* Exposes syscalls in rbpf-cli.
* Adds debugging_features parameter to load_program_from_bytes() and load_program_from_account().
* Removes test_bpf_loader_non_terminating_program() as that is already tested in RBPF.
* Moves stack and heap allocation back onto the program runtime stack.
2023-04-14 15:20:08 +02:00
Pankaj Garg
fb6e02c46c
Retain usage counter on program upgrade ( #31142 )
...
* Retain usage counter on program upgrade
* cleanup as per feedback
* fix clippy
2023-04-11 09:43:42 -07:00
Pankaj Garg
12e3e8b467
Add provisions to unload a program from the cache ( #31036 )
2023-04-10 16:42:05 -07:00
dependabot[bot]
fe8a4015ca
Bump serde from 1.0.158 to 1.0.159 ( #31119 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.158 to 1.0.159.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](serde-rs/serde@v1.0.158...v1.0.159)
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-04-10 15:19:16 -07:00
Pankaj Garg
2613ad7d70
Fix unused import error in LoadedPrograms ( #31116 )
2023-04-08 00:31:23 -07:00
Alexander Meißner
0cd57addcf
Cleanup - mock_process_instruction() ( #31088 )
...
* Uses declare_process_instruction!() in all tests.
* Adds post_adjustments to mock_process_instruction().
Removes "solana_sbf_rust_external_spend" from assert_instruction_count() as it panics.
2023-04-07 12:53:19 +02:00
Pankaj Garg
83e17d8e44
Add expiration slot to loaded program cache entry ( #31034 )
2023-04-05 09:26:28 -07:00
Alexander Meißner
24a87f33a8
Refactor - Cleanup error handling in program runtime ( #30693 )
...
* Moves stable_log::program_invoke(), stable_log::program_success() and stable_log::program_failure() calls from bpf_loader into InvokeContext::process_executable_chain().
* Turns result of ProcessInstructionWithContext from InstructionError into Box<dyn std::error::Error>.
* Bump to solana_rbpf v0.3.0
* Removes Result from return type of EbpfVm::new().
* Turns EbpfError into Box<dyn std::error::Error>.
* Removes BpfError.
* Removes SyscallError::InstructionError.
* Adds a type alias for Box<dyn std::error::Error> in syscalls.
2023-04-05 15:50:34 +02:00
Alexander Meißner
a0c7fde90e
Cleanup - mock InvokeContext ( #31007 )
...
* Turns with_mock_invoke_context() into a macro.
* Removes prepare_mock_invoke_context().
* Replaces InvokeContext::new_mock() with with_mock_invoke_context().
* Removes InvokeContext::new_mock().
* Removes Cow from InvokeContext::sysvar_cache.
* Removes override parameters from mock_process_instruction().
* cargo fmt
2023-04-03 17:23:24 +02:00