@@ -87,6 +87,14 @@ backtest_topo( config_t * config ) {
8787 #define FOR (cnt ) for( ulong i=0UL; i<cnt; i++ )
8888 FOR (exec_tile_cnt ) fd_topob_tile ( topo , "exec ", " exec ", " metric_in ", cpu_idx++, 0, 0 );
8989
90+ /**********************************************************************/
91+ /* Add the capture tile to topo */
92+ /**********************************************************************/
93+ if (solcap_enabled ) {
94+ fd_topob_wksp ( topo , "captur" );
95+ fd_topob_tile ( topo , "captur" , "captur" , "metric_in" , cpu_idx ++ , 0 , 0 );
96+ }
97+
9098 /**********************************************************************/
9199 /* Add the snapshot tiles to topo */
92100 /**********************************************************************/
@@ -228,7 +236,7 @@ backtest_topo( config_t * config ) {
228236 link for this without introducing a race. This will get removed with solcap V2. */
229237 if ( FD_UNLIKELY ( solcap_enabled ) ) {
230238 /* TODO: remove this with solcap V2 */
231- FOR (exec_tile_cnt ) fd_topob_link ( topo , "exec_replay ", " exec_replay ", 1024UL, FD_CAPTURE_CTX_ACCOUNT_UPDATE_MSG_FOOTPRINT , 1UL );
239+ FOR (exec_tile_cnt ) fd_topob_link ( topo , "exec_replay ", " exec_replay ", 1024UL, 4096UL , 1UL );
232240 } else {
233241 FOR (exec_tile_cnt ) fd_topob_link ( topo , "exec_replay ", " exec_replay ", 16384UL, sizeof(fd_exec_task_done_msg_t), 1UL );
234242 }
@@ -240,6 +248,15 @@ backtest_topo( config_t * config ) {
240248 /* Setup the shared objs used by replay and exec tiles */
241249 /**********************************************************************/
242250
251+ if ( FD_UNLIKELY ( solcap_enabled ) ) {
252+ fd_topob_link ( topo , "cap_repl" , "captur" , 32UL , SOLCAP_WRITE_ACCOUNT_DATA_MTU , 1UL );
253+ fd_topob_tile_out ( topo , "replay" , 0UL , "cap_repl" , 0UL );
254+ fd_topob_tile_in ( topo , "captur" , 0UL , "metric_in" , "cap_repl" , 0UL , FD_TOPOB_RELIABLE , FD_TOPOB_POLLED );
255+ FOR (exec_tile_cnt ) fd_topob_link ( topo , "cap_exec ", " captur ", 32UL, SOLCAP_WRITE_ACCOUNT_DATA_MTU, 1UL );
256+ FOR (exec_tile_cnt ) fd_topob_tile_out ( topo , "exec" , i , "cap_exec" , i );
257+ FOR (exec_tile_cnt ) fd_topob_tile_in ( topo , "captur ", 0UL, " metric_in ", " cap_exec ", i, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED );
258+ }
259+
243260 fd_topob_wksp ( topo , "store" );
244261 fd_topo_obj_t * store_obj = setup_topo_store ( topo , "store" , config -> firedancer .store .max_completed_shred_sets , 1 );
245262 fd_topob_tile_uses ( topo , backt_tile , store_obj , FD_SHMEM_JOIN_MODE_READ_WRITE );
0 commit comments