Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions book/api/metrics-generated.md
Original file line number Diff line number Diff line change
Expand Up @@ -1116,3 +1116,13 @@
| <span class="metrics-name">benchs_&#8203;transactions_&#8203;sent</span> | counter | Number of benchmark packets sent |

</div>

## Snapwh Tile

<div class="metrics">

| Metric | Type | Description |
|--------|------|-------------|
| <span class="metrics-name">snapwh_&#8203;state</span> | gauge | State of the tile. 0=IDLE, 1=PROCESSING, 4=SHUTDOWN |

</div>
40 changes: 31 additions & 9 deletions src/app/firedancer-dev/commands/snapshot_load.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,14 @@ snapshot_load_topo( config_t * config ) {

/* "snapwr": Snapshot writer tile */
int vinyl_enabled = config->firedancer.vinyl.enabled;
fd_topo_tile_t * snapwr_tile = NULL;
if( vinyl_enabled ) {
fd_topob_wksp( topo, "snapwh" );
fd_topo_tile_t * snapwh_tile = fd_topob_tile( topo, "snapwh", "snapwh", "metric_in", ULONG_MAX, 0, 0 );
snapwh_tile->allow_shutdown = 1;

fd_topob_wksp( topo, "snapwr" );
fd_topo_tile_t * snapwr_tile = fd_topob_tile( topo, "snapwr", "snapwr", "metric_in", ULONG_MAX, 0, 0 );
snapwr_tile = fd_topob_tile( topo, "snapwr", "snapwr", "metric_in", ULONG_MAX, 0, 0 );
snapwr_tile->allow_shutdown = 1;
}

Expand All @@ -88,7 +93,9 @@ snapshot_load_topo( config_t * config ) {
fd_topob_wksp( topo, "snapin_ct" );
fd_topob_wksp( topo, "snapin_manif" );
fd_topob_wksp( topo, "snapct_repr" );
if( vinyl_enabled ) fd_topob_wksp( topo, "snapin_wr" );
if( vinyl_enabled ) {
fd_topob_wksp( topo, "snapin_wr" );
}

fd_topob_link( topo, "snapct_ld", "snapct_ld", 128UL, sizeof(fd_ssctrl_init_t), 1UL );
fd_topob_link( topo, "snapld_dc", "snapld_dc", 16384UL, USHORT_MAX, 1UL );
Expand All @@ -97,7 +104,9 @@ snapshot_load_topo( config_t * config ) {
fd_topob_link( topo, "snapin_manif", "snapin_manif", 2UL, sizeof(fd_snapshot_manifest_t), 1UL )->permit_no_consumers = 1;
fd_topob_link( topo, "snapct_repr", "snapct_repr", 128UL, 0UL, 1UL )->permit_no_consumers = 1;
if( vinyl_enabled ) {
fd_topob_link( topo, "snapin_wr", "snapin_wr", 4UL, 16UL<<20, 1UL );
fd_topo_link_t * snapin_wh = fd_topob_link( topo, "snapin_wh", "snapin_wr", 4UL, 16UL<<20, 1UL );
fd_topob_link( topo, "snapwh_wr", "snapin_wr", 4UL, 0UL, 1UL );
fd_pod_insertf_ulong( topo->props, 8UL, "obj.%lu.app_sz", snapin_wh->dcache_obj_id );
}

fd_topob_tile_in ( topo, "snapct", 0UL, "metric_in", "snapin_ct", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED );
Expand All @@ -112,8 +121,11 @@ snapshot_load_topo( config_t * config ) {
fd_topob_tile_out( topo, "snapin", 0UL, "snapin_ct", 0UL );
fd_topob_tile_out( topo, "snapin", 0UL, "snapin_manif", 0UL );
if( vinyl_enabled ) {
fd_topob_tile_out( topo, "snapin", 0UL, "snapin_wr", 0UL );
fd_topob_tile_in ( topo, "snapwr", 0UL, "metric_in", "snapin_wr", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED );
fd_topob_tile_out( topo, "snapin", 0UL, "snapin_wh", 0UL );
fd_topob_tile_in ( topo, "snapwh", 0UL, "metric_in", "snapin_wh", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED );
fd_topob_tile_out( topo, "snapwh", 0UL, "snapwh_wr", 0UL );
fd_topob_tile_in ( topo, "snapwr", 0UL, "metric_in", "snapwh_wr", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED );
fd_topob_tile_uses( topo, snapwr_tile, &topo->objs[ topo->links[ fd_topo_find_link( topo, "snapin_wh", 0UL ) ].dcache_obj_id ], FD_SHMEM_JOIN_MODE_READ_ONLY );
}

/* snapin funk / txncache access */
Expand Down Expand Up @@ -246,7 +258,9 @@ snapshot_load_cmd_fn( args_t * args,
fd_topo_tile_t * snapld_tile = &topo->tiles[ fd_topo_find_tile( topo, "snapld", 0UL ) ];
fd_topo_tile_t * snapdc_tile = &topo->tiles[ fd_topo_find_tile( topo, "snapdc", 0UL ) ];
fd_topo_tile_t * snapin_tile = &topo->tiles[ fd_topo_find_tile( topo, "snapin", 0UL ) ];
ulong snapwh_idx = fd_topo_find_tile( topo, "snapwh", 0UL );
ulong snapwr_idx = fd_topo_find_tile( topo, "snapwr", 0UL );
fd_topo_tile_t * snapwh_tile = snapwh_idx!=ULONG_MAX ? &topo->tiles[ snapwh_idx ] : NULL;
fd_topo_tile_t * snapwr_tile = snapwr_idx!=ULONG_MAX ? &topo->tiles[ snapwr_idx ] : NULL;
if( args->snapshot_load.snapshot_path[0] ) {
strcpy( snapct_tile->snapct.snapshots_path, args->snapshot_load.snapshot_path );
Expand All @@ -263,6 +277,7 @@ snapshot_load_cmd_fn( args_t * args,
ulong volatile * const snapld_metrics = fd_metrics_tile( snapld_tile->metrics );
ulong volatile * const snapdc_metrics = fd_metrics_tile( snapdc_tile->metrics );
ulong volatile * const snapin_metrics = fd_metrics_tile( snapin_tile->metrics );
ulong volatile * const snapwh_metrics = snapwh_tile ? fd_metrics_tile( snapwh_tile->metrics ) : NULL;
ulong volatile * const snapwr_metrics = snapwr_tile ? fd_metrics_tile( snapwr_tile->metrics ) : NULL;

ulong total_off_old = 0UL;
Expand All @@ -276,21 +291,23 @@ snapshot_load_cmd_fn( args_t * args,
ulong snapdc_wait_old = 0UL;
ulong snapin_backp_old = 0UL;
ulong snapin_wait_old = 0UL;
ulong snapwh_wait_old = 0UL;
ulong snapwr_wait_old = 0UL;
ulong acc_cnt_old = 0UL;
sleep( 1 );
puts( "" );
puts( "Columns:" );
puts( "- comp: Compressed bandwidth" );
puts( "- raw: Uncompressed bandwidth" );
puts( "- snap: Uncompressed bandwidth" );
if( snapwr_tile ) puts( "- vinyl: Database write speed" );
puts( "- backp: Backpressured by downstream tile" );
puts( "- stall: Waiting on upstream tile" );
puts( "- busy: Tile utilization" );
puts( "- acc: Number of accounts" );
puts( "" );
fputs( "--------------------------------------------", stdout );
if( snapwr_tile ) fputs( "--------------", stdout );
fputs( "[ct],[ld],[dc],[in]--------[ct],[ld],[dc],[in]", stdout );
if( snapwr_tile ) fputs( ",[wr]" , stdout );
if( snapwr_tile ) fputs( ",[wh],[wr]" , stdout );
puts( "--------------" );
long next = start+1000L*1000L*1000L;
for(;;) {
Expand Down Expand Up @@ -321,8 +338,11 @@ snapshot_load_cmd_fn( args_t * args,
ulong snapdc_wait = snapdc_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_CAUGHT_UP_POSTFRAG ) ] + snapdc_backp;
ulong snapin_backp = snapin_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_BACKPRESSURE_PREFRAG ) ];
ulong snapin_wait = snapin_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_CAUGHT_UP_POSTFRAG ) ] + snapin_backp;
ulong snapwh_wait = 0UL;
ulong snapwr_wait = 0UL;
if( snapwr_tile ) {
snapwh_wait = snapwh_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_CAUGHT_UP_POSTFRAG ) ] +
snapwh_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_BACKPRESSURE_PREFRAG ) ];
snapwr_wait = snapwr_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_CAUGHT_UP_POSTFRAG ) ] +
snapwr_metrics[ MIDX( COUNTER, TILE, REGIME_DURATION_NANOS_BACKPRESSURE_PREFRAG ) ];
}
Expand All @@ -348,7 +368,8 @@ snapshot_load_cmd_fn( args_t * args,
100-( ( (double)( snapdc_wait-snapdc_wait_old )*ns_per_tick )/1e7 ),
100-( ( (double)( snapin_wait-snapin_wait_old )*ns_per_tick )/1e7 ) );
if( snapwr_tile ) {
printf( ",%3.0f%%",
printf( ",%3.0f%%,%3.0f%%",
100-( ( (double)( snapwh_wait-snapwh_wait_old )*ns_per_tick )/1e7 ),
100-( ( (double)( snapwr_wait-snapwr_wait_old )*ns_per_tick )/1e7 ) );
}
printf( ") acc=%4.1f M/s\n",
Expand All @@ -365,6 +386,7 @@ snapshot_load_cmd_fn( args_t * args,
snapdc_wait_old = snapdc_wait;
snapin_backp_old = snapin_backp;
snapin_wait_old = snapin_wait;
snapwh_wait_old = snapwh_wait;
snapwr_wait_old = snapwr_wait;
acc_cnt_old = acc_cnt;

Expand Down
2 changes: 2 additions & 0 deletions src/app/firedancer-dev/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ extern fd_topo_run_tile_t fd_tile_snapct;
extern fd_topo_run_tile_t fd_tile_snapld;
extern fd_topo_run_tile_t fd_tile_snapdc;
extern fd_topo_run_tile_t fd_tile_snapin;
extern fd_topo_run_tile_t fd_tile_snapwh;
extern fd_topo_run_tile_t fd_tile_snapwr;

fd_topo_run_tile_t * TILES[] = {
Expand Down Expand Up @@ -158,6 +159,7 @@ fd_topo_run_tile_t * TILES[] = {
&fd_tile_snapld,
&fd_tile_snapdc,
&fd_tile_snapin,
&fd_tile_snapwh,
&fd_tile_snapwr,
&fd_tile_genesi,
&fd_tile_ipecho,
Expand Down
2 changes: 2 additions & 0 deletions src/app/firedancer/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ extern fd_topo_run_tile_t fd_tile_snapct;
extern fd_topo_run_tile_t fd_tile_snapld;
extern fd_topo_run_tile_t fd_tile_snapdc;
extern fd_topo_run_tile_t fd_tile_snapin;
extern fd_topo_run_tile_t fd_tile_snapwh;
extern fd_topo_run_tile_t fd_tile_snapwr;

fd_topo_run_tile_t * TILES[] = {
Expand Down Expand Up @@ -122,6 +123,7 @@ fd_topo_run_tile_t * TILES[] = {
&fd_tile_snapld,
&fd_tile_snapdc,
&fd_tile_snapin,
&fd_tile_snapwh,
&fd_tile_snapwr,
&fd_tile_genesi,
&fd_tile_ipecho,
Expand Down
22 changes: 18 additions & 4 deletions src/app/firedancer/topology.c
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,7 @@ fd_topo_initialize( config_t * config ) {
fd_topob_wksp( topo, "snapdc" );
fd_topob_wksp( topo, "snapin" );
if( vinyl_enabled ) {
fd_topob_wksp( topo, "snapwh" );
fd_topob_wksp( topo, "snapwr" );
}

Expand Down Expand Up @@ -404,7 +405,10 @@ fd_topo_initialize( config_t * config ) {
/**/ fd_topob_link( topo, "snapct_gui", "snapct_gui", 128UL, sizeof(fd_snapct_update_t), 1UL );
}
if( vinyl_enabled ) {
/**/ fd_topob_link( topo, "snapin_wr", "snapin_wr", 4UL, 16UL<<20, 1UL );
fd_topo_link_t * snapin_wh =
/**/ fd_topob_link( topo, "snapin_wh", "snapin_wr", 4UL, 16UL<<20, 1UL );
/**/ fd_topob_link( topo, "snapwh_wr", "snapin_wr", 4UL, 0UL, 1UL );
fd_pod_insertf_ulong( topo->props, 8UL, "obj.%lu.app_sz", snapin_wh->dcache_obj_id );
}
}

Expand Down Expand Up @@ -491,6 +495,7 @@ fd_topo_initialize( config_t * config ) {
/**/ fd_topob_tile( topo, "snapld", "snapld", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 0 )->allow_shutdown = 1;
/**/ fd_topob_tile( topo, "snapdc", "snapdc", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 0 )->allow_shutdown = 1;
/**/ fd_topob_tile( topo, "snapin", "snapin", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 0 )->allow_shutdown = 1;
if(vinyl_enabled) fd_topob_tile( topo, "snapwh", "snapwh", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 0 )->allow_shutdown = 1;
if(vinyl_enabled) fd_topob_tile( topo, "snapwr", "snapwr", "metric_in", tile_to_cpu[ topo->tile_cnt ], 0, 0 )->allow_shutdown = 1;
}

Expand Down Expand Up @@ -564,8 +569,11 @@ fd_topo_initialize( config_t * config ) {
/**/ fd_topob_tile_out( topo, "snapct", 0UL, "snapct_gui", 0UL );
}
if( vinyl_enabled ) {
/**/ fd_topob_tile_out( topo, "snapin", 0UL, "snapin_wr", 0UL );
/**/ fd_topob_tile_in ( topo, "snapwr", 0UL, "metric_in", "snapin_wr", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED );
/**/ fd_topob_tile_out( topo, "snapin", 0UL, "snapin_wh", 0UL );
/**/ fd_topob_tile_in ( topo, "snapwh", 0UL, "metric_in", "snapin_wh", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED );
/**/ fd_topob_tile_out( topo, "snapwh", 0UL, "snapwh_wr", 0UL );
/**/ fd_topob_tile_in ( topo, "snapwr", 0UL, "metric_in", "snapwh_wr", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED );
fd_topob_tile_uses( topo, &topo->tiles[ fd_topo_find_tile( topo, "snapwr", 0UL ) ], &topo->objs[ topo->links[ fd_topo_find_link( topo, "snapin_wh", 0UL ) ].dcache_obj_id ], FD_SHMEM_JOIN_MODE_READ_ONLY );
}

/**/ fd_topob_tile_in ( topo, "snapld", 0UL, "metric_in", "snapct_ld", 0UL, FD_TOPOB_RELIABLE, FD_TOPOB_POLLED );
Expand Down Expand Up @@ -1043,15 +1051,21 @@ fd_topo_configure_tile( fd_topo_tile_t * tile,
tile->snapin.vinyl_meta_map_obj_id = fd_pod_query_ulong( config->topo.props, "vinyl.meta_map", ULONG_MAX );
tile->snapin.vinyl_meta_pool_obj_id = fd_pod_query_ulong( config->topo.props, "vinyl.meta_pool", ULONG_MAX );

ulong in_wr_link_id = fd_topo_find_link( &config->topo, "snapin_wr", 0UL );
ulong in_wr_link_id = fd_topo_find_link( &config->topo, "snapin_wh", 0UL );
FD_TEST( in_wr_link_id!=ULONG_MAX );
fd_topo_link_t * in_wr_link = &config->topo.links[ in_wr_link_id ];
tile->snapin.snapwr_depth = in_wr_link->depth;
}

} else if( FD_UNLIKELY( !strcmp( tile->name, "snapwh" ) ) ) {

} else if( FD_UNLIKELY( !strcmp( tile->name, "snapwr" ) ) ) {

strcpy( tile->snapwr.vinyl_path, config->paths.accounts );
ulong in_wr_link_id = fd_topo_find_link( &config->topo, "snapin_wh", 0UL );
FD_TEST( in_wr_link_id!=ULONG_MAX );
fd_topo_link_t * in_wr_link = &config->topo.links[ in_wr_link_id ];
tile->snapwr.dcache_obj_id = in_wr_link->dcache_obj_id;

} else if( FD_UNLIKELY( !strcmp( tile->name, "repair" ) ) ) {
tile->repair.max_pending_shred_sets = config->tiles.shred.max_pending_shred_sets;
Expand Down
1 change: 1 addition & 0 deletions src/disco/metrics/generate/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class Tile(Enum):
EXEC = 33
SNAPWR = 34
BENCHS = 35
SNAPWH = 36

class MetricType(Enum):
COUNTER = 0
Expand Down
3 changes: 3 additions & 0 deletions src/disco/metrics/generated/fd_metrics_all.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ const char * FD_METRICS_TILE_KIND_NAMES[FD_METRICS_TILE_KIND_CNT] = {
"exec",
"snapwr",
"benchs",
"snapwh",
};

const ulong FD_METRICS_TILE_KIND_SIZES[FD_METRICS_TILE_KIND_CNT] = {
Expand Down Expand Up @@ -103,6 +104,7 @@ const ulong FD_METRICS_TILE_KIND_SIZES[FD_METRICS_TILE_KIND_CNT] = {
FD_METRICS_EXEC_TOTAL,
FD_METRICS_SNAPWR_TOTAL,
FD_METRICS_BENCHS_TOTAL,
FD_METRICS_SNAPWH_TOTAL,
};
const fd_metrics_meta_t * FD_METRICS_TILE_KIND_METRICS[FD_METRICS_TILE_KIND_CNT] = {
FD_METRICS_NET,
Expand Down Expand Up @@ -137,4 +139,5 @@ const fd_metrics_meta_t * FD_METRICS_TILE_KIND_METRICS[FD_METRICS_TILE_KIND_CNT]
FD_METRICS_EXEC,
FD_METRICS_SNAPWR,
FD_METRICS_BENCHS,
FD_METRICS_SNAPWH,
};
3 changes: 2 additions & 1 deletion src/disco/metrics/generated/fd_metrics_all.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include "fd_metrics_snapdc.h"
#include "fd_metrics_snapin.h"
#include "fd_metrics_snapwr.h"
#include "fd_metrics_snapwh.h"
#include "fd_metrics_metric.h"
#include "fd_metrics_ipecho.h"
#include "fd_metrics_backt.h"
Expand Down Expand Up @@ -173,7 +174,7 @@ extern const fd_metrics_meta_t FD_METRICS_ALL_LINK_OUT[FD_METRICS_ALL_LINK_OUT_T

#define FD_METRICS_TOTAL_SZ (8UL*254UL)

#define FD_METRICS_TILE_KIND_CNT 32
#define FD_METRICS_TILE_KIND_CNT 33
extern const char * FD_METRICS_TILE_KIND_NAMES[FD_METRICS_TILE_KIND_CNT];
extern const ulong FD_METRICS_TILE_KIND_SIZES[FD_METRICS_TILE_KIND_CNT];
extern const fd_metrics_meta_t * FD_METRICS_TILE_KIND_METRICS[FD_METRICS_TILE_KIND_CNT];
Expand Down
6 changes: 6 additions & 0 deletions src/disco/metrics/generated/fd_metrics_snapwh.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/* THIS FILE IS GENERATED BY gen_metrics.py. DO NOT HAND EDIT. */
#include "fd_metrics_snapwh.h"

const fd_metrics_meta_t FD_METRICS_SNAPWH[FD_METRICS_SNAPWH_TOTAL] = {
DECLARE_METRIC( SNAPWH_STATE, GAUGE ),
};
18 changes: 18 additions & 0 deletions src/disco/metrics/generated/fd_metrics_snapwh.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#ifndef HEADER_fd_src_disco_metrics_generated_fd_metrics_snapwh_h
#define HEADER_fd_src_disco_metrics_generated_fd_metrics_snapwh_h

/* THIS FILE IS GENERATED BY gen_metrics.py. DO NOT HAND EDIT. */

#include "../fd_metrics_base.h"
#include "fd_metrics_enums.h"

#define FD_METRICS_GAUGE_SNAPWH_STATE_OFF (16UL)
#define FD_METRICS_GAUGE_SNAPWH_STATE_NAME "snapwh_state"
#define FD_METRICS_GAUGE_SNAPWH_STATE_TYPE (FD_METRICS_TYPE_GAUGE)
#define FD_METRICS_GAUGE_SNAPWH_STATE_DESC "State of the tile. 0=IDLE, 1=PROCESSING, 4=SHUTDOWN"
#define FD_METRICS_GAUGE_SNAPWH_STATE_CVT (FD_METRICS_CONVERTER_NONE)

#define FD_METRICS_SNAPWH_TOTAL (1UL)
extern const fd_metrics_meta_t FD_METRICS_SNAPWH[FD_METRICS_SNAPWH_TOTAL];

#endif /* HEADER_fd_src_disco_metrics_generated_fd_metrics_snapwh_h */
4 changes: 4 additions & 0 deletions src/disco/metrics/metrics.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1057,6 +1057,10 @@ metric introduced.
<gauge name="VinylBytesWritten" summary="Number of bytes written so far to the vinyl snapshot file. Might decrease if snapshot creation is aborted and restarted" />
</tile>

<tile name="snapwh">
<gauge name="State" summary="State of the tile. 0=IDLE, 1=PROCESSING, 4=SHUTDOWN" />
</tile>

<tile name="metric">
<gauge name="BootTimestampNanos" summary="Timestamp when validator was started (nanoseconds since epoch)" />
</tile>
Expand Down
3 changes: 2 additions & 1 deletion src/disco/topo/fd_topo.h
Original file line number Diff line number Diff line change
Expand Up @@ -555,7 +555,8 @@ struct fd_topo_tile {
} snapin;

struct {
char vinyl_path[ PATH_MAX ];
ulong dcache_obj_id;
char vinyl_path[ PATH_MAX ];
} snapwr;

struct {
Expand Down
1 change: 1 addition & 0 deletions src/disco/topo/fd_topob.c
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,7 @@ fd_topob_auto_layout( fd_topo_t * topo,
"snapld", /* FIREDANCER only */
"snapdc", /* FIREDANCER only */
"snapin", /* FIREDANCER only */
"snapwh", /* FIREDANCER only */
"arch_f", /* FIREDANCER only */
"arch_w", /* FIREDANCER only */
};
Expand Down
1 change: 1 addition & 0 deletions src/discof/restore/Local.mk
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ endif
ifdef FD_HAS_INT128
$(call add-objs,fd_snapin_tile fd_snapin_tile_funk fd_snapin_tile_vinyl,fd_discof)
endif
$(call add-objs,fd_snapwh_tile,fd_discof)
$(call add-objs,fd_snapwr_tile,fd_discof)
endif
ifdef FD_HAS_INT128
Expand Down
Loading
Loading