@@ -237,6 +237,7 @@ fd_topo_initialize( config_t * config ) {
237
237
238
238
fd_topob_wksp ( topo , "replay_exec" );
239
239
fd_topob_wksp ( topo , "replay_wtr" );
240
+ fd_topob_wksp ( topo , "replay_grv" );
240
241
fd_topob_wksp ( topo , "exec_writer" );
241
242
242
243
fd_topob_wksp ( topo , "voter_sign" );
@@ -284,6 +285,7 @@ fd_topo_initialize( config_t * config ) {
284
285
fd_topob_wksp ( topo , "runtime_pub" );
285
286
fd_topob_wksp ( topo , "exec" );
286
287
fd_topob_wksp ( topo , "writer" );
288
+ fd_topob_wksp ( topo , "groove" );
287
289
fd_topob_wksp ( topo , "bstore" );
288
290
fd_topob_wksp ( topo , "tcache" );
289
291
fd_topob_wksp ( topo , "pohi" );
@@ -324,6 +326,7 @@ fd_topo_initialize( config_t * config ) {
324
326
message that is outbound from the replay to exec. */
325
327
FOR (exec_tile_cnt ) fd_topob_link ( topo , "replay_exec" , "replay_exec" , 128UL , 10240UL , exec_tile_cnt );
326
328
FOR (writer_tile_cnt ) fd_topob_link ( topo , "replay_wtr ", " replay_wtr ", 128UL, FD_REPLAY_WRITER_MTU, 1UL );
329
+ /**/ fd_topob_link( topo, " replay_grv ", " replay_grv ", 128UL, FD_REPLAY_GROOVE_MTU, 1UL );
327
330
/* Assuming the number of writer tiles is sufficient to keep up with
328
331
the number of exec tiles, under equilibrium, we should have at least
329
332
enough link space to buffer worst case input shuffling done by the
@@ -426,6 +429,7 @@ fd_topo_initialize( config_t * config ) {
426
429
/**/ fd_topob_tile( topo, " replay ", " replay ", " metric_in ", tile_to_cpu[ topo->tile_cnt ], 0, 0 );
427
430
FOR (exec_tile_cnt ) fd_topob_tile ( topo , "exec" , "exec" , "metric_in" , tile_to_cpu [ topo -> tile_cnt ], 0 , 0 );
428
431
FOR (writer_tile_cnt ) fd_topob_tile ( topo , "writer ", " writer ", " metric_in ", tile_to_cpu[ topo->tile_cnt ], 0, 0 );
432
+ /**/ fd_topob_tile( topo, " groove ", " groove ", " metric_in ", tile_to_cpu[ topo->tile_cnt ], 0, 0 );
429
433
/**/ fd_topob_tile( topo, " batch ", " batch ", " metric_in ", tile_to_cpu[ topo->tile_cnt ], 0, 0 );
430
434
/* TODO: not launching the restart tile if in_wen_restart is false */
431
435
//if( FD_UNLIKELY( config->tiles.restart.in_wen_restart ) ) {
@@ -640,6 +644,7 @@ fd_topo_initialize( config_t * config ) {
640
644
FOR (bank_tile_cnt ) fd_topob_tile_out ( topo , "replay ", 0UL, " replay_poh ", i );
641
645
FOR (exec_tile_cnt ) fd_topob_tile_out ( topo , "replay" , 0UL , "replay_exec" , i ); /* TODO check order in fd_replay.c macros*/
642
646
FOR (writer_tile_cnt ) fd_topob_tile_out ( topo , "replay ", 0UL, " replay_wtr ", i );
647
+ /**/ fd_topob_tile_out( topo, " replay ", 0UL, " replay_grv ", 0UL );
643
648
644
649
FOR (exec_tile_cnt ) fd_topob_tile_in ( topo , "exec" , i , "metric_in" , "replay_exec" , i , FD_TOPOB_RELIABLE , FD_TOPOB_POLLED );
645
650
FOR (exec_tile_cnt ) fd_topob_tile_out ( topo , "exec ", i, " exec_writer ", i );
@@ -648,6 +653,7 @@ fd_topo_initialize( config_t * config ) {
648
653
FOR (writer_tile_cnt ) for ( ulong j = 0UL ; j < exec_tile_cnt ; j ++ )
649
654
fd_topob_tile_in ( topo , "writer" , i , "metric_in" , "exec_writer" , j , FD_TOPOB_RELIABLE , FD_TOPOB_POLLED );
650
655
FOR (writer_tile_cnt ) fd_topob_tile_in ( topo , "writer ", i, " metric_in ", " replay_wtr ", i, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED );
656
+ /**/ fd_topob_tile_in( topo, " groove ", 0UL, " metric_in ", " replay_grv ", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED );
651
657
652
658
/**/ fd_topob_tile_in( topo, " sender ", 0UL, " metric_in ", " stake_out ", 0UL, FD_TOPOB_UNRELIABLE, FD_TOPOB_POLLED ); /* No reliable consumers of networking fragments, may be dropped or overrun */
653
659
/**/ fd_topob_tile_in( topo, " sender ", 0UL, " metric_in ", " gossip_voter ", 0UL, FD_TOPOB_UNRELIABLE, FD_TOPOB_POLLED ); /* No reliable consumers of networking fragments, may be dropped or overrun */
@@ -926,6 +932,8 @@ fd_topo_initialize( config_t * config ) {
926
932
strncpy ( tile -> exec .funk_file , config -> tiles .replay .funk_file , sizeof (tile -> exec .funk_file ) );
927
933
} else if ( FD_UNLIKELY ( !strcmp ( tile -> name , "writer" ) ) ) {
928
934
strncpy ( tile -> writer .funk_file , config -> tiles .replay .funk_file , sizeof (tile -> writer .funk_file ) );
935
+ } else if ( FD_UNLIKELY ( !strcmp ( tile -> name , "groove" ) ) ) {
936
+ strncpy ( tile -> groove .funk_file , config -> tiles .replay .funk_file , sizeof (tile -> groove .funk_file ) );
929
937
} else if ( FD_UNLIKELY ( !strcmp ( tile -> name , "rstart" ) ) ) {
930
938
tile -> restart .in_wen_restart = config -> tiles .restart .in_wen_restart ;
931
939
strncpy ( tile -> restart .funk_file , config -> tiles .replay .funk_file , sizeof (tile -> replay .funk_file ) );
0 commit comments