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
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
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
Pankaj Garg
94dc8fed55
Check program modification slots during cold start ( #31331 )
2023-04-28 06:22:14 -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
Pankaj Garg
a35e31f269
Do not evict tombstones ( #31311 )
2023-04-21 16:36:22 -07:00
Pankaj Garg
9629ef3095
Fix finding ancestor during program cache pruning ( #31118 )
2023-04-20 04:45:05 -07:00
Pankaj Garg
12e3e8b467
Add provisions to unload a program from the cache ( #31036 )
2023-04-10 16:42:05 -07:00
Pankaj Garg
2613ad7d70
Fix unused import error in LoadedPrograms ( #31116 )
2023-04-08 00:31:23 -07: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
a6ad37f3ad
Cleanup - `load_and_get_programs_from_cache()` ( #30959 )
...
* Replaces assign_program() by replenish() in load_and_get_programs_from_cache().
* Replaces LoadedProgramEntry by a boolean.
* Only lock the global cache once all missing programs have been loaded
* Factors out call of self.rc.accounts.filter_executable_program_accounts().
2023-03-29 16:11:14 +02:00
Pankaj Garg
f198d7426a
Use feature gate to set effective slot of loaded programs ( #30950 )
2023-03-29 04:47:49 -07:00
Pankaj Garg
aebc191c38
Stop loading program accounts if program exists in cache ( #30703 )
...
* Stop loading program accounts if program exists in cache
* load accounts for upgradeable programs
* revert loader change to conditionally use program data account
* load instruction accounts
* generate TransactionExecutorCache from loaded programs
* cleanup account_found_and_dep_index variable
* address review comments
* handle tombstones in loader
* unify tombstone constructor
* handle multiple tombstones
2023-03-28 11:49:56 -07:00
Alexander Meißner
c10f337f85
Feature - Loader built-in program v3 ( #30464 )
...
* Adds loader-v3 in SDK.
* Adds loader-v3 built-in program.
* Adds tests.
2023-03-23 18:13:47 +01:00
K-anon
36d773810a
Add Executor Cache Eviction Strategy ( #30526 )
...
Co-authored-by: K-anon <IntokuSatori@users.noreply.github.com>
2023-03-06 15:07:01 -07:00
Pankaj Garg
b1f5b0d790
Find and load missing programs in LoadedPrograms cache ( #30275 )
...
* Find and load missing programs in LoadedPrograms cache
- filter program accounts in a transaction batch
- filter the accounts that are missing in LoadedPrograms cache
- load the programs before processing the transactions
- unit tests
* address review comments
* fix clippy
* address review comments
* fix test
* fix more tests
2023-02-21 12:53:35 -08:00
kirill lykov
ee1717b24b
Make clippy to be happy ( #30394 )
...
* replace default implementation with default enum
* fix format to make clippy happy
2023-02-17 20:51:18 +01:00
Pankaj Garg
3a4ba72daf
Remove executors trait and replace with LoadedProgram ( #30348 )
...
* Remove executors trait and replace with LoadedProgram
* fill in deployment slot
* address review comments
* fix clippy warnings
* address review comments
* fix failures caught by sbf tests
2023-02-17 12:47:45 +01:00
Pankaj Garg
86e59657c9
Return loaded program entry from the cache after insert ( #30336 )
...
* Return loaded program entry from the cache after insert
* update enum variant labels
2023-02-16 07:38:13 -08:00
Pankaj Garg
a9ad0f2b5a
Code to load a program from its account ( #30282 )
2023-02-15 09:05:26 -08:00
Pankaj Garg
375f9ae41d
LoadedPrograms cache implementation and tests ( #30139 )
2023-02-08 13:24:44 -08:00